This is a project that I develop alongside the graphics advanced masterclass at BUAS, presented by Jacco Bikker. It will involve raytracing and pathtracing on the CPU, and eventually moving that to the GPU, as well as building your own acceleration structures.
Planned:
- Variance reduction
- Next event estimation
- (Multiple/Resampled) importance sampling
- Russian roulette
- ReSTIR
- Acceleration structure
- Top-level AS with transforms
- Bottom-level acceleration structures
- BVH refitting
- Binned BVH build
- Denoising
- Additional optimizations for CPU raytracing and SIMD
- Microfacet BRDF (Physically-based rendering)
- GPU raytracing in compute (all software, no hardware)
Current: Path tracer
- Soft shadows
- Bounding volume hierarchies (Triangle primitives only)
- Mid point split
- Surface area heuristic (SAH)
- Diffuse reflections
- Specular reflections
- Dielectrics
- Beer's law (absorption)
Glass Dragon:
Refractive_Materials_Path_Traced.mp4
Specular reflections in ground:
Specular_Reflections_Probability_80_Percent.mp4
BVH mid point split vs. SAH:
SAH_Intervals_VS_Naive_Mid_Point_Split.mp4
Previous: Whitted-style raytracer (Finished)
- Direct illumination from multiple light sources
- Shadow rays
- Distance attenuation
- Lambert diffuse, N dot L
- Pure specular reflections (recursive)
- Dielectric materials like glass (recursive)
- Beer's law (absorption within medium)