We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Intro to 3D Graphics - Chris Ryan - NDC Oslo 2024
Learn core 3D graphics concepts like coordinate spaces, transforms, depth buffering & rasterization. Perfect for developers wanting to understand how 3D engines work.
-
3D graphics fundamentally work with triangles (polygons) rather than curves or complex shapes - triangles are used because 3 points always define a plane
-
Key coordinate spaces in the graphics pipeline:
- Model space (object’s local coordinates)
- World space (global coordinates)
- View/camera space
- Perspective/screen space
-
Matrix transformations are used to:
- Scale objects (make bigger/smaller)
- Rotate objects around axes
- Translate (move) objects in space
- Convert between different coordinate spaces
-
Depth buffering (Z-buffer) tracks how far each pixel is from the camera to determine which objects are visible/hidden
-
Rasterization is the process of converting 3D triangles into 2D pixels on screen through interpolation
-
Points vs Vectors:
- Points represent specific locations in space
- Vectors represent direction and magnitude but no specific position
- Important to keep types separate for correct math operations
-
Performance considerations:
- Matrix multiplication order matters for efficiency
- Combining multiple transformations into a single matrix is faster
- Memory transfer between CPU/GPU can be a bottleneck
- Floating point math is sufficient for most 3D graphics
-
Textures are 2D images mapped onto 3D surfaces to add visual detail
-
Basic 3D engine components:
- Mesh data structure (collection of triangles)
- Matrix math operations
- Rasterizer
- Depth buffer
- Frame buffer
-
Perspective projection makes distant objects appear smaller through perspective divide operation