Skip to content

Project 3: Jefferson Koumba Moussadji Lu#34

Open
JeffersonKoumbaMoussadjiLu wants to merge 5 commits into
CIS5650-Fall-2025:mainfrom
JeffersonKoumbaMoussadjiLu:main
Open

Project 3: Jefferson Koumba Moussadji Lu#34
JeffersonKoumbaMoussadjiLu wants to merge 5 commits into
CIS5650-Fall-2025:mainfrom
JeffersonKoumbaMoussadjiLu:main

Conversation

@JeffersonKoumbaMoussadjiLu
Copy link
Copy Markdown

@JeffersonKoumbaMoussadjiLu JeffersonKoumbaMoussadjiLu commented Oct 5, 2025

Repo Link

Link To Repository

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

    • Refraction with Schlick’s Fresnel approximation
    • Depth of Field via thin-lens camera model
    • Direct Lighting using next-event estimation + shadow ray occlusion
    • Post-processing with ACES filmic tonemapping
    • Better random number sequences for Monte Carlo
  • Mesh Improvements

    • ....
  • Performance Improvements

    • Russian Roulette for probabilistic path termination
    • Efficient parallel stream compaction (GPU prefix-sum)
    • Radix sort for material sorting (custom CUDA implementation)
    • Shared memory optimization in scan and scatter steps
  • Other Improvements

    • Camera Motion Blur (simulated shutter exposure for moving camera)
    • Scene modularity and composition via JSON configuration files
    • Multiple original scenes created (e.g. Solar System, Voxel Castle, Tower, etc.)
    • A somewhat working Restartable path tracing

Other Features and Details

  • Used custom stream compaction kernels from Project 2 (naive.cu, efficient.cu, thrust.cu) directly integrated into the renderer.
  • Modified CMakeLists.txt to enable stream_compaction module and link correctly.
  • Full replacement of Thrust for prefix scan, scatter, and material-based sort.
  • Implemented random engine using pixel-index-dependent hashing + low-discrepancy LDS sampling.
  • Carefully tuned ray epsilon offsets and importance sampling strategies.
  • Extensive JSON scene definitions used for procedural composition and testing.
  • All shaders, camera behaviors, tone mapping and integrator toggles are runtime-controllable.

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

  • 3 late days used for code
  • Code submitted 10/05/2025)
  • Read.me submitted (10/07/2025)

Project feedback

Loved the balance of visual fidelity and CUDA-level optimization in this project. The structure encouraged both graphics innovation and GPU best practices.

Note:
Sorry, I just noticed that my pull request description was incomplete, and I apologize for that.
I hope this didn't cause any issues.
Best,
Jefferson

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