| Acknowledgments |
|
xxi | |
| Web Materials |
|
xxiii | |
|
|
|
1 | (30) |
|
|
|
|
|
3 | (12) |
|
|
|
|
|
|
|
|
|
3 | (1) |
|
1.2 The Self-Organizing Map |
|
|
4 | (2) |
|
1.3 Color Quantization with SOM |
|
|
6 | (1) |
|
|
|
7 | (3) |
|
1.5 Results and Discussion |
|
|
10 | (2) |
|
|
|
12 | (1) |
|
|
|
13 | (2) |
|
2 Visualize Your Shadow Map Techniques |
|
|
15 | (16) |
|
|
|
|
|
|
|
|
|
15 | (1) |
|
|
|
15 | (1) |
|
|
|
16 | (1) |
|
|
|
17 | (2) |
|
2.5 A Representation of Aliasing Errors |
|
|
19 | (2) |
|
|
|
21 | (4) |
|
2.7 Mismatch of View Direction and Warping Direction |
|
|
25 | (2) |
|
|
|
27 | (1) |
|
2.9 Supplementary Materials |
|
|
27 | (1) |
|
|
|
28 | (1) |
|
|
|
28 | (3) |
|
|
|
31 | (84) |
|
|
|
1 As Simple as Possible Tessellation for Interactive Applications |
|
|
33 | (8) |
|
|
|
1.1 Basic Phong Tessellation Operator |
|
|
34 | (2) |
|
|
|
36 | (2) |
|
1.3 Results and Discussion |
|
|
38 | (1) |
|
|
|
38 | (3) |
|
2 Rule-Based Geometry Synthesis in Real-Time |
|
|
41 | (26) |
|
|
|
|
|
|
|
41 | (1) |
|
2.2 Building Up the Scene with Procedures |
|
|
42 | (1) |
|
2.3 L-systems and the PGI |
|
|
42 | (2) |
|
2.4 Model Details and Implementation |
|
|
44 | (15) |
|
2.5 Interaction with the Procedural Scene |
|
|
59 | (3) |
|
|
|
62 | (3) |
|
|
|
65 | (1) |
|
|
|
65 | (2) |
|
3 GPU-Based NURBS Geometry Evaluation and Rendering |
|
|
67 | (20) |
|
|
|
3.1 A Bit of NURBS Background |
|
|
67 | (4) |
|
|
|
71 | (1) |
|
3.3 NURBS Surface and Curve Evaluation |
|
|
72 | (5) |
|
3.4 Trimmed NURBS Surface Evaluation |
|
|
77 | (5) |
|
3.5 Results and Conclusion |
|
|
82 | (2) |
|
|
|
84 | (3) |
|
4 Polygonal-Functional Hybrids for Computer Animation and Games |
|
|
87 | (28) |
|
|
|
|
|
|
|
|
|
|
|
|
|
87 | (1) |
|
|
|
88 | (6) |
|
4.3 Working with FRep Models Using the GPU |
|
|
94 | (9) |
|
|
|
103 | (7) |
|
|
|
110 | (1) |
|
|
|
111 | (1) |
|
|
|
112 | (1) |
|
|
|
112 | (1) |
|
|
|
113 | (2) |
|
|
|
115 | (82) |
|
|
|
1 Quadtree Displacement Mapping with Height Blending |
|
|
117 | (32) |
|
|
|
|
|
117 | (2) |
|
|
|
119 | (1) |
|
1.3 Overview of Ray-Tracing Algorithms |
|
|
120 | (5) |
|
1.4 Quadtree Displacement Mapping |
|
|
125 | (9) |
|
|
|
134 | (4) |
|
|
|
138 | (1) |
|
|
|
139 | (7) |
|
|
|
146 | (1) |
|
|
|
147 | (1) |
|
|
|
148 | (1) |
|
2 NPR Effects Using the Geometry Shader |
|
|
149 | (18) |
|
|
|
|
|
|
|
149 | (1) |
|
|
|
149 | (2) |
|
|
|
151 | (8) |
|
|
|
159 | (5) |
|
|
|
164 | (1) |
|
|
|
164 | (3) |
|
3 Alpha Blending as a Post-Process |
|
|
167 | (18) |
|
|
|
|
|
167 | (1) |
|
|
|
168 | (1) |
|
|
|
169 | (1) |
|
|
|
170 | (1) |
|
3.5 The Screen-Space Alpha Mask |
|
|
170 | (9) |
|
3.6 Alpha Reference Issues |
|
|
179 | (2) |
|
3.7 Rendering Pipeline Integration |
|
|
181 | (1) |
|
|
|
181 | (1) |
|
|
|
182 | (1) |
|
|
|
183 | (1) |
|
|
|
183 | (1) |
|
|
|
183 | (2) |
|
4 Virtual Texture Mapping 101 |
|
|
185 | (12) |
|
|
|
|
|
|
|
|
|
|
|
185 | (1) |
|
4.2 Virtual Texture Mapping |
|
|
185 | (4) |
|
4.3 Implementation Details |
|
|
189 | (4) |
|
|
|
193 | (1) |
|
|
|
193 | (1) |
|
|
|
194 | (1) |
|
|
|
194 | (3) |
|
|
|
197 | (48) |
|
|
|
1 Fast, Stencil-Based Multiresolution Splatting for Indirect Illumination |
|
|
199 | (16) |
|
|
|
|
|
|
|
1.1 Quick Review: Instant Radiosity |
|
|
200 | (1) |
|
1.2 Quick Review: Reflective Shadow Maps |
|
|
201 | (1) |
|
1.3 Multiresolution Splatting |
|
|
202 | (4) |
|
1.4 Fast STencil-Based Multiresolution Splatting |
|
|
206 | (4) |
|
|
|
210 | (2) |
|
|
|
212 | (1) |
|
|
|
212 | (1) |
|
|
|
213 | (2) |
|
2 Screen-Space Directional Occlusion |
|
|
215 | (16) |
|
|
|
|
|
|
|
215 | (1) |
|
2.2 Screen-Space Ambient Occlusion |
|
|
216 | (2) |
|
2.3 Screen-Space Directional Occlusion |
|
|
218 | (9) |
|
|
|
227 | (1) |
|
|
|
228 | (1) |
|
|
|
229 | (1) |
|
|
|
229 | (2) |
|
3 Real-Time Multi-Bounce Ray-Tracing with Geometry Impostors |
|
|
231 | (14) |
|
|
|
|
|
|
|
232 | (2) |
|
3.2 Intersection Computation with an Environment Distance Impostor |
|
|
234 | (2) |
|
3.3 Ray-Object Intersection Using Distance Impostors |
|
|
236 | (1) |
|
3.4 Ray-Object Intersection Using Height Maps |
|
|
236 | (2) |
|
3.5 Tracing Multiple Refractions within a Single Object |
|
|
238 | (1) |
|
3.6 Multiple Ray Bounces with Object Impostors Only |
|
|
238 | (1) |
|
3.7 Mulitple Ray Bounces with Environment Distance Impostors Only |
|
|
238 | (1) |
|
3.8 Combination of Environment and Object Impostors |
|
|
239 | (1) |
|
|
|
240 | (1) |
|
3.10 Example Application: Glass Chess |
|
|
241 | (1) |
|
3.11 Example Application: Alien Pool |
|
|
242 | (1) |
|
|
|
243 | (1) |
|
|
|
243 | (2) |
|
|
|
245 | (108) |
|
|
|
1 Anisotropic Kuwahara Filtering on the GUP |
|
|
247 | (18) |
|
|
|
|
|
|
|
|
|
247 | (1) |
|
|
|
248 | (3) |
|
1.3 Genearlized Kuwahara Filtering |
|
|
251 | (4) |
|
1.4 Anisotropic Kuwahara Filtering |
|
|
255 | (8) |
|
|
|
263 | (1) |
|
|
|
263 | (2) |
|
2 Edge Anti-aliasing by Post-processing |
|
|
265 | (26) |
|
|
|
|
|
265 | (3) |
|
2.2 Finding the Nearest Silhouette Edge |
|
|
268 | (3) |
|
|
|
271 | (2) |
|
|
|
273 | (2) |
|
2.5 GPU Implementaion and Resluts |
|
|
275 | (3) |
|
|
|
278 | (2) |
|
|
|
280 | (8) |
|
|
|
288 | (1) |
|
|
|
289 | (2) |
|
3 Environemnt Mapping with Floyd-Steinberg halftoning |
|
|
291 | (14) |
|
|
|
|
|
|
|
3.1 Parametrization of the Environment Map |
|
|
292 | (2) |
|
|
|
294 | (2) |
|
|
|
296 | (7) |
|
|
|
303 | (1) |
|
|
|
303 | (2) |
|
4 Hierarchical Item Buffers for Granular Occlusion Culling |
|
|
305 | (10) |
|
|
|
|
|
|
|
305 | (1) |
|
4.2 Hierarchical Item Buffers |
|
|
306 | (5) |
|
|
|
311 | (1) |
|
|
|
312 | (2) |
|
|
|
314 | (1) |
|
|
|
314 | (1) |
|
5 Realistic Depth of field in Postproduction |
|
|
315 | (12) |
|
|
|
|
|
5.1 Depth-of-Field Equations |
|
|
315 | (2) |
|
5.2 Camera Lens Simulation |
|
|
317 | (1) |
|
|
|
317 | (4) |
|
5.4 CUDA-Acceleratd Computation |
|
|
321 | (2) |
|
|
|
323 | (2) |
|
|
|
325 | (1) |
|
|
|
325 | (2) |
|
6 Real-Time Screen Space Cloud Lighting |
|
|
327 | (8) |
|
|
|
|
|
327 | (1) |
|
|
|
328 | (3) |
|
|
|
331 | (1) |
|
|
|
332 | (1) |
|
|
|
333 | (1) |
|
|
|
333 | (2) |
|
7 Screen-Space Subsurface Scattering |
|
|
335 | (18) |
|
|
|
|
|
|
|
335 | (1) |
|
7.2 The Texture-Space Approach |
|
|
336 | (3) |
|
7.3 The Screen-Space Approach |
|
|
339 | (8) |
|
|
|
347 | (1) |
|
7.5 Discussion of Resluts |
|
|
347 | (3) |
|
|
|
350 | (1) |
|
|
|
351 | (1) |
|
|
|
351 | (2) |
|
|
|
353 | (60) |
|
|
|
1 Migration to OpenGL ES 2.0 |
|
|
355 | (20) |
|
|
|
|
|
355 | (1) |
|
|
|
356 | (4) |
|
|
|
360 | (2) |
|
|
|
362 | (1) |
|
1.5 Basic Shaders: Implementaing the Fixed-Function Pipeline |
|
|
363 | (5) |
|
1.6 Advanced Effects Made Easy |
|
|
368 | (5) |
|
|
|
373 | (1) |
|
|
|
373 | (2) |
|
2 Touchscreen-Based User Interaction |
|
|
375 | (10) |
|
|
|
|
|
375 | (1) |
|
|
|
375 | (3) |
|
|
|
378 | (1) |
|
2.4 Application: Controlling a Camera in a Spherical Coordinate System |
|
|
379 | (2) |
|
|
|
381 | (2) |
|
|
|
383 | (1) |
|
|
|
383 | (2) |
|
3 iPhone 3GS Graphics Development and Optimization Strategies |
|
|
385 | (12) |
|
|
|
3.1 Software Development Kits |
|
|
385 | (4) |
|
3.2 General Optimization Strategies |
|
|
389 | (6) |
|
|
|
395 | (1) |
|
|
|
395 | (2) |
|
4 Optimizing a 3D UI Engine for Mobile Devices |
|
|
397 | (16) |
|
|
|
|
|
398 | (1) |
|
|
|
399 | (11) |
|
|
|
410 | (1) |
|
|
|
410 | (3) |
|
|
|
413 | (80) |
|
|
|
1 Fast Conventional Shadow Filtering |
|
|
415 | (32) |
|
|
|
|
|
415 | (1) |
|
|
|
415 | (1) |
|
1.3 Uniform Shadow Filtering |
|
|
416 | (4) |
|
1.4 Separable Shadow Filters |
|
|
420 | (8) |
|
1.5 Nonseparable Unique Weights per PCF Reslut |
|
|
428 | (2) |
|
1.6 Advanced Shadow Filtering Techniques |
|
|
430 | (15) |
|
|
|
445 | (2) |
|
2 Hybird Min/Max Plnae-Based Shadow Maps |
|
|
447 | (8) |
|
|
|
|
|
447 | (1) |
|
|
|
447 | (1) |
|
2.3 Construction of an HPSM |
|
|
448 | (5) |
|
|
|
453 | (1) |
|
2.5 Other Uses for the HPSM |
|
|
454 | (1) |
|
|
|
454 | (1) |
|
3 Shadow Mapping for Omindirectional Light Using Tetrahedron Mapping |
|
|
455 | (22) |
|
|
|
|
|
455 | (1) |
|
3.2 Tetrahedron Shadow Mapping |
|
|
455 | (9) |
|
|
|
464 | (1) |
|
|
|
465 | (5) |
|
|
|
470 | (5) |
|
|
|
475 | (2) |
|
4 Screen Space Soft Shadows |
|
|
477 | (16) |
|
|
|
|
|
|
|
|
|
477 | (2) |
|
|
|
479 | (1) |
|
4.3 Screen Space Soft Shadows |
|
|
480 | (5) |
|
|
|
485 | (3) |
|
|
|
488 | (2) |
|
|
|
490 | (3) |
|
|
|
493 | (54) |
|
|
|
1 Multi-Fragment Effects on the GPU Using Bucket Sort |
|
|
495 | (14) |
|
|
|
|
|
|
|
|
|
|
|
495 | (1) |
|
1.2 Design of Bucket Array |
|
|
496 | (1) |
|
|
|
497 | (1) |
|
|
|
498 | (1) |
|
|
|
498 | (5) |
|
|
|
503 | (4) |
|
|
|
507 | (1) |
|
|
|
507 | (2) |
|
2 Parallelized Light Pre-Pass Rendering with the Cell Broadband Engine |
|
|
509 | (20) |
|
|
|
|
|
|
|
509 | (1) |
|
2.2 Light Pre-Pass Rendering |
|
|
510 | (2) |
|
2.3 The Playstation3 adn the CBE |
|
|
512 | (1) |
|
2.4 GPU/SPE Synchronization |
|
|
513 | (2) |
|
|
|
515 | (1) |
|
2.6 The Lighting SPE Program |
|
|
516 | (7) |
|
|
|
523 | (1) |
|
|
|
524 | (1) |
|
|
|
524 | (2) |
|
|
|
526 | (1) |
|
|
|
526 | (3) |
|
3 Proting Code between Direct3D9 and OpenGL 2.0 |
|
|
529 | (12) |
|
|
|
|
|
529 | (1) |
|
|
|
529 | (4) |
|
|
|
533 | (5) |
|
|
|
538 | (1) |
|
3.5 A Word on Sample Application |
|
|
539 | (1) |
|
|
|
540 | (1) |
|
|
|
540 | (1) |
|
4 Practical Thread Rendering for DirectX 9 |
|
|
541 | (6) |
|
|
|
|
|
541 | (1) |
|
|
|
541 | (1) |
|
|
|
542 | (4) |
|
|
|
546 | (1) |
|
|
|
546 | (1) |
|
|
|
547 | (64) |
|
|
|
1 Stylized Rendering in Spore |
|
|
549 | (12) |
|
|
|
|
|
|
|
549 | (5) |
|
|
|
554 | (6) |
|
|
|
560 | (1) |
|
2 Rendering Techniques in Call of Juarez: Bound in Blood |
|
|
561 | (10) |
|
|
|
|
|
|
|
561 | (1) |
|
|
|
561 | (2) |
|
2.3 Signle Frame of CoJ: BiB, The Black Magic |
|
|
563 | (4) |
|
2.4 What Else Do We Have? |
|
|
567 | (1) |
|
|
|
568 | (1) |
|
|
|
569 | (1) |
|
|
|
569 | (2) |
|
3 Making it Large, Beautiful, Fast, and Consistent: Lessons Learned Developing Just Cause 2 |
|
|
571 | (26) |
|
|
|
|
|
571 | (1) |
|
3.2 Making it Large and Beautiful |
|
|
571 | (14) |
|
|
|
585 | (6) |
|
|
|
591 | (4) |
|
3.5 Conclusion and Future Work |
|
|
595 | (1) |
|
|
|
595 | (1) |
|
|
|
596 | (1) |
|
4 Destructible Volumetric Terrain |
|
|
597 | (14) |
|
|
|
|
|
597 | (1) |
|
4.2 Converting Custom 3D Models into Voxel Representations |
|
|
598 | (2) |
|
4.3 Memory Requirements for Large Voxel Maps |
|
|
600 | (1) |
|
4.4 Polygonization from Voxels to Traiangles |
|
|
601 | (1) |
|
4.5 Seamless Texture-Mapping for Free-Form Surfaces |
|
|
602 | (1) |
|
4.6 Reducing Repeated Texture Patterns |
|
|
603 | (1) |
|
4.7 Tangent Space Calculation in the Pixle Shader |
|
|
604 | (1) |
|
4.8 Multi-material Voxel Maps |
|
|
604 | (2) |
|
|
|
606 | (1) |
|
|
|
607 | (1) |
|
|
|
608 | (1) |
|
|
|
608 | (3) |
|
X Beyong Pixels and Triangles |
|
|
611 | (96) |
|
|
|
1 Parallelized Implementation of Universal Visual Computer |
|
|
613 | (10) |
|
|
|
|
|
|
|
|
|
613 | (1) |
|
|
|
614 | (1) |
|
|
|
615 | (5) |
|
|
|
620 | (2) |
|
|
|
622 | (1) |
|
|
|
622 | (1) |
|
|
|
622 | (1) |
|
2 Accelerating Virtual Texturing Using CUDA |
|
|
623 | (20) |
|
Charles-Frederik Hollemeersch |
|
|
|
|
|
|
|
|
|
|
624 | (2) |
|
2.2 Implementing Virtual Texturing |
|
|
626 | (2) |
|
2.3 Rendering with Virtual Texturing |
|
|
628 | (3) |
|
2.4 GPU-Based Acceleration |
|
|
631 | (9) |
|
|
|
640 | (1) |
|
|
|
641 | (1) |
|
|
|
641 | (1) |
|
|
|
641 | (2) |
|
3 Efficient Rendering of Highly Detailed Volumetric Scenes with Giga Voxels |
|
|
643 | (36) |
|
|
|
|
|
|
|
|
|
|
|
643 | (1) |
|
3.2 Voxel Representations |
|
|
644 | (1) |
|
3.3 The Giga Voxels Approach |
|
|
645 | (1) |
|
|
|
646 | (4) |
|
|
|
650 | (6) |
|
3.6 Out-of-Core Data Management |
|
|
656 | (14) |
|
3.7 Octree-Based Synthesis |
|
|
670 | (2) |
|
3.8 Voxel Object Instancing |
|
|
672 | (1) |
|
3.9 MipMap-Based Blur Effects |
|
|
673 | (3) |
|
|
|
676 | (1) |
|
|
|
677 | (2) |
|
4 Spatial Binning on the GPU |
|
|
679 | (14) |
|
|
|
|
|
|
|
|
|
679 | (1) |
|
|
|
680 | (4) |
|
|
|
684 | (3) |
|
|
|
687 | (3) |
|
|
|
690 | (1) |
|
|
|
691 | (1) |
|
|
|
691 | (2) |
|
5 Real-time Interaction between Particles and the Dynamic Mesh on the CPU |
|
|
693 | (14) |
|
|
|
|
|
693 | (1) |
|
|
|
693 | (1) |
|
5.3 Sorting the Triangles |
|
|
694 | (5) |
|
5.4 Building the Buffer Map |
|
|
699 | (3) |
|
5.5 Addressing the Buffer |
|
|
702 | (3) |
|
|
|
705 | (1) |
|
|
|
705 | (1) |
|
|
|
706 | (1) |
| Section Editors |
|
707 | (2) |
| Contributors |
|
709 | |