Preface |
|
xi | |
Acknowledgments |
|
xiii | |
Authors |
|
xv | |
|
|
1 | (12) |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (2) |
|
|
7 | (1) |
|
1.7 Designing and Coding Graphics Programs |
|
|
8 | (5) |
|
|
13 | (1) |
|
|
13 | (4) |
|
2.2 Solving Quadratic Equations |
|
|
17 | (1) |
|
|
18 | (3) |
|
|
21 | (10) |
|
|
31 | (2) |
|
|
33 | (1) |
|
|
34 | (15) |
|
|
49 | (1) |
|
|
49 | (5) |
|
2.10 Discrete probability |
|
|
54 | (2) |
|
2.11 Continuous probability |
|
|
56 | (1) |
|
2.12 Monte Carlo Integration |
|
|
57 | (6) |
|
|
63 | (16) |
|
|
64 | (5) |
|
3.2 Images, Pixels, and Geometry |
|
|
69 | (5) |
|
|
74 | (1) |
|
|
75 | (4) |
|
|
79 | (18) |
|
4.1 The Basic Ray-Tracing Algorithm |
|
|
80 | (1) |
|
|
81 | (1) |
|
4.3 Computing Viewing Rays |
|
|
82 | (4) |
|
4.4 Ray-Object Intersection |
|
|
86 | (5) |
|
|
91 | (4) |
|
|
95 | (2) |
|
|
97 | (10) |
|
5.1 Point-like light sources |
|
|
98 | (2) |
|
5.2 Basic reflection models |
|
|
100 | (4) |
|
|
104 | (3) |
|
|
107 | (20) |
|
|
107 | (2) |
|
|
109 | (5) |
|
6.3 Computing with Matrices and Determinants |
|
|
114 | (5) |
|
6.4 Eigenvalues and Matrix Diagonalization |
|
|
119 | (8) |
|
7 Transformation Matrices |
|
|
127 | (30) |
|
7.1 2D Linear Transformations |
|
|
127 | (14) |
|
7.2 3D Linear Transformations |
|
|
141 | (5) |
|
7.3 Translation and Affine Transformations |
|
|
146 | (4) |
|
7.4 Inverses of Transformation Matrices |
|
|
150 | (1) |
|
7.5 Coordinate Transformations |
|
|
151 | (6) |
|
|
157 | (20) |
|
8.1 Viewing Transformations |
|
|
158 | (6) |
|
8.2 Projective Transformations |
|
|
164 | (3) |
|
8.3 Perspective Projection |
|
|
167 | (4) |
|
8.4 Some Properties of the Perspective Transform |
|
|
171 | (1) |
|
|
172 | (5) |
|
|
177 | (28) |
|
|
178 | (14) |
|
9.2 Operations Before and After Rasterization |
|
|
192 | (7) |
|
|
199 | (1) |
|
9.4 Culling Primitives for Efficiency |
|
|
200 | (5) |
|
|
205 | (50) |
|
10.1 Digital Audio: Sampling in 1D |
|
|
206 | (3) |
|
|
209 | (14) |
|
|
223 | (7) |
|
10.4 Signal Processing for Images |
|
|
230 | (9) |
|
|
239 | (16) |
|
|
255 | (36) |
|
11.1 Looking Up Texture Values |
|
|
256 | (2) |
|
11.2 Texture Coordinate Functions |
|
|
258 | (11) |
|
11.3 Antialiasing Texture Lookups |
|
|
269 | (8) |
|
11.4 Applications of Texture Mapping |
|
|
277 | (6) |
|
11.5 Procedural 3D Textures |
|
|
283 | (8) |
|
12 Data Structures for Graphics |
|
|
291 | (44) |
|
|
292 | (13) |
|
|
305 | (4) |
|
12.3 Spatial Data Structures |
|
|
309 | (11) |
|
12.4 BSP Trees for Visibility |
|
|
320 | (9) |
|
12.5 Tiling Multidimensional Arrays |
|
|
329 | (6) |
|
|
335 | (22) |
|
|
335 | (5) |
|
13.2 Continuous Probability |
|
|
340 | (4) |
|
13.3 Monte Carlo Integration |
|
|
344 | (3) |
|
13.4 Choosing Random Points |
|
|
347 | (10) |
|
14 Physics-Based Rendering |
|
|
357 | (26) |
|
|
357 | (1) |
|
|
358 | (1) |
|
|
359 | (3) |
|
14.4 Dielectrics with Subsurface Scattering |
|
|
362 | (1) |
|
14.5 A Brute Force Photon Tracer |
|
|
363 | (3) |
|
|
366 | (5) |
|
14.7 Radiometry of Scattering |
|
|
371 | (3) |
|
|
374 | (2) |
|
14.9 Materials in Practice |
|
|
376 | (1) |
|
14.10 Monte Carlo Ray Tracing |
|
|
377 | (6) |
|
|
383 | (46) |
|
|
|
383 | (6) |
|
|
389 | (3) |
|
|
392 | (7) |
|
15.4 Putting Pieces Together |
|
|
399 | (3) |
|
|
402 | (7) |
|
15.6 Approximating Curves |
|
|
409 | (17) |
|
|
426 | (3) |
|
|
429 | (32) |
|
|
16.1 Principles of Animation |
|
|
430 | (4) |
|
|
434 | (8) |
|
|
442 | (1) |
|
|
443 | (7) |
|
16.5 Physics-Based Animation |
|
|
450 | (2) |
|
16.6 Procedural Techniques |
|
|
452 | (3) |
|
|
455 | (6) |
|
17 Using Graphics Hardware |
|
|
461 | (42) |
|
|
|
461 | (1) |
|
17.2 What Is Graphics Hardware |
|
|
461 | (2) |
|
17.3 Heterogeneous Multiprocessing |
|
|
463 | (2) |
|
17.4 Graphics Hardware Programming: Buffers, State, and Shaders |
|
|
465 | (2) |
|
|
467 | (1) |
|
17.6 Basic OpenGL Application Layout |
|
|
468 | (1) |
|
|
469 | (2) |
|
17.8 A First Look at Shaders |
|
|
471 | (3) |
|
17.9 Vertex Buffer Objects |
|
|
474 | (2) |
|
17.10 Vertex Array Objects |
|
|
476 | (3) |
|
17.11 Transformation Matrices |
|
|
479 | (2) |
|
17.12 Shading with Per-Vertex Attributes |
|
|
481 | (4) |
|
17.13 Shading in the Fragment Processor |
|
|
485 | (6) |
|
17.14 Meshes and Instancing |
|
|
491 | (2) |
|
|
493 | (6) |
|
17.16 Object-Oriented Design for Graphics Hardware Programming |
|
|
499 | (1) |
|
|
500 | (3) |
|
|
503 | (22) |
|
|
|
|
505 | (9) |
|
|
514 | (6) |
|
18.3 Chromatic Adaptation |
|
|
520 | (4) |
|
|
524 | (1) |
|
|
525 | (44) |
|
|
|
526 | (1) |
|
|
527 | (17) |
|
|
544 | (13) |
|
19.4 Objects, Locations, and Events |
|
|
557 | (9) |
|
|
566 | (3) |
|
|
569 | (26) |
|
|
|
572 | (1) |
|
|
573 | (2) |
|
|
575 | (2) |
|
|
577 | (1) |
|
20.5 Frequency-Based Operators |
|
|
577 | (2) |
|
20.6 Gradient-Domain Operators |
|
|
579 | (1) |
|
|
580 | (2) |
|
|
582 | (1) |
|
|
583 | (5) |
|
|
588 | (3) |
|
|
591 | (1) |
|
|
592 | (3) |
|
|
595 | (28) |
|
|
21.1 Implicit Functions, Skeletal Primitives, and Summation Blending |
|
|
596 | (8) |
|
|
604 | (1) |
|
|
605 | (6) |
|
|
611 | (1) |
|
21.5 Constructive Solid Geometry |
|
|
612 | (2) |
|
|
614 | (2) |
|
21.7 Precise Contact Modeling |
|
|
616 | (2) |
|
|
618 | (2) |
|
21.9 Interactive Implicit Modeling Systems |
|
|
620 | (3) |
|
22 Computer Graphics in Games |
|
|
623 | (22) |
|
|
|
623 | (3) |
|
|
626 | (3) |
|
22.3 Optimization Techniques |
|
|
629 | (1) |
|
|
630 | (3) |
|
22.5 The Game Production Process |
|
|
633 | (12) |
|
|
645 | (36) |
|
|
|
647 | (1) |
|
|
648 | (2) |
|
23.3 Human-Centered Design Process |
|
|
650 | (2) |
|
23.4 Visual Encoding Principles |
|
|
652 | (8) |
|
23.5 Interaction Principles |
|
|
660 | (1) |
|
23.6 Composite and Adjacent Views |
|
|
661 | (6) |
|
|
667 | (5) |
|
|
672 | (9) |
References |
|
681 | (8) |
Index |
|
689 | |