https://www.scratchapixel.com Learn computer graphics from scratch and for free. The usual beloved lessons.A blog, some private courses,and an upcoming book project! [blog-card] Blog For Angry Nerds We've been missing a space where we can talk about topics related to 3D programming--and also broader themes like AI and education that connect to the work we do at Scratchapixel. [vulkan-car] Courses Learn Vulkan This is a new project we've started. For now, we're focusing on offering a course specifically targeted at learning the Vulkan API. Interested? Read more... [book-card] Book Take Scratchapixel to the Beach We're working on a book so you can keep a physical reference for computer graphics--very useful if you're stuck on a desert island with no internet. Read more... The Foundations of 3D Rendering These lessons are structured to introduce 3D rendering concepts in a beginner-friendly order. Unlike most resources, we start with hands-on results before diving into theory. 3D Computer Graphics Primer: Ray-Tracing as an Example What Do I Need to Get Started? Your Starting Point! Rendering an Image of a 3D Scene Computing the Pixel Coordinates of a 3D Point The Pinhole Camera Model Rasterization The Perspective and Orthographic Projection Matrix Overview of the Ray-Tracing Rendering Technique Generating Camera Rays with Ray-Tracing A Minimal Ray-Tracer Ray-Tracing: Rendering a Triangle Introduction to Polygon Meshes Ray-Tracing a Polygon Mesh Transforming Objects using Matrices Introduction to Shading Introduction to Shaders and BRDFs A Creative Dive into BRDF, Linearity, and Exposure Introduction to Lighting Introduction to Texturing Introduction to Acceleration Structures Volume Rendering Mathematics for Computer Graphics This section is dedicated to explaining the mathematical theories and tools used in creating images and simulations with a computer. It's not intended as a starting point, but rather as a reference to be consulted when these topics are mentioned in lessons from other sections. Geometry Matrix Inverse: Gauss-Jordan Method Interpolation Placing a Camera: the LookAt Function The Mathematics of Shading Mathematical Foundations of Monte Carlo Methods Monte Carlo Methods in Practice An Introduction to Fourier Transform Computer Graphics Gems A collection of lessons on specific topics that don't necessarily fit into any broad category but are nonetheless interesting and cool. Blackbody Geometry Methods to define shapes in computer graphics. Bezier Curves and Surfaces Digital Imaging Saving and reading images to and from disk, image file formats, color spaces, color management, and basic image processing. Introduction to Light, Color and Color Space Digital Images: from File to Screen Simple Image Manipulations Procedural Generation of Virtual Worlds Procedural simulation of natural phenomena. Value Noise and Procedural Patterns Perlin Noise Simulating the Colors of the Sky Tooling Various techniques useful for developing 3D tools and interacting with 3D content in general. Windowing The OBJ File Format Camera Navigation Controls About Terms of Service