diff --git a/README.md b/README.md index 2137b36..c138c4e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,21 @@ ![](https://github.com/matthewscottgordon/vanrijn/workflows/Rust/badge.svg) -# vanrijn -Ray tracer +# Vanrijn -![Rendered test image of three spheres](.github/output.png?raw=true "Test Image") -![Rendered test image of three spheres and a bunny](.github/output2.png?raw=true "Test Image") +Vanrijn is a [physically based](https://en.wikipedia.org/wiki/Physically_based_rendering) +[ray tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)). Many thanks to the +authors of the book +["Physically Based Rendering: From Theory to Implementation](https://www.pbrt.org/) 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" 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. + +![](.github/output.png?raw=true "Test Image 1") +![](.github/output2.png?raw=true "Test Image") diff --git a/src/lib.rs b/src/lib.rs index 8f1e400..7a86d5c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,6 @@ +#![feature(external_doc)] +#![doc(include = "../README.md")] + pub mod camera; pub mod colour; pub mod image;