# Scratchapixel 3.0

A free educational site that progressively introduces you to the world of computer graphics.

Our application programming approach guides you through small, easy-to-compile programs.

We’ve dispensed with unnecessary technical jargon in favor of everyday language.

## Mathematics for Computer Graphics

Most common mathematical tools/techniques used in computer graphics/computer vision. Go through the lessons of the basic section first, and then eventually start reading these lessons as you go along.

## 3D Rendering for Beginners

Best read in chronological order (top to bottom).

- Introduction to Raytracing: A Simple Method for Creating 3D Images
- Where Do I Start? A Very Gentle Introduction to Computer Graphics Programming
- Rendering an Image of a 3D Scene: an Overview
- Computing the Pixel Coordinates of a 3D Point
- 3D Viewing: the Pinhole Camera Model
- Rasterization: a Practical Implementation
- The Perspective and Orthographic Projection Matrix
- An Overview of the Ray-Tracing Rendering Technique
- Ray-Tracing: Generating Camera Rays
- A Minimal Ray-Tracer: Rendering Simple Shapes (Sphere, Cube, Disk, Plane, etc.)
- Ray-Tracing: Rendering a Triangle
- Introduction to Polygon Meshes
- Ray-Tracing a Polygon Mesh
- Transforming Objects using Matrices
- Introduction to Shading
- The Phong Model, Introduction to the Concepts of Shader, Reflection Models and BRDF
- Global Illumination and Path Tracing
- Introduction to Acceleration Structures
- Volume Rendering for Developers: Foundations

## 3D Rendering for Beginners: Review

Before moving on to the next section (intermediate 3D rendering), let's review the essential concepts that we have learned so far. We will do so through a series of exercises and challenges for you to do (answers/solutions provided). Check the first lesson to read more...

## Geometry

Methods to define shapes in computer graphics.

## Digital Imaging

Saving and reading images to/from disk, image file format, color spaces, color management, and simple image processing.

## Procedural Generation of Virtual Worlds

Pocedural simulation of natural phenomena.

- Value Noise and Procedural Patterns: Part 1
- Perlin Noise: Part 2
- Simulating the Colors of the Sky
- Simulating Ocean Waves