Skip to content

Conversation

@LinDadaism
Copy link

@LinDadaism LinDadaism commented Oct 11, 2023

Used all 4 late days. Working on REAME now.

Repo link

Features Implemented:

Core Features

  • Material shading (diffuse & perfectly specular)
  • Path termination with stream compaction
  • Material sorting
  • First bounce ray caching

Extra Features

  • Extra material shading: refraction, glass, plastic, lambertian BTDF
  • Stochastic sampled anti-aliasing
  • Motion blur (camera ray jitter about some axis)
  • Runtime object motion (continuous transformation update throughout time)
  • Physically based depth of field (thin-lens camera)
  • glTF & GLB mesh loading (with bounding box culling)
  • OBJ mesh loading (with bounding box culling)
  • Bounding volume hierarchy (with both midpoint split and attempt of SAH, no sure if working properly)

Modifications to CMakeLists:
Added the files below for mesh loading to the headers section:
- src/tiny_obj_loader.h
- src/gltf/json.hpp
- src/gltf/tiny_gltf.h

Feedback:
It was definitely a fun project that gives you freedom to explore a plethora of interesting topics in graphics and rendering, or to put focus on CUDA performance optimization. However, it was not even a smooth-sailing experience for me implementing the core features, let alone later debugging the mesh loaders, before I had the chance to do more optimization. I wish we could have had a very basic path tracer provided, say with diffuse shading and an OBJ loader implemented, so that we can spend more time on advanced visual and performance improvements. More importantly, since the focus of this course should really be on GPU programming techniques and CUDA performance optimization, I want to have more practice of using advanced CUDA features such as CUDA stream/ graphs, shared memory, and etc. in this project. Right now my project is not well-balanced, stressing more on impressive graphics without enough thinking on performance. I think that's actually a common pain point of most big class projects, where you try hard to just complete it leaving no time or energy for the better.

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.

2 participants