Skip to content

Conversation

grievans
Copy link

@grievans grievans commented Oct 6, 2025

Repo Link

https://github.com/grievans/Project3-CUDA-Path-Tracer/tree/main

Core Features Completed

  • Shading kernel with BSDF evaluation (diffuse, perfect specular surfaces)
  • Stream compacted path termination
  • Sorting by material type
  • Stochastic sampled antialiasing

Extended Features Completed

  • Visual Improvements
    • [2] Refraction with Fresnel effects
    • [2] Physically-based depth-of-field
    • [3] Motion blur by sampling at different times, with interpolated keyframes for object movements
  • Mesh Improvements
    • [4] glTF model loading, in conjunction with BVH mentioned below
  • Performance Improvements
    • [1] Russian roulette path termination
    • [6] Hierarchical spatial data structure using BVH
  • Other Improvements

Other Features and Details

  • I used the tinygltf library to load data from glTF files. In doing so I also needed to change stb_image.h and stb_image_write.h from those originally included in the project to the newer versions used by tinygltf, for compatibility.
  • I also modified the top-level CMakeLists.txt in order to get Visual Studio to properly recognize and provide tooltips for some of the already-used libraries' classes/functions (particularly Thrust).
  • I made various scene files for testing, mostly variations of the Cornell Box with relevant components added (e.g. adding a mirror and glass material to test reflection and refraction, placing objects at multiple distances to test depth-of-field, setting an object to have keyframed changes in translation to test motion blur, loading in various glTF models). I also made scenes to both test loading of multiple & more complex models and act as more of a showcase of the path tracer's features—currently I've settled on a scene of ducks about a chessboard, which includes refractive and reflective materials, loading of multiple glTF models, and environment mapping, and well-showcases the effect of depth-of-field through objects being at a variety of distances from the camera. I plan though to potentially tweak the scenes shown further while finishing my readme.

README Completion Checklist

  • Cover image in readme does not use Cornell Box
  • Descriptions, screenshots, debug images, side-by-side comparisons of features implemented
  • Analysis
  • Scenes and meshes included or linked
  • Third-party library changes or compilation changes documented
  • Bloopers (optional)

Late Days Used

I am using 3 late days. I am using an additional, 4th late day for the readme.

Project feedback

grievans and others added 30 commits September 19, 2025 15:22
…ng but triangle intersection seems to transform wrong; need to add support for various glTF file setups
@grievans
Copy link
Author

grievans commented Oct 9, 2025

Sorry for my impunctuality; I hope this has not caused too much of an issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant