Preface |
|
xiii | |
1 Introduction |
|
1 | (10) |
|
|
3 | (2) |
|
1.2 Notation and Definitions |
|
|
5 | (6) |
2 The Graphics Rendering Pipeline |
|
11 | (18) |
|
|
12 | (1) |
|
2.2 The Application Stage |
|
|
13 | (1) |
|
|
14 | (7) |
|
|
21 | (1) |
|
|
22 | (3) |
|
|
25 | (4) |
3 The Graphics Processing Unit |
|
29 | (28) |
|
3.1 Data-Parallel Architectures |
|
|
30 | (4) |
|
3.2 GPU Pipeline Overview |
|
|
34 | (1) |
|
3.3 The Programmable Shader Stage |
|
|
35 | (2) |
|
3.4 The Evolution of Programmable Shading and APIs |
|
|
37 | (5) |
|
|
42 | (2) |
|
3.6 The Tessellation Stage |
|
|
44 | (3) |
|
|
47 | (2) |
|
|
49 | (4) |
|
|
53 | (1) |
|
|
54 | (3) |
4 Transforms |
|
57 | (46) |
|
|
58 | (12) |
|
4.2 Special Matrix Transforms and Operations |
|
|
70 | (6) |
|
|
76 | (8) |
|
|
84 | (3) |
|
|
87 | (5) |
|
4.6 Geometry Cache Playback |
|
|
92 | (1) |
|
|
92 | (11) |
5 Shading Basics |
|
103 | (64) |
|
|
103 | (3) |
|
|
106 | (11) |
|
5.3 Implementing Shading Models |
|
|
117 | (13) |
|
5.4 Aliasing and Antialiasing |
|
|
130 | (18) |
|
5.5 Transparency, Alpha, and Compositing |
|
|
148 | (12) |
|
|
160 | (7) |
6 Texturing |
|
167 | (56) |
|
6.1 The Texturing Pipeline |
|
|
169 | (7) |
|
|
176 | (22) |
|
|
198 | (2) |
|
|
200 | (1) |
|
|
201 | (1) |
|
|
202 | (6) |
|
|
208 | (6) |
|
|
214 | (7) |
|
|
221 | (2) |
7 Shadows |
|
223 | (44) |
|
|
225 | (4) |
|
7.2 Shadows on Curved Surfaces |
|
|
229 | (1) |
|
|
230 | (4) |
|
|
234 | (13) |
|
7.5 Percentage-Closer Filtering |
|
|
247 | (3) |
|
7.6 Percentage-Closer Soft Shadows |
|
|
250 | (2) |
|
|
252 | (5) |
|
7.8 Volumetric Shadow Techniques |
|
|
257 | (2) |
|
7.9 Irregular Z-Buffer Shadows |
|
|
259 | (3) |
|
|
262 | (5) |
8 Light and Color |
|
267 | (26) |
|
|
267 | (14) |
|
|
281 | (12) |
9 Physically Based Shading |
|
293 | (82) |
|
|
293 | (14) |
|
|
307 | (1) |
|
|
308 | (7) |
|
|
315 | (1) |
|
|
316 | (11) |
|
|
327 | (4) |
|
|
331 | (5) |
|
9.8 BRDF Models for Surface Reflection |
|
|
336 | (11) |
|
9.9 BRDF Models for Subsurface Scattering |
|
|
347 | (9) |
|
9.10 BRDF Models for Cloth |
|
|
356 | (3) |
|
9.11 Wave Optics BRDF Models |
|
|
359 | (4) |
|
|
363 | (2) |
|
9.13 Blending and Filtering Materials |
|
|
365 | (10) |
10 Local Illumination |
|
375 | (62) |
|
|
377 | (14) |
|
10.2 Environment Lighting |
|
|
391 | (1) |
|
10.3 Spherical and Hemispherical Functions |
|
|
392 | (12) |
|
|
404 | (10) |
|
10.5 Specular Image-Based Lighting |
|
|
414 | (10) |
|
10.6 Irradiance Environment Mapping |
|
|
424 | (9) |
|
|
433 | (4) |
11 Global Illumination |
|
437 | (76) |
|
11.1 The Rendering Equation |
|
|
437 | (4) |
|
11.2 General Global Illumination |
|
|
441 | (5) |
|
|
446 | (19) |
|
11.4 Directional Occlusion |
|
|
465 | (7) |
|
11.5 Diffuse Global Illumination |
|
|
472 | (25) |
|
11.6 Specular Global Illumination |
|
|
497 | (12) |
|
|
509 | (4) |
12 Image-Space Effects |
|
513 | (32) |
|
|
513 | (9) |
|
12.2 Reprojection Techniques |
|
|
522 | (2) |
|
12.3 Lens Flare and Bloom |
|
|
524 | (3) |
|
|
527 | (9) |
|
|
536 | (9) |
13 Beyond Polygons |
|
545 | (44) |
|
13.1 The Rendering Spectrum |
|
|
545 | (1) |
|
|
546 | (1) |
|
|
547 | (2) |
|
13.4 Light Field Rendering |
|
|
549 | (1) |
|
|
550 | (1) |
|
|
551 | (13) |
|
13.7 Displacement Techniques |
|
|
564 | (3) |
|
|
567 | (5) |
|
|
572 | (6) |
|
|
578 | (11) |
14 Volumetric and Translucency Rendering |
|
589 | (62) |
|
14.1 Light Scattering Theory |
|
|
589 | (11) |
|
14.2 Specialized Volumetric Rendering |
|
|
600 | (5) |
|
14.3 General Volumetric Rendering |
|
|
605 | (8) |
|
|
613 | (10) |
|
14.5 Translucent Surfaces |
|
|
623 | (9) |
|
14.6 Subsurface Scattering |
|
|
632 | (8) |
|
|
640 | (8) |
|
|
648 | (3) |
15 Non-Photorealistic Rendering |
|
651 | (30) |
|
|
652 | (2) |
|
|
654 | (15) |
|
15.3 Stroke Surface Stylization |
|
|
669 | (4) |
|
|
673 | (2) |
|
|
675 | (6) |
16 Polygonal Techniques |
|
681 | (36) |
|
16.1 Sources of Three-Dimensional Data |
|
|
682 | (1) |
|
16.2 Tessellation and Triangulation |
|
|
683 | (7) |
|
|
690 | (6) |
|
16.4 Triangle Fans, Strips, and Meshes |
|
|
696 | (10) |
|
|
706 | (6) |
|
16.6 Compression and Precision |
|
|
712 | (5) |
17 Curves and Curved Surfaces |
|
717 | (66) |
|
|
718 | (16) |
|
17.2 Parametric Curved Surfaces |
|
|
734 | (15) |
|
|
749 | (4) |
|
|
753 | (3) |
|
17.5 Subdivision Surfaces |
|
|
756 | (11) |
|
17.6 Efficient Tessellation |
|
|
767 | (16) |
18 Pipeline Optimization |
|
783 | (34) |
|
18.1 Profiling and Debugging Tools |
|
|
784 | (2) |
|
18.2 Locating the Bottleneck |
|
|
786 | (2) |
|
18.3 Performance Measurements |
|
|
788 | (2) |
|
|
790 | (15) |
|
|
805 | (12) |
19 Acceleration Algorithms |
|
817 | (64) |
|
19.1 Spatial Data Structures |
|
|
818 | (12) |
|
|
830 | (1) |
|
|
831 | (4) |
|
19.4 View Frustum Culling |
|
|
835 | (2) |
|
|
837 | (2) |
|
19.6 Detail and Small Triangle Culling |
|
|
839 | (1) |
|
|
840 | (10) |
|
|
850 | (2) |
|
|
852 | (14) |
|
19.10 Rendering Large Scenes |
|
|
866 | (15) |
20 Efficient Shading |
|
881 | (34) |
|
|
883 | (5) |
|
|
888 | (4) |
|
|
892 | (6) |
|
|
898 | (7) |
|
|
905 | (3) |
|
20.6 Object- and Texture-Space Shading |
|
|
908 | (7) |
21 Virtual and Augmented Reality |
|
915 | (26) |
|
21.1 Equipment and Systems Overview |
|
|
916 | (3) |
|
|
919 | (5) |
|
|
924 | (8) |
|
21.4 Rendering Techniques |
|
|
932 | (9) |
22 Intersection Test Methods |
|
941 | (52) |
|
22.1 GPU-Accelerated Picking |
|
|
942 | (1) |
|
22.2 Definitions and Tools |
|
|
943 | (5) |
|
22.3 Bounding Volume Creation |
|
|
948 | (5) |
|
22.4 Geometric Probability |
|
|
953 | (1) |
|
|
954 | (1) |
|
22.6 Ray/Sphere Intersection |
|
|
955 | (4) |
|
22.7 Ray/Box Intersection |
|
|
959 | (3) |
|
22.8 Ray/Triangle Intersection |
|
|
962 | (4) |
|
22.9 Ray/Polygon Intersection |
|
|
966 | (4) |
|
22.10 Plane/Box Intersection |
|
|
970 | (2) |
|
22.11 Triangle/Triangle Intersection |
|
|
972 | (2) |
|
22.12 Triangle/Box Intersection |
|
|
974 | (2) |
|
22.13 Bounding-Volume/Bounding-Volume Intersection |
|
|
976 | (5) |
|
22.14 View Frustum Intersection |
|
|
981 | (6) |
|
22.15 Line/Line Intersection |
|
|
987 | (3) |
|
22.16 Intersection between Three Planes |
|
|
990 | (3) |
23 Graphics Hardware |
|
993 | (48) |
|
|
993 | (9) |
|
23.2 Massive Compute and Scheduling |
|
|
1002 | (2) |
|
23.3 Latency and Occupancy |
|
|
1004 | (2) |
|
23.4 Memory Architecture and Buses |
|
|
1006 | (1) |
|
23.5 Caching and Compression |
|
|
1007 | (2) |
|
|
1009 | (5) |
|
23.7 Depth Culling, Testing, and Buffering |
|
|
1014 | (3) |
|
|
1017 | (2) |
|
|
1019 | (5) |
|
|
1024 | (15) |
|
23.11 Ray Tracing Architectures |
|
|
1039 | (2) |
24 The Future |
|
1041 | (10) |
|
|
1042 | (4) |
|
|
1046 | (5) |
Bibliography |
|
1051 | (104) |
Index |
|
1155 | |