Thanks to visit codestin.com
Credit goes to github.com

Skip to content

lewisfish/oMCRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oMCRT - Optix Monte Carlo Radiation Transfer.

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 $10cm^{-1}$.

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.

Performance

For a point source at the origin and uniform scattering with $\mu_s =10cm^{-1}$.

Screenshots

Buddha model

Budda

Spot model

Spot

Nefertiti bust

Nefertiti bust

Dependencies

  • c++ compiler (17+)
  • Nvidia hpc SDK
  • Optix (version 7+)
  • tiny_obj_loader (included)
  • GDT (included)
  • CMake (3.17+)

Todo

  • 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

About

Monte Carlo Radiation Transport using Optix

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published