Monte Carlo code in c++/CUDA that utilises Optix to enable GPU computation of nearest intersection.
Currently the code is setup with an isotropic source at the origin.
The photon packets then traverse a mesh of triangles and upon exit of the mesh are killed off.
The medium has an albedo of unity and scattering coefficient of
Optix scaffolding code is based upon Ingo Wald's Optix 7 course in particular example's 4 and 7. Actual MCRT code is contained in simulationPrograms.cu
Code also contains a basic renderer for viewing the meshes. Renderer shows the mesh with a solid colour and wireframe.
For a point source at the origin and uniform scattering with
- Spot model: ~155 MPhotons/s
- Nefertiti Bust: ~ 80 Mphotons/s
- Standford Bunny: ~95 MPhotons/s
- Happy Buddha: ~70 MPhotons/s
- c++ compiler (17+)
- Nvidia hpc SDK
- Optix (version 7+)
- tiny_obj_loader (included)
- GDT (included)
- CMake (3.17+)
- Add absoprtion/photon weighting
- Add HG Phase function
- Add per mesh optical properties
- Test current code.
- Optimise
- Add reflections/refractions
- Add SDFs
- Add wavelength variable optical properties