- Wavefront Path Tracing
- Sperating megakernels into several kernels:
RayGen
,Intersection
,Shade
... - Less Warp Divergence: Stream compacting the ray path segments
- Improve Memory Access Coalescing: SoA data layout and sorting path segments by material type before shading
- Sperating megakernels into several kernels:
- Texture Mapping: More surface color based on CUDA
Texture Object
- Triangle Primitive Mesh: More shapes based on
Obj
loader - Accelerate Data Structure
BVH
:- Binary Radix Tree Construction
- Parallel Tree Traversal
- Two Level Acceleration Structures: world level (TLAS) & model level (BLAS)
- Efficient Monte Carlo Integrator:
- Next Event Estimation: Shadow rays are explicitly aimed at light sources
- Multiple Importance Sampling: Combining the PDFs of different sampling techniques
- Physically Based Rendering:
- Diffuse (Lambertian)
- Fresnel Reflection
- CUDA
- OpenGL
- GLFW
- GLEW
- GLM
- ImGui
- Stb Image
- Tinygltf
- Tinyobj loader
- nlohmann-json