| List of Figures | p. xiii |
| Notation | p. xvii |
| Vectors, Matrices and Transforms | p. 1 |
| Vector Spaces | p. 1 |
| Points and Vectors | p. 4 |
| Homogeneous Coordinates | p. 4 |
| Representing Objects by Points | p. 5 |
| Affine Transformations | p. 5 |
| Introduction and Definitions | p. 5 |
| Scaling | p. 6 |
| Translation | p. 7 |
| Rotation | p. 7 |
| Concatenation of Transforms | p. 10 |
| Projection | p. 11 |
| Quaternions | p. 13 |
| C# Implementation | p. 15 |
| Lighting | p. 23 |
| Shading | p. 23 |
| Affine Transforms and Normal Vectors | p. 24 |
| Local Lighting Models | p. 25 |
| The Phong Lighting Model | p. 25 |
| Emissive Properties | p. 26 |
| Ambient Reflection | p. 26 |
| Diffuse Reflection | p. 26 |
| Specular Reflection | p. 27 |
| Multiple Colored Light Sources | p. 28 |
| Attenuation | p. 29 |
| Lights | p. 30 |
| Spot Lights | p. 30 |
| Transparent Objects | p. 31 |
| Cook-Torrance Model | p. 31 |
| Bidirectional Reflectivity | p. 31 |
| Cook-Torrance Model | p. 32 |
| Microfacet Distribution Term | p. 33 |
| Geometric Surface Occlusion Term | p. 33 |
| Fresnel Term | p. 37 |
| Beer-Lambert Law | p. 38 |
| C# Implementation | p. 39 |
| Rasterization | p. 49 |
| Pixels | p. 49 |
| Drawing Lines | p. 49 |
| Bresenham's Algorithm for Lines | p. 50 |
| Drawing Circles | p. 51 |
| Bresenham's Algorithm for Circles | p. 51 |
| Filling | p. 53 |
| Gouraud Shading | p. 54 |
| Rasterization in C# | p. 55 |
| Drawing Pixels | p. 57 |
| Bresenham's Algorithms in C# | p. 57 |
| Fractals | p. 59 |
| Mandelbrot Set | p. 60 |
| Julia Set | p. 62 |
| Iterated Function Systems | p. 64 |
| L-Systems and Fractals | p. 65 |
| Kronecker Product and Fractals | p. 69 |
| Definitions | p. 69 |
| Kronecker Product Fractals | p. 71 |
| Curves | p. 75 |
| Introduction | p. 75 |
| Affine Invariance | p. 76 |
| Convex Hull | p. 77 |
| Lagrange Interpolation | p. 78 |
| C# Implementation | p. 79 |
| Bezier Curves | p. 83 |
| Affine Invariance | p. 83 |
| Convex Hull | p. 84 |
| Derivative at Edges | p. 84 |
| Piecewise Continuous Bezier Curves | p. 86 |
| Rendering | p. 87 |
| Rational Bezier Curves | p. 91 |
| Bezier Curves: Conic Sections | p. 91 |
| C# Implementation | p. 91 |
| Catmull-Rom Splines | p. 92 |
| Bessel-Overhauser Splines | p. 93 |
| Tension-Continuity-Bias Splines | p. 93 |
| Uniform B-Splines | p. 94 |
| Affine Invariance | p. 98 |
| Convex Hull | p. 98 |
| Cox-de Boor Formula | p. 98 |
| C# Implementation | p. 99 |
| Non-Uniform B-Splines | p. 99 |
| Interpolating with B-Splines | p. 100 |
| Periodic Interpolation | p. 102 |
| Non-Uniform Rational B-Splines | p. 104 |
| Trigonometric Interpolation | p. 104 |
| METAPOST and Bezier Curves | p. 108 |
| METAPOST Example | p. 110 |
| Curvature and Torsion | p. 112 |
| Harmonic Interpolation | p. 117 |
| Interpolation | p. 118 |
| Odd Case | p. 120 |
| Even Case | p. 122 |
| Examples | p. 125 |
| Curvature Plots | p. 132 |
| Numerical Stability | p. 136 |
| Affine Invariance | p. 138 |
| Convex Hull Property | p. 141 |
| C# Implementation of Harmonic Interpolation | p. 141 |
| Chebyshev Polynomials | p. 142 |
| Odd Case | p. 143 |
| Even Case | p. 144 |
| Non-Uniform Harmonic Interpolation | p. 144 |
| Wavelets | p. 153 |
| Introduction | p. 153 |
| One-Dimensional Wavelets | p. 154 |
| Two-Dimensional Wavelets | p. 158 |
| Curves | p. 162 |
| C# Implementation | p. 164 |
| Surfaces | p. 167 |
| Parametric Surfaces | p. 167 |
| Tensor Product Surfaces | p. 168 |
| Bezier Surfaces | p. 169 |
| Tensor Product Bezier Surfaces | p. 170 |
| Triangular Bezier Surfaces | p. 171 |
| Rational Bezier Surfaces | p. 173 |
| Bezier Surface Interpolation | p. 173 |
| B-Spline Tensor Product Surfaces | p. 173 |
| B-Spline Surface Interpolation | p. 174 |
| Subdivision Surfaces | p. 177 |
| Loop Subdivision | p. 180 |
| Modified Butterfly Subdivision | p. 183 |
| [radical]3 Subdivision | p. 185 |
| Interpolating [radical]3 Subdivision | p. 187 |
| Catmull-Clark Subdivision | p. 191 |
| Doo-Sabin Subdivision | p. 192 |
| Comparison | p. 195 |
| Interpolation with Subdivision Surfaces | p. 198 |
| Curvature of Surfaces | p. 200 |
| Harmonic Surfaces | p. 206 |
| Tensor Product Surface | p. 206 |
| Harmonic Subdivision | p. 207 |
| Local Harmonic Subdivision | p. 208 |
| Local Harmonic Interpolation for Curves | p. 209 |
| Parametric Distance | p. 210 |
| Subdivision Rules | p. 212 |
| Irregular Vertices | p. 214 |
| Boundaries | p. 217 |
| Geometry Images and Parameterization | p. 219 |
| Cutting a Mesh into a Disk | p. 219 |
| Parameterization | p. 222 |
| Rasterization of the Geometry Image | p. 228 |
| Interpolation of Geometry Images | p. 229 |
| Geometry Images - Approximation | p. 237 |
| Rendering | p. 238 |
| Approximating Basis Functions | p. 240 |
| Combined Results | p. 243 |
| Curvature | p. 245 |
| C# Implementation | p. 257 |
| Raytracing | p. 333 |
| Raytracing Process | p. 333 |
| Representation of a Ray | p. 338 |
| Reflection | p. 338 |
| Refraction | p. 339 |
| Intersections | p. 341 |
| Sphere | p. 342 |
| Infinite Plane | p. 342 |
| Triangles | p. 343 |
| Effect of Transforms | p. 344 |
| C# Implementation of a Raytracer | p. 344 |
| Implicit Surfaces | p. 368 |
| Sphere Tracing | p. 369 |
| Distance Functions | p. 371 |
| C# Implementation | p. 374 |
| CSG Objects | p. 376 |
| C# Implementation | p. 377 |
| Parametric Surfaces | p. 379 |
| Interval Arithmetic | p. 380 |
| Interval Root Finding - Bisection | p. 381 |
| Interval Root Finding - Newton-Raphson | p. 382 |
| Ray Tracing Harmonic Surfaces | p. 385 |
| Lighting Models | p. 386 |
| Supersampling | p. 386 |
| Regular Supersampling | p. 387 |
| Stochastic Supersampling | p. 387 |
| Adaptive Supersampling | p. 388 |
| Ambient Occlusion | p. 389 |
| Ray Marching | p. 392 |
| Photon Mapping | p. 393 |
| Transport Notation | p. 394 |
| Path Tracing | p. 394 |
| Creating the Photon Map | p. 395 |
| Photon Tracing | p. 396 |
| Photon Map Data Structure | p. 397 |
| Radiance Estimate | p. 399 |
| C# Implementation | p. 401 |
| Radiosity | p. 409 |
| Light Transport Notation | p. 409 |
| Radiosity Matrix | p. 410 |
| Solving for Radiosity Values | p. 411 |
| Solving: Jacobi Method | p. 411 |
| Solving: Gauss-Seidel Iteration | p. 411 |
| Solving: Shooting Method | p. 412 |
| Form Factors | p. 412 |
| Numerical Solution | p. 413 |
| Raytracing Method | p. 413 |
| Hemicube Method | p. 413 |
| Rendering | p. 415 |
| C# Implementation | p. 415 |
| Animation | p. 427 |
| Traditional Animation Techniques | p. 427 |
| Keyframing | p. 427 |
| Motion Capture | p. 428 |
| Physics Models | p. 428 |
| Animation of Position | p. 429 |
| Arc length parameterization | p. 430 |
| Orientation | p. 430 |
| Articulated Structures (Kinematics) | p. 431 |
| Forward Kinematics | p. 432 |
| Vertex Blending | p. 433 |
| Inverse Kinematics | p. 433 |
| Mass Spring Systems | p. 434 |
| Particle Systems | p. 435 |
| Free Form Deformations | p. 435 |
| Fluids | p. 436 |
| Navier-Stokes Equations | p. 438 |
| Advection | p. 439 |
| Diffusion | p. 440 |
| Projection | p. 440 |
| Boundary Conditions | p. 441 |
| C# Implementation | p. 441 |
| Free Surface | p. 449 |
| C# Implementation of Free Surfaces | p. 450 |
| Bibliography | p. 459 |
| Index | p. 471 |
| Table of Contents provided by Ingram. All Rights Reserved. |