Quadric Rendering with Compute

A software renderer implemented with DirectX 12 Compute Shaders

Mobirise

Pipeline

The pipeline described below combines ideas from sort-middle and sort-last. Primitives are distributed after
projection, based on where they are on the screen. After which each tile distributes the primitives over several
renderers that can run in parallel, which fixes workload imbalance when for example all geometry is projected
onto 1 tile on the screen. At the end, the results of all rasterizers are combined again to create the final image.
The pipeline consists of several stages. Every stage is executed sequentially. But the stages themselves are
parallelized. Each Mesh goes through all these stages.

Mobirise Website Builder

Rendering Quadrics

Because quadrics are completely different from triangles. They have to be projected and rasterized with different
methods. One of these algorithms was described by J.F. Blinn in his book Notation, Notation, Notation. It was used
by Blinn to render images of planets in the solar system for the voyager flyby movie, made for NASA and It is also
the method used in this project. Some adjustments were made in order for the method to better fit the GPU.

Some pictures


Looking back   

This project served as a foundational exploration of low-level graphics APIs and DirectX 12. Building a custom compute pipeline from scratch provided deep insight into GPU scheduling, resource barrier management, and modern hardware-accelerated rendering techniques, laying the groundwork for subsequent advanced graphics development.