/Spheres-DXR

A basic path-tracer, written using DirectX 12 RT-shaders.

Primary LanguageC

Summary

Uses 1 ray per pixel and the scene data can be modified by changing the values contained within Main.cpp.

In terms of DirectX 12, it makes use of a pipeline state with a global root signature, a ray generation shader, a Lambertian material hit group and miss shader, and writes the output into a 2D texture bound via unordered access. This output is presented to a Win32 window using a Vsync-enabled swap chain. The per-frame scene data is accessed in the shaders as a structure that is passed as global inline root constants.

Requires a GPU with DXR support as I have not implemented the fallback layer.

Sample Output

Lambertian 01

Lambertian 02

Lambertian 03