/Unnamed-Renderer-Dx12

A hobby path-tracer, written using DirectX12 compute shaders.

Primary LanguageC++

Unnamed Renderer: 3-Stage Compute Path-Tracer

Implemented using DirectX 12 Compute shaders. Inspired by Peter Shirley's Ray Tracing in One Weekend.

Materials

-Lambertian

-Metallic

-Dielectric

-Diffuse Light

Primitives

-Procedural Spheres

-Procedural Rectangles

-Procedural Triangles

Camera

Currently just a basic camera that is fixed right near the world origin, with modifiable field-of-view, where the view port is defined as:

-1.0f <= y <= +1.0f and, (-1.0f * AspectRatio) <= x <= (+1.0f * AspectRatio)

Rendering Method

Render-Pass 1: Generates an Intersection Map which is a collection of recorded intersections/misses between the Camera Paths and the Scene Geometry.

Render-Pass 2: Consumes the Intersection Map to generate an Accumulation Frame, which is the total summed Samples for each Pixel.

Render-Pass 3: Consumes the Accumulation Frame to produce the Final Frame, which is then copied into Host RAM for later presentation.

3000SPP, 30B, 720p

3000SPP, 30B, 720p

3000SPP, 30B, 720p

3000SPP, 30B, 720p

3000SPP, 30B, 720p

720p, 1500SPP, 30B Caustics 01

720p, 1000SPP, 20B

720p, 200SPP, 7 Bounces