Preface
Prerequisites
Educational Goals
Topics Covered
Structure
Projects and Code
Primary Sources
Feedback
Introduction
Images and Light
Physically Based Rendering
The Rendering Equation
C++
An Example
Header and Source Files
Memory Model
Types
Plain Old Data
Pointer Types
Stack and Heap Allocation
References
const References
Reference-Counted Pointers
Copying and Assignment
Pre- and Post-Increment
Conclusion: The C++ Programmer Mindset
Surface Geometry
What is a Surface?
The Speeds of Light
Surfaces are Interfaces
Model a 1D Surface in 2D Space
A Surface is a Set of Points
Implicit Form
Explicit Form
Triangle Meshes
A Triangle
Triangle List
Indexed Triangle List
A Model of Light
Digital Images are Measurements
Rays of Light
Transport Paths
Vectors
Unit Vectors
Geometric Rays
The Light Field
Light is Conserved Along a Ray
Version Control Basics
Systems
Advantages
Repository Model
Typical Workflow
Leveraging Versions
Best Practices
The Rendering Equation
Radiometric Units
Photon Energy
Power
Irradiance and Radiosity
The Measure of a Set
Radiance
Measurements in Different Frames
Lambert's Projected Area
Vector Dot Product
The Rendering Equation
Rendering is Very Hard
A Camera Model
Images
Images are Everywhere
An Aperature Selects an Image
A 16th Century Mechanical Renderer
A Modern Computational Renderer
Primary Rays from a Pinhole Camera
Dynamic Range
Gamma Encoding
Bloom
Desaturation
Ray Casting
Ray Casting Algorithm
Ray-Sphere Intersection
Ray-Plane Intersection
Ray-Triangle Intersection
Unit Triangle
Barycentric Coordinates
Arbitrary Triangle
Vector Cross PRoduct
Triangle Mesh
Some Performance Considerations
Visualization for Debugging
Texture Coordinates
Stepping Into One Pixel
Direct Illumination
Radiance is Conserved Along a Ray
Direct Illumination
Scattered Radiance
Biradiance
Implementing Point Lights
Shadows
The Visibility Function
Ambient Illumination
Materials
Probability density
The BSDF
Lambert's Law
Scattering Functions
Common Terms
Mirror Reflection
Implementing Impulses
Transmission and Refraction
Microfacets
Subsurface Scattering
Lambertian Reflection
The Fresnel Effect
Partial Coverage
Compositing
Alpha Cutout
Perceived Color
Rendering Algorithms
The Transport Graph
Path Notation
Node Types
Operators
Notable Phenomena
Direct and Ambient Illumination
Whitted Ray Tracing
Path Tracing
Bidirectional Path Tracing
Photon Mapping
Radiosity
The Eye
Photoreceptors
Photoreceptor Response
Photopic Vision
Scotopic Vision