Ray tracer
Go to file
Matthew Gordon 406f347971 Fix floating-point precision issue in accumulation_buffer
Fixed an issue that prevented the image from converging.

(Technically, the convergence was happening and the issue was the final
calculation of the displayed colours, but the visual effect was the same as
failure to converge.)
2025-03-21 20:52:23 -03:00
.cargo Compile for "native" CPU type. 2020-05-22 21:06:07 -04:00
.github Update README.md 2020-09-14 19:57:24 -04:00
benches Replace nalgebra matrix and vector classes with own classes 2020-08-28 23:08:44 -04:00
src Fix floating-point precision issue in accumulation_buffer 2025-03-21 20:52:23 -03:00
test_data Add "stanford bunny" model to repository (for testing) 2020-04-03 21:18:16 -04:00
.gitattributes Add "stanford bunny" model to repository (for testing) 2020-04-03 21:18:16 -04:00
.gitignore Add Linux perf output to .gitignore 2019-12-21 10:45:48 -05:00
Cargo.toml Very inefficient first-pass at global illumination 2020-09-09 20:39:32 -04:00
LICENSE Initial commit 2019-10-20 22:34:32 -04:00
README.md Update example run command in readme 2024-02-13 13:21:22 -04:00
rust-toolchain Use rust nightly for Github actions build 2020-04-23 22:03:58 -04:00

README.md

Vanrijn

This project is very much a work-in-progress and at this point.

Vanrijn is (or at least will be) a physically based ray tracer. Many thanks to the authors of the book "Physically Based Rendering: From Theory to Implementation from which many of the algorithms used here are taken. This is, however not a Rust port of the C++ PBRT rederer described in that book.

This crate is structured as a library; main.rs is just a glorified test harness which shows an example of using the library to render a scene. It uses SDL2 to display the rendered image.

On Ubuntu 19.04, if you have the libsdl2-dev package installed you should be able to run cargo run --release -- --size 800 600 and see a window with a test scene rendered into it. In theory it should work on any platform with SDL2 installed but I've only tested it on Ubuntu Linux.