Skip to content

Conversation

aczw
Copy link

@aczw aczw commented Oct 7, 2025

Repo Link

aczw/cuda-path-tracer

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
    • Perfectly specular dielectrics: reflection and transmission
    • Faking PBR: roughness
    • Depth of field
  • Mesh Improvements
    • glTF model loading, mesh representation
  • Performance Improvements
    • Axis-aligned bounding boxes
    • Bounding volume hierarchy
  • Other Improvements
    • Code base rewrite: C++20, libcu++, RAII, no global variables

Other Features and Details

More detail can be found in the README. However, here's a brief list of changes that you should probably be aware of:

  • Many changes to CMakeLists. Biggest is probably updating to C++20.
  • While the project successfully compiles on my PC, I did get a compilation error while trying it out on one of the Levine 057 computers. If you are getting the same issue, try commenting out any usages of std::format, MSVC doesn't seem to like those.
  • I used VS Code for development, so the relative paths are different from those in Visual Studio. This will affect how you load the scene JSON files as well as the relative paths to the glTF models in the scene file. In general, I find that I have to remove two of the "../" for Visual Studio to work.
  • I've made changes to the scene file format. I removed the FILE key from the Camera object because it now simply uses the JSON file name.
  • Pressing Esc does not save an image anymore, but S still does.
  • I had to update the stb_image and stb_image_write header files because tiny_gltf required it. Also, I added tiny_gltf as a library.

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 used 4 late days for the code submission.

Project feedback

I think a lot of the base code was difficult to work with. I spent the first few days rewriting the code so that I could get a better understanding of how the libraries were set up, and ultimately it helped me add new features much more easily and quickly.

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