https://www.scratchapixel.com/index.html
Scratchapixel 4.0 Lessons Books Donate
Welcome to Computer Graphics
Teaching computer graphics programming to regular folks. Original
content written by professionals with years of field experience. We
dive straight into code, dissect equations, avoid fancy jargon and
external libraries. Explained in plain English. Free.
Section 1: Beginners
This section is tailored specifically for beginners. We've carefully
selected topics and structured them as a journey, guiding you from
points A to B to C and beyond, with each lesson building upon the
concepts learned in the previous one. It is intended that this
section be followed in chronological order. Occasionally, there may
be references to lessons from the Geometry section, particularly the
introductory lessons on points, vectors, normals, and matrices.
Lesson Thumbnail
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.
Updated
Lesson Thumbnail
What Do I Need to Get Started?
Setting Up a Workspace for Coding and Testing.
Updated
Lesson Thumbnail
1. Your Starting Point!
A Very Gentle Introduction to Computer Graphics Programming.
Updated
Lesson Thumbnail
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.
Updated
Lesson Thumbnail
3. Computing the Pixel Coordinates of a 3D Point
Mastering the Foundational Technique of Generating Images from 3D
Objects.
Updated
Lesson Thumbnail
4. The Pinhole Camera Model
How To Simulate Cameras In Computer Graphics.
Updated
Lesson Thumbnail
5. Rasterization
A Practical and Comprehensive Implementation of the Rasterization
Technique.
Updated
Lesson Thumbnail
6. The Perspective and Orthographic Projection Matrix
What They Are, How They Work, and Why They Matter - Demystified.
Updated
Lesson Thumbnail
7. Overview of the Ray-Tracing Rendering Technique
A Comprehensive Guide to Every Step of Image Generation with
Ray-Tracing.
Lesson Thumbnail
8. Generating Camera Rays with Ray-Tracing
Pixel by Pixel: Calculating Rays for Image Rendering in Ray-Tracing.
Lesson Thumbnail
9. A Minimal Ray-Tracer
Crafting Realistic Images with Basic Geometric Shapes (Sphere, Cube,
Disk, Plane, ...).
Updated
Lesson Thumbnail
10. Ray-Tracing: Rendering a Triangle
Ray-Tracing Essentials: Rendering a Triangle Through Ray
Intersection.
Updated
Lesson Thumbnail
11. Introduction to Polygon Meshes
Building the Digital World: Understanding the Fundamentals of Polygon
Meshes.
Lesson Thumbnail
12. Ray-Tracing a Polygon Mesh
Racing Rays Through Polygon Mesh Triangles.
Lesson Thumbnail
13. Transforming Objects using Matrices
Matrix Magic: Shaping the Digital World through Object
Transformation.
Lesson Thumbnail
14. Introduction to Shading
Bringing Scenes to Life: The Art and Science of Shading Techniques.
Updated
Lesson Thumbnail
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.
Refresh Needed
Lesson Thumbnail
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.
New
Lesson Thumbnail
17. Understanding Reflection and Refraction
Explore the mathematics and simulations behind how light reflects and
refracts through different materials.
Lesson Thumbnail
18. Introduction to Lighting
Illuminate Your Scenes: Understanding and Applying Basic Light
Sources: Point, Spot, Distant and Area Lights.
New
Lesson Thumbnail
19. Introduction to Texturing
Texturing uses images to modify object surfaces, changing properties
like color and shininess.
Lesson Thumbnail
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.
Lesson Thumbnail
21. Global Illumination and Path Tracing
Illuminating Realism: Exploring Path Tracing Techniques for Lifelike
Global Illumination.
Lesson Thumbnail
22. Introduction to Acceleration Structures
The Role of Acceleration Structures in Enhancing Computational
Performance.
Lesson Thumbnail
23. Volume Rendering
Volume Rendering Demystified: A Developer's Guide.
Lesson Thumbnail
24. Windowing
Displaying Images to the Screen.
Updated
Lesson Thumbnail
25. The OBJ File Format
Learn how to read 3D models data stored in files utilizing the
simplest and oldest 3D file format.
Updated
Lesson Thumbnail
26. Camera Navigation Controls
Navigating a 3D Scene with Mouse and Keyboard.
Updated
Lesson Thumbnail
27. Importance Sampling
xx.
Section 2: Intermediate
In this section, we proceed with our journey from Section 1, delving
into topics that go beyond basic knowledge. Here, we will explore
everything not covered in Section 1 that we consider fundamental to
computer graphics across various fields, including not only rendering
but also animation and certain programming techniques essential for
working with images and similar tasks. This is aimed at laying a
solid foundation for building applications.
Lesson Thumbnail
1. Bounding Volume Hierarchy (BVH) Acceleration
Fast-Track Your Rays: Boosting Scene Speed with BVH Magic.
Lesson Thumbnail
2. Multithreading in Rendering
Divide and Conquer: Speeding Up Scenes with Teamwork Threads.
Lesson Thumbnail
3. Texturing
Bring Realism to Your 3D Scenes with Textures.
Lesson Thumbnail
4. Ray Differentials
Sharper Textures, Smarter Rays: Fine-Tuning with Ray Differentials.
Lesson Thumbnail
5. Path Tracing
Simulating real-world light behavior to achieve unmatched realism in
digital environments.
Lesson Thumbnail
6. Depth of Field
Achieve Photographic Realism: Bringing Objects into Focus, Just Like
a Camera Lens.
Lesson Thumbnail
7. Motion Blur
A crucial technique in simulating the way moving objects appear in
still photography and film.
Lesson Thumbnail
8. Sampling Techniques
Exploring various sophisticated sampling methods, like Hammersley, to
achieve cleaner, more accurate renders by effectively minimizing
noise.
Lesson Thumbnail
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.
Lesson Thumbnail
10. Advanced Image Based Lighting Techniques
Explore simulating blurry reflections and diffuse shading using
environment maps in a physically plausible manner.
Lesson Thumbnail
11. Importance Sampling
A strategic approach to reducing noise and enhancing quality in
rendered images.
Lesson Thumbnail
12. Bidirectional Path-Tracing
A rendering strategy that intertwines paths originating from the
camera with those emanating from light sources.
Lesson Thumbnail
13. Multiple Importance Sampling
A pivotal technique in the realm of rendering that masterfully
balances sampling strategies for both materials and lights.
Lesson Thumbnail
14. Boosting Rendering with SIMD Acceleration
A powerful technique that leverages parallel computing to supercharge
your rendering processes and beyond.
Lesson Thumbnail
15. Level of Detail in 3D Scenes
A technique for optimizing rendering performance while preserving
visual quality.
Lesson Thumbnail
16. Shadow Maps
A technique for crafting realistic shadows in the dynamic worlds of
video games.
Mathematics for Computer Graphics
Yes, sometimes diving into theory is necessary. This section is
dedicated to understanding the mathematical theories and tools
utilized in creating images and simulations with a computer. It's not
intended for you to start with this section, but rather to refer to
these lessons when they are mentioned in the lessons from other
sections.
Lesson Thumbnail
Geometry
Point, Vectors, Matrices, and a Dash of Magic: 3D Geometry Without
Tears.
Updated
Lesson Thumbnail
Matrix Inverse: Gauss-Jordan Method
One of most common methods for inverting matrices.
Updated
Lesson Thumbnail
Interpolation
Learn how to estimate unknown values between two known points using
linear interpolation.
Updated
Lesson Thumbnail
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.
Updated
Lesson Thumbnail
The Mathematics of Shading
Explore the mathematical foundations of shading and path tracing.
Lesson Thumbnail
Mathematical Foundations of Monte Carlo Methods
Explore Monte Carlo Methods, extensively used in modern 3D rendering
and ray-tracing to sample various functions efficiently.
Lesson Thumbnail
Monte Carlo Methods in Practice
Learn practical implementations of Monte Carlo Methods to tackle
complex problems that defy analytical solutions through effective
sampling techniques.
Lesson Thumbnail
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.
Lesson Thumbnail
Quaternion Demystified
The mathematical marvels at the heart of smooth and stable 3D
rotations.
Computer Graphics Gems
A collection of lessons about specific topics that don't necessarily
fit into any broad category but are cool to teach and study, and are
useful to know. The name "Computer Graphics Gems" pays homage to the
iconic Graphics Gems book collection published in the 1990s and
2000s.
Lesson Thumbnail
Blackbody
Understanding blackbody radiation for realistic color and light in CG
simulations.
New
Lesson Thumbnail
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.
Geometry
Methods to define shapes in computer graphics.
Lesson Thumbnail
Bezier Curves and Surfaces
Learn How to Render the Legendary Utah Teapot.
Lesson Thumbnail
Subdivision Surfaces
A method for representing smooth shapes through the iterative
refinement of polygonal meshes.
Animation and Simulation
XX.
Lesson Thumbnail
The Essentials of Animation Skinning
An overview of skinning techniques, including rigging and weight
painting, to ensure naturalistic movement and deformation.
Digital Imaging
Saving and reading images to/from disk, image file format, color
spaces, color management, and simple image processing.
Lesson Thumbnail
Introduction to Light, Color and Color Space
Lesson Thumbnail
Digital Images: from File to Screen
Lesson Thumbnail
Simple Image Manipulations
Procedural Generation of Virtual Worlds
Pocedural simulation of natural phenomena.
Lesson Thumbnail
Value Noise and Procedural Patterns
Lesson Thumbnail
Perlin Noise
Lesson Thumbnail
Simulating the Colors of the Sky
Lesson Thumbnail
Simulating Ocean Waves
The principles and techniques behind wave simulation, from simple
sine waves to complex algorithms like Fast Fourier Transform (FFT)
and Gerstner waves.
About Us Contact Us Donate Terms of Service Discord X