RT Graphics Programming
28 lessons available
All lessons

The purpose of this course

A rendered image can look convincing while leaving its maker unable to explain why a particular surface was visible, why a shadow began where it did or how much work the computer performed to produce one pixel. That is not sufficient. In these lessons we construct the camera, intersections, light transport and sampling ourselves. Canvas will display the pixels, but it will not decide their values for us. By the end, every colour in the scene has an inspectable route back through a ray, a hit and a bounded calculation.

The Vulkan half then preserves those questions while changing where and how they are executed. Resources, descriptors, commands, synchronisation, acceleration structures and shader stages are introduced as explicit responsibilities. Hardware traversal may answer a geometric query; it does not decide what the query meant.

Static Carnival

Graphics Programming

Twenty-eight lessons: construct ray tracing by hand, then implement the same contracts through Vulkan.

Begin Lesson 01Begin Vulkan Part IIOpen graphics glossary

Lessons 01-03

Rays and the camera

Begin with the raster, construct the ray and give every pixel a camera direction.

Lessons 04-06

Hits and surfaces

Solve intersections, retain the nearest answer and describe the surface that was found.

Lessons 07-10

Light and geometry

Illuminate the hit, test visibility and extend the scene from spheres to planes and triangles.

Lessons 11-14

Secondary rays and the complete scene

Add reflection, transmission and sampling before measuring the completed renderer.

Lessons 15-18

Vulkan foundations

Create the device, resources, pipeline and synchronised dispatch that can own a shader-written image.

Lessons 19-21

The manual tracer in compute

Transfer camera rays, sphere intersections and closest-hit traversal into independent compute invocations.

Lessons 22-26

Completing the compute renderer

Add materials, light, shadows, triangles, secondary-ray state and sample accumulation without hiding their contracts.

Lessons 27-28

Hardware traversal and the complete renderer

Build acceleration structures, introduce ray queries and the ray-tracing pipeline, then compare all three execution routes.