Table of Contents (For The Second Edition)
(† indicates advanced topics)
Preface
CHAPTER 01. INTRODUCTION
- Literate Programming
- Indexing and Cross-Referencing
- Photorealistic Rendering and the Ray-Tracing Algorithm
- Cameras
- Ray-Object Intersections
- Light Distribution
- Visibility
- Surface Scattering
- Recursive Ray Tracing
- Ray Propagation
- pbrt: System Overview
- Phases of Execution
- Scene Representation
- Renderer Interface and SamplerRenderer
- Main Rendering Loop
- Parallelization of pbrt
- An Integrator for Whitted-Style Ray Tracing
- How to Proceed through This Book
- Using and Understanding the Code
- Pointer or Reference?
- Code Optimization
- The Book Web site
- Extending the System
- Bugs
- Further Reading
- Exercise
CHAPTER 02. GEOMETRY AND TRANSFORMATIONS
- Coordinate Systems
- Coordinate System Handedness
- Vectors
- Arithmetic
- Scaling
- Dot and Cross Product
- Normalization
- Coordinate System from a Vector
- Points
- Normals
- Rays
- Three-Dimensional Bounding Boxes
- Transformations
- Homogeneous Coordinates
- Basic Operations
- Translations
- Scaling
- x, y, and z Axis Rotations
- Rotation around an Arbitrary Axis
- The Look-At Transformation
- Applying Transformations
- Points
- Vectors
- Normals
- Rays
- Bounding Boxes
- Composition of Transformations
- Transformations and Coordinate System Handedness
- Animating Transformations †
- Quaternions
- Quaternion interpolation
- AnimatedTransform implementation
- Differential Geometry
- Further Reading
- Exercises
CHAPTER 03. SHAPES
- Basic Shape Interface
- Bounding
- Refinement
- Intersection
- Avoiding Incorrect Self-Intersections
- Shading Geometry
- Surface Area
- Sidedness
- Spheres
- Construction
- Bounding
- Intersection
- Partial Spheres
- Partial Derivatives of Normal Vectors
- DifferentialGeometry Initialization
- Surface Area
- Cylinders
- Construction
- Bounding
- Intersection
- Partial Cylinders
- Surface Area
- Disks
- Construction
- Bounding
- Intersection
- Surface Area
- Other Quadrics
- Cones
- Paraboloids
- Hyperboloids
- Triangles and Meshes
- Triangle
- Triangle Intersection
- Surface Area
- Shading Geometry
- Subdivision Surfaces †
- Mesh Representation
- Bounds
- Subdivison
- Further Reading
- Exercises
CHAPTER 04. PRIMITIVES AND INTERSECTION ACCELERATION
- Primitive Interface and Geometric Primitives
- Geometric Primitives
- TransformedPrimitive: Object Instancing and
Animated Primitives
- Aggregates
- Grid Accelerator
- Bounding Volume Hierarchies
- BVH Construction
- The Surface Area Heuristic
- Compact BVH for Traversal
- Traversal
- Kd-Tree Accelerator
- Tree Representation
- Tree Construction
- Traversal
- Debugging Aggregates
- Finding Bugs in Aggregates
- Fixing Bugs in Aggregates
- Aggregate Performance Bugs
- Further Reading
- Exercises
CHAPTER 05. COLOR AND RADIOMETRY
- Spectral Representation
- The Spectrum Type
- CoefficientSpectrum Implementation
- The SampledSpectrumClass
- RGBSpectrum Implementation
- Basic Radiometry
- Basic Quantities
- Incident and Exitant Radiance Functions
- Luminance and photometry
- Working with Radiometric Integrals
- Integrals over Projected Solid Angle
- Integrals over Spherical Coordinates
- Integrals over Area
- Surface Reflection
- Further Reading
- Exercises
CHAPTER 06. CAMERA MODELS
- Camera Model
- Projective Camera Models
- Orthographic Camera
- Perspective Camera
- Depth of Field
- Environment Camera
- Further Reading
- Exercises
CHAPTER 07. SAMPLING AND RECONSTRUCTION
- Sampling Theory
- The Frequency Domain and the Fourier Transform
- Ideal Sampling and Reconstruction
- Aliasing
- Antialiasing Techniques
- Application to Image Synthesis
- Sources of Aliasing in Rendering
- Understanding Pixels
- Image Sampling Interface
- Sample Representation and Allocation
- Stratified Sampling
- Low-Discrepancy Sampling †
- Definition of Discrepancy
- Hammersley and Halton Sequences
- (0,2)-Sequences
- The Low-Discrepancy Sampler
- Best-Candidate Sampling Patterns †
- Adaptive Sampling
- Image Reconstruction
- Film and the Imaging Pipeline
- Further Reading
- Exercises
CHAPTER 08. REFLECTION MODELS
- Basic Interface
- Reflectance
- BRDF>BTDF Adapter
- BxDF Scaling Adapter
- Specular Reflection and Transmission
- Fresnel Reflectance
- Specular Reflection
- Specular Transmission
- Lambertian Reflection
- Microfacet Models
- Oren-Nayar Diffuse Reflection
- Torrance-Sparrow Model
- Blinn Microfacet Distribution
- Anisotropic Microfacet Model
- Fresnel Incidence Effects
- Measured BRDFs
- Irregular Isotropic Measured BRDF
- Regular Halfangle Format
- Further Reading
- Exercises
CHAPTER 09. MATERIALS
- BSDFs
- Material Interface and Implementations
- MatteMaterial
- PlasticMaterial
- Mix Material
- Measured Material
- Additional Materials
- Bump Mapping
- Further Reading
- Exercises
CHAPTER 10. TEXTURE
- Sampling and Antialiasing
- Finding the Texture Sampling Rate
- Filtering Texture Functions
- Ray Differentials for Specular Reflection and Transmission †
- Texture Coordinate Generation
- 2D (u, v) Mapping
- Spherical Mapping
- Cylindrical Mapping
- Planar Mapping
- 3DMapping
- Texture Interface and Basic Textures
- Constant Texture
- Scale Texture
- Mix Textures
- Bilinear Interpolation
- Image Texture
- Texture Caching
- MIPMaps
- Isotropic Triangle Filter
- Elliptically Weighted Average
- Solid and Procedural Texturing
- UV Texture
- Checkerboard
- Solid Checkerboard
- Noise
- Perlin Noise
- Random Polka Dots
- Noise Idioms and Spectral Synthesis
- Bumpy and Wrinkled Textures
- Windy Waves
- Marble
- Further Reading
- Exercises
CHAPTER 11. VOLUME SCATTERING †
- Volume Scattering Processes
- Absorption
- Emission
- Out-Scattering and Extinction
- In-scattering
- Phase Functions
- Volume Interface and Homogeneous Media
- Varying-Density Volumes
- 3D Grids
- Exponential Density
- Volume Aggregates
- The BSSRDF
- Subsurface Scattering Materials
- Further Reading
- Exercises
CHAPTER 12. LIGHT SOURCES
- Light Interface
- Point Lights
- Spotlights
- Texture Projection Lights
- Goniophotometric Diagram Lights
- Distant Lights
- Area Lights
- Infinite Area Lights
- Further Reading
- Exercises
CHAPTER 13. MONTE CARLO INTEGRATION I: BASIC CONCEPTS
- Background and Probability Review
- Continuous Random Variables
- Expected Values and Variance
- The Monte Carlo Estimator
- Sampling Random Variables
- The Inversion Method
- The Rejection Method
- Metropolis Sampling †
- Basic Algorithm
- Choosing Mutation Strategies
- Start-up bias
- Estimating Integrals with Metropolis Sampling
- Example: One-Dimensional Setting
- Transforming between Distributions
- Transformation in Multiple Dimensions
- Example: Polar Coordinates
- Example: Spherical Coordinates
- 2D Sampling with Multidimensional Transformations
- Example: Uniformly Sampling a Hemisphere
- Example: Sampling a Unit Disk
- Example: Cosine-Weighted Hemisphere Sampling
- Example: Sampling a Triangle
- Example: Piecewise-Constant 2D Distributions
- Further Reading
- Exercises
CHAPTER 14. MONTE CARLO INTEGRATION II: IMPROVING EFFICIENCY
- Russian Roulette and Splitting
- Careful Sample Placement
- Stratified Sampling
- Quasi Monte Carlo
- Warping Samples and Distortion
- Bias
- Importance Sampling
- Multiple Importance Sampling
- Sampling Reflection Functions
- Sampling the Blinn Microfacet Distribution
- Sampling the Anisotropic Microfacet Model
- Sampling FresnelBlend
- Specular Reflection and Transmission
- Application: Estimating Reflectance
- Sampling BSDFs
- Sampling Light Sources
- Basic Interface
- Lights with Singularities
- Area Lights
- ShapeSet Sampling
- Infinite Area Lights
- Volume Scattering †
- Sampling Phase Functions
- Computing Optical Thickness
- Further Reading
- Exercises
CHAPTER 15. LIGHT TRANSPORT I: SURFACE REFLECTION
- Direct Lighting
- Estimating the Direct Lighting Integral
- The Light Transport Equation
- Basic Derivation
- Analytic Solutions to the LTE
- The Surface Form of the LTE
- Integral over Paths
- Delta Distributions in the Integrand
- Partitioning the Integrand
- The Measurement Equation and Importance
- Path Tracing
- Overview
- Path Sampling
- Incremental Path Construction
- Implementation
- Bidirectional Path Tracing †
- Instant Global Illumination
- Creating The Virtual Light Sources
- Rendering With Virtual Light Sources
- Irradiance Caching
- Rendering With The Irradiance Cache
- Lookup and Interpolation
- Adding New Values
- Particle Tracing and Photon Mapping
- Theoretical Basis for Particle Tracing †
- Photon Integrator
- Building the Photon Maps
- Using the Photon Map
- Photon Interpolation and Density Estimation
- Metropolis Light Transport †
- Sample Representation
- Mutations
- Generating Paths
- Path Contributions
- MetropolisRenderer Implementation
- Rendering
- Further Reading
- Exercises
CHAPTER 16. LIGHT TRANSPORT II: VOLUME RENDERING †
- The Equation of Transfer
- Volume Integrator Interface
- Emission-Only Integrator
- Single Scattering Integrator
- Subsurface Scattering
- Poisson Distribution of Sample Points
- Building The Sample Point Octree
- The Dipole Diffusion Approximation
- Rendering With Hierarchical Integration
- Setting Scattering Properties
- Further Reading
- Exercises
CHAPTER 17. LIGHT TRANSPORT III: PRECOMPUTED LIGHT
TRANSPORT †
- Basis Functions: Theory
- A Piecewise-Constant Basis
- Projection Onto A Basis
- Orthonormal Basis Functions
- Spherical Harmonics
- Efficient Evaluation
- Projecting Light Sources
- Projecting Incident Radiance Functions
- Reducing Ringing
- Rotations
- Radiance Probes
- Creating Radiance Probes
- Using Radiance Probes
- Precomputed Diffuse Transfer
- Precomputed Glossy Transfer
- The Transfer Matrix
- The BSDF Matrix
- GlossyPRTIntegrator Implementation
- Further Reading
- Exercises
CHAPTER 18. SUMMARY AND CONCLUSION
- Design Retrospective
- Abstraction versus Efficiency
- Design Alternatives: Triangles Only
- Increased Scene Complexity
- Throughput Processors
- The Future
- Further Resources
- Conclusion
APPENDIXES
Utilities
Scene Description Interface
Index of Fragments
Index of Classes and their Members
Index of Identifiers
REFERENCES
INDEX
COLOPHON
|