Back to projects

Technical project

Ray Tracing Renderer

A CPU renderer with BSDF materials, three global-illumination methods, SAH BVH traversal, and OIDN denoising.

Source & README
Kitchen path-traced at 128 SPP with OIDN
Kitchen · path tracing · 128 SPP · OIDN. Existing renderer output.

Project overview

Focus
Light transport / material sampling
Platform
Windows / C++
Context
Games Engineering coursework

Materials and light transport

A common BSDF evaluation, sampling, and PDF interface supports diffuse, mirror, glass, and GGX conductor materials. Three rendering modes explore path tracing, instant radiosity, and light tracing. The path tracer combines NEE, MIS, and Russian roulette for sampling and path termination.

Material study at 128 SPP with OIDN denoising.
Material study at 128 SPP with OIDN denoising.

Sampling, traversal, and parallelism

  • Environment-map importance sampling weights luminance by spherical area and converts directional PDFs.
  • A binned SAH BVH supports closest-hit traversal and early-out shadow queries.
  • Screen tiles and atomic task distribution organize CPU parallel rendering.

Denoising comparison

Both images use 128 SPP: raw accumulation followed by OIDN with albedo and normal auxiliary buffers. Denoising reduces visible noise but is not a substitute for a high-sample reference.

Code and documentation

Implemented within the course framework; scene assets and Intel OIDN are external dependencies.

GitHub / README · Report

View all projects