Writing a path
tracer in Rust

Part I

written by Ruud van Asseldonk
published

It must have been almost a year ago that I first heared about Rust. Posts about the language would appear on /r/programming now and then, and the language caught my attention. Rust got me excited for serveral reasons:

As a programmer who loves doing low-level optimisation, but also appreciates high-level functional programming, I was charmed by this new language.

I followed the development for a while, but I never got around to actually writing some code — until now. As an exercise, I decided to port Luculentus to Rust. Luculentus is a proof of concept spectral path tracer that I wrote for a graphics programming course. It is written in C++. I expect that porting it will allow me to learn many aspects of Rust. You can follow the development of the port at GitHub.

I also plan on refeshing Luculentus a bit, to use more idiomatic modern C++. When I wrote the path tracer in 2012, there was only partial support for C++11, so Luculentus still uses a lot of raw pointers and non-default destructors. I hope to make a fair comparison of resource management in Rust and modern C++ down the line.

More words

Writing a path tracer in Rust, part 2: first impressions

After setting my first baby steps in the Rust programming language, these are my initial impressions. Read full post