A raytracer written in Rust for fun and learning
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
scenes
src
.gitignore
Cargo.lock
Cargo.toml
LICENSE.md
README.md

README.md

Rusttracer

YAR(Yet Another Raytracer).

I like to write raytracers to learn new programming languages. They're fun and are a natural way to learn most OOP languages. Naturally I'm writing a raytracer in rust called rusttracer 🙂.

Building

Make sure you have the rust nightly toolchain installed then run

cargo build --release

Running

The project uses a json based configuration format. For an example see the rgb-spheres.json scene. To render it run:

target/release/rusttracer --config-path scenes/rgb-spheres.json

Usage

Usage: target/release/rusttracer [options]

Options:
    -c, --config-path CONFIG_PATH
                        config file path, uses `default.json` if not specified
    -b, --benchmark     Benchmark by rendering the scene multiple times
    -h, --help          prints this help menu

Renders

This was the first render produced.

This was rendered a while later, at this point there was support for diffuse colors, specular highlights, reflection, colored lights, and super sampling. This is 2560x1440 at 4x4 super sampling