Skip to content

andersblomqvist/master-thesis-renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Master's Thesis Renderer

This repository is a continuation of my Unity NanoVDB Renderer and includes the implementation, evaluation, and all of the data for my master's thesis.

Overview

The thesis focuses on optimizing light samples for large volumetric clouds, such as the Disney Moana cloud, by randomly offsetting them, combined with temporal and spatial filtering. We explore various sampling techniques, including white noise, various types of blue noise, and interleaved gradient noise (IGN), and evaluate their compatibility with denoising filters such as Gaussian, box, and binomial. In essence, the purpose is to reduce graphical artifacts that appears when light samples are few acros large distances. Not to render a pretty cloud.

Showcase

Randomly offseting samples based on FAST noise optimized towards an Exponential Moving Average (EMA) temporal filter and a Binomial 3x3 spatial filter gave the best results (no color banding and lowest amount of noise), see screenshot below. All details are found in the report pdf, which is available at: TBA

fast_ema_binom3x3

Screenshot of the Disney Moana Cloud rendered at 211 FPS (4.7 ms) 1920x1080 using 10 light samples on RTX 3080 at stock speeds. Jitter is using FAST noise optimized towards EMA and binomial 3x3 filters.

Implementation

Built using Unity 6000.0.34f1 and DirectX 12. The renderer is divided into three parts:

  1. Volume Pass: NanoVolumePass.hlsl
  2. Temporal Pass: TemporalFilterPass.hlsl
  3. Spatial Pass: SpatialFilterPass.hlsl

Each pass renders to a texture, which will be used by the next pass in line. The random offset (jitter) is applied in the Volume Pass at line 142. The jitter variable samples either precomputed noise textures or generate it during runtime. The sampling is done in NoiseSampler.hlsl.

Data

All data is found under the RMSECalculator folder, see RQ1 and RQ2 folders.

Acknowledgements

TBA

About

NanoVDB renderer for my Master's Thesis evaluating noise and filters for temporal anti-aliasing

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published