2nd Edition

Realistic Ray Tracing

By Peter Shirley, R. Keith Morley Copyright 2003
    235 Pages
    by A K Peters/CRC Press

    Concentrating on the "nuts and bolts" of writing ray tracing programs, this new and revised edition emphasizes practical and implementation issues and takes the reader through all the details needed to write a modern rendering system. Most importantly, the book adds many C++ code segments, and adds new details to provide the reader with a better intuitive understanding of ray tracing algorithms.

    Getting Started

    Code Optimization

    RGB Colors

    Images

    Vectors

    Orthonormal Bases and Frames

    Dynamic Length Arrays

    Random Number Generator

    C++ Code

    RGB Class

    Image Class

    Vector3 Class

    Orthonormal Basis Class

    Dynamic Array Class

    Random Number Generator

    Notes

    Ray—Object Intersections

    Parametric lines

    General Ray—Object Intersections

    Implicit Surfaces

    Parametric surfaces

    Ray—Sphere Intersection

    Ray—Triangle Intersection

    More Than One Object

    C++ Code

    Ray Class

    Shape Classes

    Notes

    A Simple Ray Tracer

    A Single Sample Ray Tracer

    Multisampling

    Sampling Methods

    Filtering Methods

    C++ Code

    Single Sample Orthogonal Viewing Ray Tracer

    Sample Class

    Notes

    Viewing

    Axis-aligned viewing

    Setting View Parameters

    Thin-lens cameras

    Motion Blur

    Multidimensional sampling

    C++ Code

    Camera Class

    Dynamic Sphere Class

    Notes

    Solid Texture Mapping

    Stripe Textures

    Solid Noise

    Turbulence

    C++ Code

    Solid Noise Class

    Texture Class

    Noise Texture Class

    Simple Texture Class

    Marble Texture Class

    Notes

    Image Texture Mapping

    C++ code

    2D Texture Class

    UVSphere Class

    Notes

    Triangle Meshes

    C++ Code

    Vertex Classes

    Mesh Class

    Mesh Triangle

    Notes

    Instancing

    Transformation Matrices

    Using Transformation Matrices

    Intersecting Rays with Transformed Objects

    Lattices

    C++ Code

    Matrix Library

    Shape Instance Class

    Notes

    Bounding Volume Hierarchies

    Hierarchical Bounding Boxes

    Efficient Ray-Box Intersection

    C++ Code

    New Ray Class

    Axis-Aligned Bounding Box Class

    Partitioning routine

    Bounding Volume Hierarchy

    Notes

    Monte Carlo Integration

    Integrals

    Continuous Probability

    One-Dimensional Continuous Probability Density Functions

    One-Dimensional Expected Value

    Multi-Dimensional Random Variables

    Estimated Means

    Monte Carlo Integration

    Choosing Random Points

    Function Inversion

    Notes

    Radiometry

    Photons

    Spectral energy

    Power

    Irradiance

    Radiance

    Deriving Other Radiometric Quantities from Radiance

    BRDF

    Directional Hemispherical Reflectance

    Ideal Diffuse BRDF

    Transport Equation

    Notes

    Path Tracing

    Luminaires

    Monte Carlo Solution to Light Transport

    Lambertian Environments

    Specular Reflection

    Imperfect Specular Reflection

    Smooth Dielectrics

    Specular-Diffuse Surfaces

    Image Display

    C++ Code

    Material Class

    Diffuse Material Class

    Phong Metal Material Class

    Diffuse-Specular Material Class

    Dielectric Material Class

    Notes

    Explicit Direct Lighting

    Direct Lighting in a Path Tracer

    Sampling a Spherical Luminaries

    Direct Lighting from Many Luminaries

    Choosing the Weights

    C++ Code

    Parallelogram Class

    Random Point Functions

    Notes

    Photon Mapping

    Sending Photons

    Using the Photon Map

    Indirect Use of the Photon Map

    Notes

    Participating Media

    Transport in Participating Media

    Direct Lighting

    Indirect Lighting

    Data for Media

    Notes

    Going Further

    Biography

    Peter Shirley, R. Keith Morley