Just another ray tracing engine written in C++. Tested on Windows and Linux(Ubuntu/Linux Mint only).
The followings need to exist on the host machine: Embree
Clone the repository alongwith its submodules:
git clone --recursive https://github.com/smukherjee2016/ToyRT2018
If you have cloned without the --recursive
flag, please run the following:
git submodule update --init --recursive
Then it should build and run like a standard CMake project.
There is an extra step needed for Linux: for Ubuntu/Linux Mint/Debian(?), you need to add /usr/lib64 to LD_LIBRARY_PATH so the executable finds the embree .so. This has been tested to work.
- Ray-sphere intersection
- Path Tracing with Next Event Estimation
- Direct lighting
- Path Tracing with MIS
- Ray-triangle intersection
- OBJ loading
- Use Embree for Ray-triangle intersection
- Replace OpenMP with threadpool or custom threading
- Emitter selection heuristic
- Discrete CDF class for use with emitter sampling
- Remove static version of Sampler
- Photon Mapping integrator
Apache 2.0.