Muutke küpsiste eelistusi

E-raamat: GPU Pro: Advanced Rendering Techniques [Taylor & Francis e-raamat]

Edited by
  • Formaat: 740 pages
  • Ilmumisaeg: 14-Jun-2010
  • Kirjastus: A K Peters
  • ISBN-13: 9780429108426
  • Taylor & Francis e-raamat
  • Hind: 216,96 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Tavahind: 309,94 €
  • Säästad 30%
  • Formaat: 740 pages
  • Ilmumisaeg: 14-Jun-2010
  • Kirjastus: A K Peters
  • ISBN-13: 9780429108426
This first book in the new GPU Pro series covers essential tools and techniques for programming the graphics processing unit. Brought to you by Wolfgang Engel and the same team of editors who made the ShaderX series a success, this volume will cover advanced rendering techniques, engine design, GPGPU techniques, related mathematical techniques, and game postmortems. A special emphasis is placed on handheld programming to account for the increased importance of graphics on mobile devices, especially the iPhone and iPod touch.

Brought to you by Wolfgang Engel and the same team of editors who made the Shader X series a success. this volume covers advanced rendering techniques, engine design, GPGPU techniques, related mathematical techniques, and game postmortems. A special emphasis is placed on handheld programming to account for the increased importance of graphics on mobile devices, especially the iPhone and IPod touch. Contributing editors include Wessam Bahnassi, Kristof Beets, Carsten Dachsbacher, Sam Martin, Christopher Oat, Sebastien St-Laurent, and Natasha Tatarchuk.

"Any professional programmer in the field will find something of interest in this volume. I'm thrilled to see that this collection is in color---it's about time! A wide range of topics are covered, from global illumination to image processing to mobile devices. I particularly like the fact that the book doesn't go the scholarly researcher route; the articles are written in a straightforward way to help with implementation of the idea, and code is often provided."---Eric Haines, co-author of Real-Time Rendering

