MrMagnifico / cpp-restir

C++ implementation of ReSTIR on top of a Whitted-style software ray tracer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Software ReSTIR

A C++ implementation of Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting on top of a Whitted-style ray tracer. Developed for the implementation component for the course IN4310 Seminar Computer Graphics.

Build Instructions

As this project uses CMake, simply use your favourite CLI/IDE/code editor and compile the SeminarImpl target. A compiler with OpenMP 2.0+ support is required. All required libraries and resources are provided in this repository.

Background

The original ReSTIR is an algorithm for accelerating light sampling in direct illumination computation by performing spatial and temporal reuse of samples using weighted reservoir sampling. This implementation aims to provide a playground to fiddle with the algorithm's parameters and steps in order to demonstrate their effects both in isolation and in tandem. For further specifics, see the report provided in the root directory.

This implementation makes use of the final project framework from the course CSE2215 Computer Graphics.

Ray Tracer Specifics

The underlying ray tracer is a simple Whitted-style ray tracer that utilised a Phong shading model with diffuse and specular components. A singular bottom-level-style BVH is constructed on a per scene basis to accelerate ray tracing.

About

C++ implementation of ReSTIR on top of a Whitted-style software ray tracer


Languages

Language:C++ 99.1%Language:C 0.8%Language:CMake 0.2%