Introduction |
|
xv | |
Web Materials |
|
xxi | |
1 Quadtree Displacement Mapping with Height Blending |
|
1 | (32) |
|
|
|
1 | (2) |
|
|
3 | (1) |
|
1.3 Overview of Ray-Tracing Algorithms |
|
|
4 | (5) |
|
1.4 Quadtree Displacement Mapping |
|
|
9 | (9) |
|
|
18 | (4) |
|
|
22 | (1) |
|
|
23 | (7) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
32 | (1) |
2 NPR Effects Using the Geometry Shader |
|
33 | (18) |
|
|
|
|
33 | (1) |
|
|
33 | (2) |
|
|
35 | (8) |
|
|
43 | (5) |
|
|
48 | (1) |
|
|
48 | (3) |
3 Alpha Blending as a Post-Process |
|
51 | (18) |
|
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
3.5 The Screen-Space Alpha Mask |
|
|
54 | (9) |
|
3.6 Alpha Reference Issues |
|
|
63 | (2) |
|
3.7 Rendering Pipeline Integration |
|
|
65 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
67 | (1) |
|
|
67 | (2) |
4 Virtual Texture Mapping 101 |
|
69 | (12) |
|
|
|
|
|
|
69 | (1) |
|
4.2 Virtual Texture Mapping |
|
|
69 | (4) |
|
4.3 Implementation Details |
|
|
73 | (4) |
|
|
77 | (1) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (3) |
5 Pre-Integrated Skin Shading |
|
81 | (16) |
|
|
|
|
81 | (1) |
|
5.2 Background and Previous Work |
|
|
82 | (1) |
|
5.3 Pre-Integrating the Effects of Scattering |
|
|
82 | (2) |
|
5.4 Scattering and Diffuse Light |
|
|
84 | (3) |
|
5.5 Scattering and Normal Maps |
|
|
87 | (1) |
|
|
88 | (3) |
|
5.7 Conclusion and Future Work |
|
|
91 | (1) |
|
5.8 Appendix A: Lookup Textures |
|
|
92 | (1) |
|
5.9 Appendix B: Simplified Skin Shader |
|
|
93 | (1) |
|
|
94 | (3) |
6 Implementing Fur Using Deferred Shading |
|
97 | (20) |
|
|
|
97 | (2) |
|
|
99 | (2) |
|
|
101 | (7) |
|
6.4 Fur Implementation Details |
|
|
108 | (6) |
|
|
114 | (1) |
|
|
114 | (1) |
|
|
114 | (3) |
7 Large-Scale Terrain Rendering for Outdoor Games |
|
117 | (18) |
|
|
|
117 | (2) |
|
7.2 Content Creation and Editing |
|
|
119 | (5) |
|
|
124 | (6) |
|
|
130 | (1) |
|
|
131 | (2) |
|
|
133 | (1) |
|
|
133 | (2) |
8 Practical Morphological Antialiasing |
|
135 | (20) |
|
|
|
|
|
|
|
137 | (1) |
|
|
138 | (2) |
|
8.3 Obtaining Blending Weights |
|
|
140 | (5) |
|
8.4 Blending with the Four-Neighborhood |
|
|
145 | (1) |
|
|
146 | (4) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
152 | (3) |
9 Volume Decals |
|
155 | (6) |
|
|
|
155 | (1) |
|
|
155 | (5) |
|
|
160 | (1) |
|
|
160 | (1) |
10 Practical Elliptical Texture Filtering on the GPU |
|
161 | (14) |
|
|
|
|
161 | (1) |
|
10.2 Elliptical Filtering |
|
|
162 | (5) |
|
10.3 Elliptical Footprint Approximation |
|
|
167 | (4) |
|
|
171 | (2) |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
173 | (2) |
11 An Approximation to the Chapman Grazing-Incidence Function for Atmospheric Scattering |
|
175 | (14) |
|
|
|
175 | (1) |
|
11.2 Atmospheric Scattering |
|
|
175 | (2) |
|
11.3 The Chapman Function |
|
|
177 | (2) |
|
11.4 Towards a Real-Time Approximation |
|
|
179 | (2) |
|
|
181 | (3) |
|
11.6 Putting the Chapman Function to Use |
|
|
184 | (1) |
|
|
185 | (2) |
|
|
187 | (1) |
|
|
187 | (2) |
12 Volumetric Real-Time Water and Foam Rendering |
|
189 | (14) |
|
|
|
|
|
189 | (1) |
|
|
190 | (2) |
|
|
192 | (7) |
|
|
199 | (2) |
|
|
201 | (1) |
|
|
201 | (2) |
13 Inexpensive Antialiasing of Simple Objects |
|
203 | (10) |
|
|
|
|
203 | (1) |
|
13.2 Antialiasing via Smoothed Lines |
|
|
203 | (2) |
|
|
205 | (4) |
|
|
209 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
|
211 | (2) |
14 Practical Planar Reflections Using Cubemaps and Image Proxies |
|
213 | (18) |
|
|
|
|
213 | (1) |
|
14.2 Generating Reflection Textures |
|
|
214 | (11) |
|
14.3 Using Reflection Textures |
|
|
225 | (3) |
|
14.4 Conclusion and Future Work |
|
|
228 | (1) |
|
|
229 | (1) |
|
|
229 | (2) |
15 Real-Time Ptex and Vector Displacement |
|
231 | (12) |
|
|
|
231 | (1) |
|
|
232 | (2) |
|
15.3 Runtime Implementation |
|
|
234 | (3) |
|
|
237 | (1) |
|
|
238 | (2) |
|
|
240 | (1) |
|
15.7 Alternatives and Future Work |
|
|
241 | (1) |
|
|
241 | (1) |
|
|
242 | (1) |
|
|
242 | (1) |
16 Decoupled Deferred Shading on the GPU |
|
243 | (18) |
|
|
|
|
243 | (1) |
|
16.2 Decoupled Sampling in a Rasterization Pipeline |
|
|
244 | (2) |
|
16.3 Shading Reuse for Deferred Shading |
|
|
246 | (3) |
|
|
249 | (6) |
|
|
255 | (4) |
|
|
259 | (1) |
|
|
259 | (2) |
17 Tiled Forward Shading |
|
261 | (16) |
|
|
|
|
|
261 | (2) |
|
17.2 Recap: Forward, Deferred, and Tiled Shading |
|
|
263 | (3) |
|
17.3 Tiled Forward Shading: Why? |
|
|
266 | (1) |
|
17.4 Basic Tiled Forward Shading |
|
|
266 | (2) |
|
17.5 Supporting Transparency |
|
|
268 | (3) |
|
|
271 | (2) |
|
17.7 Supporting Different Shaders |
|
|
273 | (1) |
|
17.8 Conclusion and Further Improvements |
|
|
273 | (2) |
|
|
275 | (2) |
18 Forward+: A Step Toward Film-Style Shading in Real Time |
|
277 | (22) |
|
|
|
|
|
277 | (1) |
|
|
278 | (1) |
|
18.3 Implementation and Optimization |
|
|
279 | (6) |
|
|
285 | (1) |
|
18.5 Forward+ in the AMD Leo Demo |
|
|
286 | (3) |
|
|
289 | (6) |
|
|
295 | (1) |
|
|
296 | (1) |
|
|
296 | (3) |
19 Progressive Screen-Space Multichannel Surface Voxelization |
|
299 | (18) |
|
|
|
|
299 | (1) |
|
19.2 Overview of Voxelization Method |
|
|
300 | (5) |
|
19.3 Progressive Voxelization for Lighting |
|
|
305 | (2) |
|
|
307 | (1) |
|
19.5 Performance and Evaluation |
|
|
307 | (7) |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
315 | (1) |
|
|
315 | (2) |
20 Rasterized Voxel-Based Dynamic Global Illumination |
|
317 | (18) |
|
|
|
317 | (1) |
|
|
317 | (1) |
|
|
318 | (12) |
|
20.4 Handling Large Environments |
|
|
330 | (1) |
|
|
330 | (1) |
|
|
331 | (2) |
|
|
333 | (2) |
21 Per-Pixel Lists for Single Pass A-Buffer |
|
335 | (22) |
|
|
|
|
|
335 | (3) |
|
21.2 Linked Lists with Pointers (LIN-ALLOC) |
|
|
338 | (5) |
|
21.3 Lists with Open Addressing (OPEN-ALLoc) |
|
|
343 | (3) |
|
21.4 POST-SORT and PRE-SORT |
|
|
346 | (2) |
|
|
348 | (1) |
|
|
349 | (1) |
|
21.7 Experimental Comparisons |
|
|
350 | (3) |
|
|
353 | (1) |
|
|
354 | (1) |
|
|
354 | (3) |
22 Reducing Texture Memory Usage by 2-Channel Color Encoding |
|
357 | (10) |
|
|
|
357 | (1) |
|
22.2 Texture Encoding Algorithm |
|
|
357 | (6) |
|
|
363 | (1) |
|
22.4 Encoded Image Quality |
|
|
363 | (2) |
|
|
365 | (1) |
|
|
366 | (1) |
23 Particle-Based Simulation of Material Aging |
|
367 | (20) |
|
|
|
|
|
367 | (1) |
|
|
368 | (1) |
|
|
369 | (12) |
|
|
381 | (2) |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
385 | (2) |
24 Simple Rasterization-Based Liquids |
|
387 | (10) |
|
|
|
387 | (1) |
|
|
387 | (1) |
|
|
388 | (1) |
|
|
389 | (2) |
|
|
391 | (1) |
|
|
392 | (1) |
|
|
392 | (1) |
|
|
393 | (2) |
|
|
395 | (1) |
|
|
395 | (2) |
25 Next-Generation Rendering in Thief |
|
397 | (26) |
|
|
|
|
|
|
397 | (1) |
|
|
398 | (13) |
|
25.3 Contact-Hardening Shadows |
|
|
411 | (6) |
|
|
417 | (1) |
|
25.5 Compute-Shader-Based Postprocessing |
|
|
417 | (3) |
|
|
420 | (1) |
|
|
420 | (1) |
|
|
421 | (2) |
26 Grass Rendering and Simulation with LOD |
|
423 | (10) |
|
|
|
|
423 | (1) |
|
|
424 | (2) |
|
|
426 | (6) |
|
|
432 | (1) |
|
|
432 | (1) |
27 Hybrid Reconstruction Antialiasing |
|
433 | (40) |
|
|
|
433 | (1) |
|
|
433 | (1) |
|
|
434 | (2) |
|
27.4 Hybrid Antialiasing Overview |
|
|
436 | (1) |
|
27.5 Temporally Stable Edge Antialiasing |
|
|
437 | (13) |
|
27.6 Temporal Super-Sampling |
|
|
450 | (11) |
|
27.7 Temporal Antialiasing (TAA) |
|
|
461 | (3) |
|
27.8 Final Implementation |
|
|
464 | (1) |
|
|
465 | (2) |
|
|
467 | (2) |
|
|
469 | (4) |
28 Real-Time Rendering of Physically Based Clouds Using Precomputed Scattering |
|
473 | (26) |
|
|
|
473 | (1) |
|
28.2 Light Transport Theory |
|
|
474 | (2) |
|
28.3 Precomputed Solutions |
|
|
476 | (2) |
|
28.4 Volume-Aware Blending |
|
|
478 | (1) |
|
|
479 | (14) |
|
28.6 Results and Discussion |
|
|
493 | (3) |
|
|
496 | (1) |
|
|
496 | (3) |
29 Sparse Procedural Volume Rendering |
|
499 | (14) |
|
|
|
499 | (1) |
|
29.2 Overview of Current Techniques |
|
|
499 | (1) |
|
|
500 | (2) |
|
|
502 | (2) |
|
|
504 | (8) |
|
|
512 | (1) |
|
|
512 | (1) |
30 Adaptive Virtual Textures |
|
513 | (14) |
|
|
|
513 | (1) |
|
30.2 Procedural Virtual Textures Basics |
|
|
513 | (1) |
|
30.3 Adaptive Virtual Textures |
|
|
513 | (6) |
|
30.4 Virtual Texture Best Practices |
|
|
519 | (6) |
|
|
525 | (1) |
|
|
526 | (1) |
31 Deferred Coarse Pixel Shading |
|
527 | (10) |
|
|
|
|
527 | (1) |
|
31.2 Introduction and Background |
|
|
527 | (1) |
|
|
528 | (5) |
|
|
533 | (1) |
|
|
533 | (2) |
|
|
535 | (2) |
32 Progressive Rendering Using Multi-frame Sampling |
|
537 | (15) |
|
|
|
|
|
|
537 | (1) |
|
|
538 | (4) |
|
32.3 Multi-frame Rendering Techniques |
|
|
542 | (9) |
|
32.4 Conclusion and Future Work |
|
|
551 | (1) |
|
|
552 | (1) |
Bibliography |
|
552 | (3) |
About the Contributors |
|
555 | |