Acknowledgments xxi
Web Materials xxiii
I Mathematics
1(30)
Sam Martin
1 GPU Color Quantization
3(12)
Chi Sing Leung
Tze-Yui Ho
Yi Xiao
1.1 Introduction
3(1)
1.2 The Self-Organizing Map
4(2)
1.3 Color Quantization with SOM
6(1)
1.4 Implementation
7(3)
1.5 Results and Discussion
10(2)
1.6 Conclusion
12(1)
Bibliography
13(2)
2 Visualize Your Shadow Map Techniques
15(16)
Fan Zhang
Chong Zhao
Adrian Egli
2.1 Introduction
15(1)
2.2 Article Overview
15(1)
2.3 Scope of Analysis
16(1)
2.4 Aliasing Revisited
17(2)
2.5 A Representation of Aliasing Errors
19(2)
2.6 Visualization
21(4)
2.7 Mismatch of View Direction and Warping Direction
25(2)
2.8 Conclusion
27(1)
2.9 Supplementary Materials
27(1)
2.10 Acknowledgments
28(1)
Bibliography
28(3)
II Geometry Manipulation
31(84)
Natalya Tatarchuk
1 As Simple as Possible Tessellation for Interactive Applications
33(8)
Tamy Boubekeur
1.1 Basic Phong Tessellation Operator
34(2)
1.2 Extension to Quads
36(2)
1.3 Results and Discussion
38(1)
Bibliography
38(3)
2 Rule-Based Geometry Synthesis in Real-Time
41(26)
Milan Magdics
Gergely Klar
2.1 Introduction
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)
2.6 Results
62(3)
2.7 Conclusion
65(1)
Bibliography
65(2)
3 GPU-Based NURBS Geometry Evaluation and Rendering
67(20)
Graham Hemingway
3.1 A Bit of NURBS Background
67(4)
3.2 Related Work
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)
Bibliography
84(3)
4 Polygonal-Functional Hybrids for Computer Animation and Games
87(28)
D. Kravtsov
O. Fryazinov
V. Adzhiev
A. Pasko
P. Comninos
4.1 Introduction
87(1)
4.2 Background
88(6)
4.3 Working with FRep Models Using the GPU
94(9)
4.4 Applications
103(7)
4.5 Tools
110(1)
4.6 Limitations
111(1)
4.7 Conclusion
112(1)
4.8 Source Code
112(1)
Bibliography
113(2)
III Rendering Techniques
115(82)
Wessam Bahnassi
1 Quadtree Displacement Mapping with Height Blending
117(32)
Michal Drobot
1.1 Overview
117(2)
1.2 Introduction
119(1)
1.3 Overview of Ray-Tracing Algorithms
120(5)
1.4 Quadtree Displacement Mapping
125(9)
1.5 Self-Shadowing
134(4)
1.6 Ambient Occlusion
138(1)
1.7 Surface Blending
139(7)
1.8 General Advice
146(1)
1.9 Conclusion
147(1)
Bibliography
148(1)
2 NPR Effects Using the Geometry Shader
149(18)
Pedro Hermosilla
Pere-Pau Vazquez
2.1 Introduction
149(1)
2.2 Previous Work
149(2)
2.3 Silhouette Rendering
151(8)
2.4 Pencil Rendering
159(5)
2.5 Acknowledgments
164(1)
Bibliography
164(3)
3 Alpha Blending as a Post-Process
167(18)
Benjamin Hathaway
3.1 Introduction
167(1)
3.2 The Alternatives
168(1)
3.3 The Source Artwork
169(1)
3.4 Initial Attempts
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)
3.8 Conclusion
181(1)
3.9 Demo
182(1)
3.10 Acknowledgments
183(1)
3.11 Source Code
183(1)
Bibliography
183(2)
4 Virtual Texture Mapping 101
185(12)
Matthaus G. Chajdas
Christian Eisenacher
Marc Stamminger
Sylvain Lefebvre
4.1 Introduction
185(1)
4.2 Virtual Texture Mapping
185(4)
4.3 Implementation Details
189(4)
4.4 Conclusion
193(1)
4.5 Shader Code
193(1)
4.6 Acknowledgments
194(1)
Bibliography
194(3)
IV Global Illumination
197(48)
Carsten Dachsbacher
1 Fast, Stencil-Based Multiresolution Splatting for Indirect Illumination
199(16)
Chris Wyman
Greg Nichols
Jeremy Shopf
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)
1.5 Results and Analysis
210(2)
1.6 Conclusion
212(1)
1.7 Demo and Source
212(1)
Bibliography
213(2)
2 Screen-Space Directional Occlusion
215(16)
Thorsten Grosch
Tobias Ritschel
2.1 Introduction
215(1)
2.2 Screen-Space Ambient Occlusion
216(2)
2.3 Screen-Space Directional Occlusion
218(9)
2.4 Interleaved Sampling
227(1)
2.5 Discussion
228(1)
2.6 Concluion
229(1)
Bibliography
229(2)
3 Real-Time Multi-Bounce Ray-Tracing with Geometry Impostors
231(14)
Peter Dancsik
Laszlo Szecsi
3.1 Geometry Impostors
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)
3.9 Caustics and Shadows
240(1)
3.10 Example Application: Glass Chess
241(1)
3.11 Example Application: Alien Pool
242(1)
3.12 Conclusion
243(1)
Bibliography
243(2)
V Image Space
245(108)
Christopher Oat
1 Anisotropic Kuwahara Filtering on the GUP
247(18)
Jan Eric Kyprianidis
Henry Kang
Jurgen Dollner
1.1 Introduction
247(1)
1.2 Kuwahara Filtering
248(3)
1.3 Genearlized Kuwahara Filtering
251(4)
1.4 Anisotropic Kuwahara Filtering
255(8)
1.5 Conclusion
263(1)
Bibliography
263(2)
2 Edge Anti-aliasing by Post-processing
265(26)
Hugh Malan
2.1 Intorduction
265(3)
2.2 Finding the Nearest Silhouette Edge
268(3)
2.3 The Post-Process
271(2)
2.4 Refinements
273(2)
2.5 GPU Implementaion and Resluts
275(3)
2.6 Resluts
278(2)
2.7 Other Applications
280(8)
2.8 Conclusion
288(1)
Bibliography
289(2)
3 Environemnt Mapping with Floyd-Steinberg halftoning
291(14)
Laszlo Szirmay-Kalos
Laszlo Szecsi
Anton Penzov
3.1 Parametrization of the Environment Map
292(2)
3.2 Importance Sampling
294(2)
3.3 Proposed Solution
296(7)
3.4 Conclsion
303(1)
Bibliography
303(2)
4 Hierarchical Item Buffers for Granular Occlusion Culling
305(10)
Thomas Engelhardt
Carsten Dachsbacher
4.1 Introduction
305(1)
4.2 Hierarchical Item Buffers
306(5)
4.3 Application
311(1)
4.4 Results
312(2)
4.5 Conclusion
314(1)
Bibliography
314(1)
5 Realistic Depth of field in Postproduction
315(12)
David Illes
Peter Horvath
5.1 Depth-of-Field Equations
315(2)
5.2 Camera Lens Simulation
317(1)
5.3 Exposure Simulation
317(4)
5.4 CUDA-Acceleratd Computation
321(2)
5.5 Results
323(2)
5.6 Conclusion
325(1)
Bibliography
325(2)
6 Real-Time Screen Space Cloud Lighting
327(8)
Kaori Kubota
6.1 Introduction
327(1)
6.2 Implementation
328(3)
6.3 Resluts
331(1)
6.4 Extensions
332(1)
6.5 Conclusion
333(1)
Bibliography
333(2)
7 Screen-Space Subsurface Scattering
335(18)
Jorge Jimeez
Diego Gutierrez
7.1 Introductions
335(1)
7.2 The Texture-Space Approach
336(3)
7.3 The Screen-Space Approach
339(8)
7.4 Model Preparation
347(1)
7.5 Discussion of Resluts
347(3)
7.6 Conclusion
350(1)
7.7 Acknowledgments
351(1)
Bibliography
351(2)
VI Handheld Devices
353(60)
Kristof Beets
1 Migration to OpenGL ES 2.0
355(20)
Ken Caterall
1.1 Introduction
355(1)
1.2 Key API Differences
356(4)
1.3 The Shader Language
360(2)
1.4 Initialization
362(1)
1.5 Basic Shaders: Implementaing the Fixed-Function Pipeline
363(5)
1.6 Advanced Effects Made Easy
368(5)
1.7 Conclusion
373(1)
1.8 Acknowledgments
373(2)
2 Touchscreen-Based User Interaction
375(10)
Andrea Bizzotto
2.1 Introduction
375(1)
2.2 Motion Estimation
375(3)
2.3 Postion Prediction
378(1)
2.4 Application: Controlling a Camera in a Spherical Coordinate System
379(2)
2.5 Algorithm Overview
381(2)
2.6 Conclusion
383(1)
2.7 Acknowledgments
383(2)
3 iPhone 3GS Graphics Development and Optimization Strategies
385(12)
Andrew Senior
3.1 Software Development Kits
385(4)
3.2 General Optimization Strategies
389(6)
3.3 Conclusion
395(1)
Bibliography
395(2)
4 Optimizing a 3D UI Engine for Mobile Devices
397(16)
Hyunwoo Ki
4.1 Overview
398(1)
4.2 Optimization Methods
399(11)
4.3 Conclusion
410(1)
Bibliograpy
410(3)
VII Shadows
413(80)
Wolfgang Engel
1 Fast Conventional Shadow Filtering
415(32)
Hologer Gruen
1.1 Overview
415(1)
1.2 Inroduction
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)
Bibliography
445(2)
2 Hybird Min/Max Plnae-Based Shadow Maps
447(8)
Holger Gruen
2.1 Overview
447(1)
2.2 Introduction
447(1)
2.3 Construction of an HPSM
448(5)
2.4 Using an HPSM
453(1)
2.5 Other Uses for the HPSM
454(1)
Bibliography
454(1)
3 Shadow Mapping for Omindirectional Light Using Tetrahedron Mapping
455(22)
Hung-Chien Liao
3.1 Shadow Mapping
455(1)
3.2 Tetrahedron Shadow Mapping
455(9)
3.3 Optimization
464(1)
3.4 Lookup Map
465(5)
3.5 Conclusion
470(5)
Bibliography
475(2)
4 Screen Space Soft Shadows
477(16)
Jesus Gumbau
Miguel Chover
Mateu Sbert
4.1 Introduction
477(2)
4.2 Previous Work
479(1)
4.3 Screen Space Soft Shadows
480(5)
4.4 Results
485(3)
4.5 Conclusion
488(2)
Biblioraphy
490(3)
VII 3D Engine Design
493(54)
Wolfgang Engel
1 Multi-Fragment Effects on the GPU Using Bucket Sort
495(14)
Meng-Cheng Huang
Fang Liu
Xue-Hui Liu
En-Hua Wu
1.1 Introduction
495(1)
1.2 Design of Bucket Array
496(1)
1.3 The Algorithm
497(1)
1.4 Mulit-pass Approach
498(1)
1.5 The Adaptive Scheme
498(5)
1.6 Applications
503(4)
1.7 Conclusions
507(1)
Biblioraphy
507(2)
2 Parallelized Light Pre-Pass Rendering with the Cell Broadband Engine
509(20)
Steven Tovey
Stephen McAuley
2.1 Introduction
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)
2.5 The Pre-Pass
515(1)
2.6 The Lighting SPE Program
516(7)
2.7 The Main Pass
523(1)
2.8 Conclusion
524(1)
2.9 Further Work
524(2)
2.10 Acknowledgments
526(1)
Biblioraphy
526(3)
3 Proting Code between Direct3D9 and OpenGL 2.0
529(12)
Sojciech Sterma
3.1 Introduction
529(1)
3.2 General Issues
529(4)
3.3 Resoruces Management
533(5)
3.4 Notes on Debugging
538(1)
3.5 A Word on Sample Application
539(1)
3.6 Conclusion
540(1)
Bibliography
540(1)
4 Practical Thread Rendering for DirectX 9
541(6)
David Pangerl
4.1 Abstract
541(1)
4.2 Introduction
541(1)
4.3 Solution
542(4)
4.4 Conclusion
546(1)
4.5 Future Work
546(1)
IX Game Postmortems
547(64)
Mathias Wloka
1 Stylized Rendering in Spore
549(12)
Shalin Shodhan
Andrew Willmott
1.1 Filter Chain Sytem
549(5)
1.2 Fun with Filters
554(6)
1.3 Cheats
560(1)
2 Rendering Techniques in Call of Juarez: Bound in Blood
561(10)
Pawel Rohleder
Maciej Jamrozik
2.1 Introduction
561(1)
2.2 Deferred Shading
561(2)
2.3 Signle Frame of CoJ: BiB, The Black Magic
563(4)
2.4 What Else Do We Have?
567(1)
2.5 Conclusion
568(1)
2.6 Acknowledgments
569(1)
Bibliography
569(2)
3 Making it Large, Beautiful, Fast, and Consistent: Lessons Learned Developing Just Cause 2
571(26)
Emil Persson
3.1 Introduction
571(1)
3.2 Making it Large and Beautiful
571(14)
3.3 Making it Consistent
585(6)
3.4 Making it Fast
591(4)
3.5 Conclusion and Future Work
595(1)
3.6 Acknowledgments
595(1)
Bibliography
596(1)
4 Destructible Volumetric Terrain
597(14)
Marek Rosa
4.1 Introduction
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)
4.9 Level of Detail
606(1)
4.10 Ambient Light
607(1)
4.11 Conclusion
608(1)
Bibliograpy
608(3)
X Beyong Pixels and Triangles
611(96)
Sebastien St-Laurent
1 Parallelized Implementation of Universal Visual Computer
613(10)
Tze-Yui Ho
Ping-Man Lam
Chi-Sing Leung
1.1 Introduction
613(1)
1.2 Background
614(1)
1.3 CNN Implementation
615(5)
1.4 Results
620(2)
1.5 Conclusion
622(1)
1.6 Acknowledgments
622(1)
Bibliography
622(1)
2 Accelerating Virtual Texturing Using CUDA
623(20)
Charles-Frederik Hollemeersch
Bart Pieters
Peter Lambert
Rik Van de Walle
2.1 Introduction
624(2)
2.2 Implementing Virtual Texturing
626(2)
2.3 Rendering with Virtual Texturing
628(3)
2.4 GPU-Based Acceleration
631(9)
2.5 Results
640(1)
2.6 Conclusion
641(1)
2.7 Acknowledgments
641(1)
Bibliography
641(2)
3 Efficient Rendering of Highly Detailed Volumetric Scenes with Giga Voxels
643(36)
Cyrill Crassin
Fabice Neyret
Miguel Sainz
Elmar Eisemann
3.1 Introduction
643(1)
3.2 Voxel Representations
644(1)
3.3 The Giga Voxels Approach
645(1)
3.4 Data Structure
646(4)
3.5 Rendering
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)
3.10 Conclusion
676(1)
Biblioraphy
677(2)
4 Spatial Binning on the GPU
679(14)
Christopher Oat
Joshua Barczak
Jeremy Shopf
4.1 Introduction
679(1)
4.2 Binning
680(4)
4.3 Applications
684(3)
4.4 Results
687(3)
4.5 Conclusion
690(1)
4.6 Acknowledgments
691(1)
Bibliography
691(2)
5 Real-time Interaction between Particles and the Dynamic Mesh on the CPU
693(14)
Vlad Alexandrov
5.1 Introduction
693(1)
5.2 Process Overview
693(1)
5.3 Sorting the Triangles
694(5)
5.4 Building the Buffer Map
699(3)
5.5 Addressing the Buffer
702(3)
5.6 Performance
705(1)
5.7 Conclusion
705(1)
Bibliography
706(1)
Section Editors 707(2)
Contributors 709
Wolfgang Engel is the CTO & Co-Founder of Confetti Special Effects Inc. He worked for more than four years in Rockstar's core technology group as the lead graphics programmer. He is the editor of the ShaderX books, the author of several other books, and loves to talk about graphics programming. He is also a MVP DirectX since July 2006 and is active in several advisory boards in the industry.