Research / Toy Renderer
Building Renderer requires the following:
- Windows 11
- CMake 3.28
The steps for Visual Studio 2022 are:
- Clone the repository:
git clone https://github.com/rtryan98/renderer.git --recurse-submodules --shallow-submodules
. - Call CMake inside the cloned repository:
cmake -B build -G "Visual Studio 17 2022"
. - Open the solution file:
cmake --open build
. - Build the project inside Visual Studio.
Windows 10 and older Visual Studio versions are not tested and may not work. Build was tested using MSVC via both cl.exe
and clang-cl.exe
.
- Inverse Fast-Fourier-Transform (IFFT) based ocean surface simulation:
- Utilizes oceanographic spectra presented in C. Horvath's 'Empirical directional wave spectra for computer graphics'.
- The synthesized spectra are packed together to halve the amount of IFFTs required and thus double the performance of the simulation.
- Physically based rendering:
- Implemented microfacet BRDFs:
- Cook-Torrance.
- Image based lighting (IBL).
- Implemented microfacet BRDFs:
- Tone mapping:
- Implementation of GT7 tone mapping operator as presented in 'Driving Toward Reality: Physically Based Tone Mapping and Perceptual Fidelity in Gran Turismo 7'.
- Parallelized asset baking into runtime format.
- Pipeline and shader runtime precompilation and hot reloading (F5).
- Simple resource barrier tracking for single-queue use.
- Wide color gamut (WCG) and High dynamic range (HDR) display support (via PQ inverse EOTF).
This project is licensed under the MIT license.
Beyond this, it also makes use of several third party libraries and assets, each of which have their respective licensing information stored in their repositories. Currently the following third party libraries and assets are used: