A micro packet ray tracer
Switch branches/tags
Nothing to show
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.
include
src
.gitignore
CMakeLists.txt
LICENSE.md
README.md

README.md

μPacket - A micro packet ray tracer

An extremely simple packet based ray tracer, uses AVX2 to trace eight rays at once through the scene. Currently only supports spheres and planes with Lambertian BRDFs illuminated by a single point light. Illumination is computed with Whitted ray tracing, although recursion only goes as far as computing shadows since there are no reflective or transmissive materials.

Building

The AVX2 instruction set is required, along with a relatively modern C++ compiler (some C++11/14 features are used), you should also compile a 64 bit executable. The program should compile and run on VS 2015 Community on Windows and gcc 4.8.1+ on Linux. MinGW is not supported on Windows as it's unable to align the stack to 32 bytes, see bug. I haven't tested on clang but it might work. Beyond that only CMake is required to generate build files for your build system.

Running

Running the executable built will produce the image below and save it to out.bmp.

Render output