Skip to content

Conversation

sagescherrytree
Copy link

@sagescherrytree sagescherrytree commented Oct 5, 2025

GPU Path Tracer

Core Features Completed

  • Shading kernel with BSDF evaluation (diffuse, specular).
  • Stream-compacted path termination using thrust library.
  • Sorting by material type.
  • Stochastic sampled antialiasing.

Extended Features Completed

Visual Improvements

  • BRDF refraction.
  • Physically based depth of field.
  • Microfacet materials (Cook Torrance model).
  • Texture loading and bump maps.

Mesh Improvements

  • Mesh loading (obj).

Performance Improvements

  • BVH acceleration.

Other Features and Details

  • Libraries added:
    • stb_image.h
    • stb_image_write.h
    • json.hpp
    • tiny_obj.h
  • Scene file changes:
    • cornell.json
    • cornell_glass_test.json
    • cornell_microfacet_test.json
    • cornell_multiple_glass.json
    • cornell_obj_anaxagoras_glass.json
    • cornell_obj_bnnuy.json
    • cornell_obj_castorice_glass.json
    • cornell_obj_phainon_glass.json
    • cornell_obj_phatphuck.json
    • cornell_obj_phatphuck_alt.json
    • cornell_obj_phatphuck_microfacet.json
    • cornell_obj_phatphuck_texture_test.json
    • cornell_obj_specular.json
    • cornell_obj_test.json
    • cornell_reflective_test.json
    • cornell_transmissive_test.json

🧩 README Completion Checklist

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

🕒 Late Days Used

  • 2 late days

🗒️ Project Feedback

I wish this project could last longer. I want to implement more features.

The basic diffuse shadeFakeMat version, that is.
…ion.

Forgot to add (disk.y * disk.y) in squareToHemisphereCosine calculation, which resulted in incorrect throughput calculation and seeming reflection of red and green walls on sphere.
Transmissive still buggy, I suspect logic in scatterRay.
Also switched scatterRay to __device__.
Still have glowy bug...
There seems to be an issue w/ how ray is being transformed into local space, but I cannot figure out what it is...
I am pretty certain it works...?
See bug details in README update.
Need to update transform.
Wahoo, Stanford Bunny, Phat Phuck (i.e. the Aeon of Voracity).
Added Triangle struct, aabb struct and intersection check.
Completed with base requirements + minimum points extra credit.
But mapped wrong lol.
Flipped sign on UV calculation.
Stream compaction description.
Minor fix in formatting.
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