#include <williamwhitehouse.dev>

-home- -proj- -blog-

Physically Based Rendering using DirectX11


My second project for the "Advanced Technologies" module at university involved delving into Physically Based Rendering (PBR) and simulating the appearance of clay materials in real-time. I chose to investigate various Bidirectional Reflectance Distribution Functions (BRDF) and microfacet models and implement them in a C++ DirectX11 renderer using HLSL.

Alongside the final project, I developed a report detailing the research and mathematics behind PBR, as well as analysis of the final rendering. Read the report here!

PBR DirectX11 PBR DirectX11 PBR DirectX11
PBR DirectX11 PBR DirectX11 PBR DirectX11

Development

This project delved into the mechanics of real-time PBR material rendering, leading to an understanding of the rendering equation, BRDFs and microfacet models.

The journey began by implementing the fundamental BRDFs, like Phong and Blinn. Then progressing onto various microfacet models such as the Cook-Torrance specular BRDF and the Oren-Nayar diffuse model.

Beyond the exploration of the different BRDFs, the project enhanced the realism of the clay materials through a series of other rendering features. The introduction of Normal Mapping facilitated the capture of intricate surface details, further enabled by the blending of two normal map textures (one used for the clay material itself, another for smaller details such as fingerprints).

Environment reflections was added through an environment cubemap (with the addition of a noise texture to add some randomness). Additionally, a basic approximation of subsurface scattering, known as wrap lighting (proposed in GPU Gems) was implemented.

Future Work

The existing subsurface scattering implementation, while functional, offers scope for improvement as it only provides a crude approximation.

The demands of real-time rendering imposed limitations on achievable material realism; looking ahead, implementing Ray Tracing and Monte Carlo algorithms could be a interesting exploration that would enhance material realism - albeit with a trade-off in real-time performance.