3D Computer Graphics Primer: Ray-Tracing as an Example
A hands-on approach to the principles and joys of 3D computer graphics, making it an inviting starting point for curious minds.
What Do I Need to Get Started?
Setting Up a Workspace for Coding and Testing.
1. Your Starting Point!
A Very Gentle Introduction to Computer Graphics Programming.
2. Rendering an Image of a 3D Scene
The Breadth of Techniques and Steps Involved in the Transformation of a 3D Scene into a 2D Image.
3. Computing the Pixel Coordinates of a 3D Point
Mastering the Foundational Technique of Generating Images from 3D Objects.
4. The Pinhole Camera Model
How To Simulate Cameras In Computer Graphics.
5. Rasterization
A Practical and Comprehensive Implementation of the Rasterization Technique.
6. The Perspective and Orthographic Projection Matrix
What They Are, How They Work, and Why They Matter - Demystified.
7. Overview of the Ray-Tracing Rendering Technique
A Comprehensive Guide to Every Step of Image Generation with Ray-Tracing.
8. Generating Camera Rays with Ray-Tracing
Pixel by Pixel: Calculating Rays for Image Rendering in Ray-Tracing.
9. A Minimal Ray-Tracer
Crafting Realistic Images with Basic Geometric Shapes (Sphere, Cube, Disk, Plane, ...).
10. Ray-Tracing: Rendering a Triangle
Ray-Tracing Essentials: Rendering a Triangle Through Ray Intersection.
11. Introduction to Polygon Meshes
Building the Digital World: Understanding the Fundamentals of Polygon Meshes.
12. Ray-Tracing a Polygon Mesh
Racing Rays Through Polygon Mesh Triangles.
13. Transforming Objects using Matrices
Matrix Magic: Shaping the Digital World through Object Transformation.
14. Introduction to Shading
Bringing Scenes to Life: The Art and Science of Shading Techniques.
15. Introduction to Shaders and BRDFs
Explore fundamental concepts that control and define object appearance and their interactions with light in this lesson on shaders and BRDFs.
16. A Creative Dive into BRDF, Linearity, and Exposure
This lesson unravels the mystery of BRDFs through a focus on diffuse surfaces, introducing foundational concepts of exposure, the grey zone system, and color mapping with linear values in computer graphics.
17. Understanding Reflection and Refraction
Explore the mathematics and simulations behind how light reflects and refracts through different materials.
18. Introduction to Lighting
Illuminate Your Scenes: Understanding and Applying Basic Light Sources: Point, Spot, Distant and Area Lights.
19. Introduction to Texturing
Texturing uses images to modify object surfaces, changing properties like color and shininess.
20. Introduction to Image Based Lighting and High Dynamic Range Images
Explore Image-Based Lighting, a technique using real-scene photographs to illuminate synthetic 3D scenes.
21. Global Illumination and Path Tracing
Illuminating Realism: Exploring Path Tracing Techniques for Lifelike Global Illumination.
22. Introduction to Acceleration Structures
The Role of Acceleration Structures in Enhancing Computational Performance.
23. Volume Rendering
Volume Rendering Demystified: A Developer's Guide.
24. Windowing
Displaying Images to the Screen.
25. The OBJ File Format
Learn how to read 3D models data stored in files utilizing the simplest and oldest 3D file format.
26. Camera Navigation Controls
Navigating a 3D Scene with Mouse and Keyboard.
1. Bounding Volume Hierarchy (BVH) Acceleration
Fast-Track Your Rays: Boosting Scene Speed with BVH Magic.
2. Multithreading in Rendering
Divide and Conquer: Speeding Up Scenes with Teamwork Threads.
3. Texturing
Bring Realism to Your 3D Scenes with Textures.
4. Ray Differentials
Sharper Textures, Smarter Rays: Fine-Tuning with Ray Differentials.
5. Path Tracing
Simulating real-world light behavior to achieve unmatched realism in digital environments.
6. Depth of Field
Achieve Photographic Realism: Bringing Objects into Focus, Just Like a Camera Lens.
7. Motion Blur
A crucial technique in simulating the way moving objects appear in still photography and film.
8. Sampling Techniques
Exploring various sophisticated sampling methods, like Hammersley, to achieve cleaner, more accurate renders by effectively minimizing noise.
9. Rendering Equation
Dive into the core of photorealistic rendering with the Kajiya rendering equation, a formula to simulate light and material interactions in 3D scenes.
10. Advanced Image Based Lighting Techniques
Explore simulating blurry reflections and diffuse shading using environment maps in a physically plausible manner.
11. Importance Sampling
A strategic approach to reducing noise and enhancing quality in rendered images.
12. Bidirectional Path-Tracing
A rendering strategy that intertwines paths originating from the camera with those emanating from light sources.
13. Multiple Importance Sampling
A pivotal technique in the realm of rendering that masterfully balances sampling strategies for both materials and lights.
14. Boosting Rendering with SIMD Acceleration
A powerful technique that leverages parallel computing to supercharge your rendering processes and beyond.
15. Level of Detail in 3D Scenes
A technique for optimizing rendering performance while preserving visual quality.
16. Shadow Maps
A technique for crafting realistic shadows in the dynamic worlds of video games.
Geometry
Point, Vectors, Matrices, and a Dash of Magic: 3D Geometry Without Tears.
Matrix Inverse: Gauss-Jordan Method
One of most common methods for inverting matrices.
Interpolation
Learn how to estimate unknown values between two known points using linear interpolation.
Placing a Camera: the LookAt Function
The LookAt method is a common function used in computer graphics to orient a camera or viewer towards a specific point in a 3D scene.
The Mathematics of Shading
Explore the mathematical foundations of shading and path tracing.
Mathematical Foundations of Monte Carlo Methods
Explore Monte Carlo Methods, extensively used in modern 3D rendering and ray-tracing to sample various functions efficiently.
Monte Carlo Methods in Practice
Learn practical implementations of Monte Carlo Methods to tackle complex problems that defy analytical solutions through effective sampling techniques.
An Introduction to Fourier Transform
Explore the Fourier Transform, an essential mathematical tool in computer graphics for solving problems in image processing, anti-aliasing, texture analysis, synthesis, compression, and more.
Quaternion Demystified
The mathematical marvels at the heart of smooth and stable 3D rotations.
Blackbody
Understanding blackbody radiation for realistic color and light in CG simulations.
IES and EULUMDAT Light Profiles
IES and EULUMDAT profiles capture the angular light distribution of real-world lights and can be used to create complex lighting effects despite the simplicity of the light models.