Let's try to turn some dot products into a 3D world!

Support my work (and get early access to new videos and source code) on Patreon or Nebula
* Patreon: https://www.patreon.com/SebastianLague
* Nebula: https://go.nebula.tv/sebastianlague

Source code:
* GitHub: https://github.com/SebLague/Software-Rasterizer

Credits:
* Music: https://raw.githubusercontent.com/SebLague/Misc-Project-Info/refs/heads/main/Coding-Adventures/Rasterizer.txt
* Raylib: https://github.com/raysan5/raylib
* C# bindings: https://github.com/raylib-cs/raylib-cs
* Visualizations made (mostly) with Shapes: https://acegikmo.com/shapes/

Chapters:
00:00 Intro
00:32 The First Image
02:39 Triangle Maths
05:36 Testing the Triangles
07:30 Reading a 3D Model
09:13 Orthographic Projection
10:20 Single-Axis Rotation
12:37 Back-Face Culling
13:42 Another Axis of Rotation
15:34 Perspective and Field of View
19:22 Monkey! (and the Depth Buffer)
25:30 Real-Time Rendering
26:31 Camera and View Space
31:22 Depth Bug
33:03 Textures
35:00 Directional Lighting
38:52 Boy and Fox
40:35 Near-Plane Clipping
43:49 Procedural Terrain
45:18 Some Quick Optimizations
46:32 Odds and Ends
48:40 Final Demo