top of page
InkdVizScreen_3_2.png

Ray Tracer

   Over the course of a couple months in the summer semester, I decided to experiment with ray tracing in Falcor, Nvidia’s open-source C++ rendering framework for DirectX 12 and Vulkan. I ended up building two ray-tracers in the process: An initial, non-real time version on the CPU, and a real-time version on the GPU, using DXR_RayTracing, which Falcor has built in support for. 
   Both versions are primarily path tracers, casting rays out from the camera to intersect with models in the scene, though it uses ray tracing elements to manage the lighting. This works primarily by tracing a ray from a given camera position to wherever it first hits an object. It then traces rays from each light source in the scene to determine which ones have an unobstructed view of that spot along with any additional reflected lights from nearby surfaces as additional light sources. Once it’s collected all the light sources, it uses the Oren-Nayar reflectance model to determine how much of that light is bounced back from the surface and uses that in combination with the albedo of the surface to determine what color it should be rendered as. Additionally, the GPU ray tracer is capable of rendering geometry loaded from external models and has both fully dynamic lighting as well as anti-aliasing via temporal accumulation.
  If you’re interested in reading more about this project, take a look at the blog on this website, where I recorded weekly blog entries about the project.

© 2018 by Karinne Lorig

bottom of page