Muutke küpsiste eelistusi

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

Edited by
  • Formaat: 524 pages, 36 Tables, black and white; 234 Illustrations, color
  • Ilmumisaeg: 20-May-2014
  • Kirjastus: Apple Academic Press Inc.
  • ISBN-13: 9780429170188
Teised raamatud teemal:
  • Taylor & Francis e-raamat
  • Hind: 156,95 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Tavahind: 224,21 €
  • Säästad 30%
  • Formaat: 524 pages, 36 Tables, black and white; 234 Illustrations, color
  • Ilmumisaeg: 20-May-2014
  • Kirjastus: Apple Academic Press Inc.
  • ISBN-13: 9780429170188
Teised raamatud teemal:
In GPU Pro5: Advanced Rendering Techniques, section editors Wolfgang Engel, Christopher Oat, Carsten Dachsbacher, Michal Valient, Wessam Bahnassi, and Marius Bjorge have once again assembled a high-quality collection of cutting-edge techniques for advanced graphics processing unit (GPU) programming.

Divided into six sections, the book covers rendering, lighting, effects in image space, mobile devices, 3D engine design, and compute. It explores rasterization of liquids, ray tracing of art assets that would otherwise be used in a rasterized engine, physically based area lights, volumetric light effects, screen-space grass, the usage of quaternions, and a quadtree implementation on the GPU. It also addresses the latest developments in deferred lighting on mobile devices, OpenCL optimizations for mobile devices, morph targets, and tiled deferred blending methods.

In color throughout, GPU Pro5 is the only book that incorporates contributions from more than 50 experts who cover the latest developments in graphics programming for games and movies. It presents ready-to-use ideas and procedures that can help solve many of your daily graphics programming challenges. Example programs with source code are provided on the books CRC Press web page.
Acknowledgments xv
Web Materials xvii
I Rendering
1(64)
Carsten Dachsbacher
1 Per-Pixel Lists for Single Pass A-Buffer
3(22)
Sylvain Lefebvre
Samuel Hornus
Anass Lasram
1.1 Introduction
3(3)
1.2 Linked Lists with Pointers (Lin-Alloc)
6(5)
1.3 Lists with Open Addressing (Open-Alloc)
11(3)
1.4 Post-sort and Pre-sort
14(2)
1.5 Memory Management
16(1)
1.6 Implementation
17(1)
1.7 Experimental Comparisons
18(3)
1.8 Conclusion
21(1)
1.9 Acknowledgments
22(3)
Bibliography
22(3)
2 Reducing Texture Memory Usage by 2-Channel Color Encoding
25(10)
Krzysztof Kluczek
2.1 Introduction
25(1)
2.2 Texture Encoding Algorithm
25(6)
2.3 Decoding Algorithm
31(1)
2.4 Encoded Image Quality
31(2)
2.5 Conclusion
33(2)
Bibliography
34(1)
3 Particle-Based Simulation of Material Aging
35(20)
Tobias Gunther
Kai Rohmer
Thorsten Grosch
3.1 Introduction
35(1)
3.2 Overview
36(1)
3.3 Simulation
37(12)
3.4 Preview Rendering
49(2)
3.5 Results
51(1)
3.6 Conclusions
52(3)
Bibliography
53(2)
4 Simple Rasterization-Based Liquids
55(10)
Martin Guay
4.1 Overview
55(1)
4.2 Introduction
55(1)
4.3 Simple Liquid Model
56(1)
4.4 Splatting
57(2)
4.5 Grid Pass
59(1)
4.6 Particle Update
60(1)
4.7 Rigid Obstacles
60(1)
4.8 Examples
61(2)
4.9 Conclusion
63(2)
Bibliography
63(2)
II Lighting and Shading
65(154)
Michal Valient
1 Physically Based Area Lights
67(34)
Michal Drobot
1.1 Overview
67(1)
1.2 Introduction
68(2)
1.3 Area Lighting Model
70(21)
1.4 Implementation
91(2)
1.5 Results Discussion
93(3)
1.6 Further Research
96(1)
1.7 Conclusion
97(4)
Bibliography
99(2)
2 High Performance Outdoor Light Scattering Using Epipolar Sampling
101(26)
Egor Yusov
2.1 Introduction
101(1)
2.2 Previous Work
102(1)
2.3 Algorithm Overview
103(1)
2.4 Light Transport Theory
103(3)
2.5 Computing Scattering Integral
106(2)
2.6 Epipolar Sampling
108(2)
2.7 ID Min/Max Binary Tree Optimization
110(3)
2.8 Implementation
113(6)
2.9 Results and Discussion
119(5)
2.10 Conclusion and Future Work
124(3)
Bibliography
124(3)
3 Volumetric Light Effects in Killzone: Shadow Fall
127(22)
Nathan Vos
3.1 Introduction
127(1)
3.2 Basic Algorithm
128(4)
3.3 Low-Resolution Rendering
132(1)
3.4 Dithered Ray Marching
133(3)
3.5 Controlling the Amount of Scattering
136(6)
3.6 Transparent Objects
142(2)
3.7 Limitations
144(1)
3.8 Future Improvements
145(1)
3.9 Conclusion
146(3)
Bibliography
146(3)
4 Hi-Z Screen-Space Cone-Traced Reflections
149(44)
Yasin Uludag
4.1 Overview
149(1)
4.2 Introduction
150(2)
4.3 Previous Work
152(4)
4.4 Algorithm
156(16)
4.5 Implementation
172(7)
4.6 Extensions
179(7)
4.7 Optimizations
186(1)
4.8 Performance
187(1)
4.9 Results
188(1)
4.10 Conclusion
188(1)
4.11 Future Work
189(1)
4.12 Acknowledgments
190(3)
Bibliography
190(3)
5 TressFX: Advanced Real-Time Hair Rendering
193(18)
Timothy Martin
Wolfgang Engel
Nicolas Thibieroz
Jason Yang
Jason Lacroix
5.1 Introduction
193(1)
5.2 Geometry Expansion
194(2)
5.3 Lighting
196(2)
5.4 Shadows and Approximated Hair Self-Shadowing
198(2)
5.5 Antialiasing
200(1)
5.6 Transparency
201(3)
5.7 Integration Specifics
204(2)
5.8 Conclusion
206(5)
Bibliography
208(3)
6 Wire Antialiasing
211(8)
Emil Persson
6.1 Introduction
211(1)
6.2 Algorithm
212(5)
6.3 Conclusion and Future Work
217(2)
Bibliography
217(2)
III Image Space
219(32)
Christopher Oat
1 Screen-Space Grass
221(12)
David Pangerl
1.1 Introduction
221(1)
1.2 Motivation
221(1)
1.3 Technique
222(4)
1.4 Performance
226(1)
1.5 Conclusion
227(1)
1.6 Limitations and Future Work
228(2)
1.7 Screen-Space Grass Source Code
230(3)
Bibliography
232(1)
2 Screen-Space Deformable Meshes via CSG with Per-Pixel Linked Lists
233(8)
Joao Raza
Gustavo Nunes
2.1 Introduction
233(1)
2.2 Mesh Deformation Scenario
233(1)
2.3 Algorithm Overview
234(5)
2.4 Optimizations
239(1)
2.5 Conclusion
239(1)
2.6 Acknowledgements
240(1)
Bibliography
240(1)
3 Bokeh Effects on the SPU
241(10)
Serge Bernier
3.1 Introduction
241(1)
3.2 Bokeh Behind the Scenes
242(2)
3.3 The Sprite-Based Approach
244(2)
3.4 Let's SPUify This!
246(3)
3.5 Results
249(1)
3.6 Future Development
250(1)
Bibliography
250(1)
IV Mobile Devices
251(108)
Marius Bjorge
1 Realistic Real-Time Skin Rendering on Mobile
253(10)
Renaldas Zioma
Ole Ciliox
1.1 Introduction
253(1)
1.2 Overview
253(2)
1.3 Power of Mobile GPU
255(1)
1.4 Implementation
256(4)
1.5 Results
260(1)
1.6 Summary
261(2)
Bibliography
262(1)
2 Deferred Rendering Techniques on Mobile Devices
263(12)
Ashley Vaughan Smith
2.1 Introduction
263(1)
2.2 Review
263(1)
2.3 Overview of Techniques
264(6)
2.4 OpenGL ES Extensions
270(2)
2.5 Conclusion and Future Work
272(3)
Bibliography
272(3)
3 Bandwidth Efficient Graphics with ARM Mali GPUs
275(14)
Marius Bjorge
3.1 Introduction
275(1)
3.2 Shader Framebuffer Fetch Extensions
275(4)
3.3 Shader Pixel Local Storage
279(4)
3.4 Deferred Shading Example
283(4)
3.5 Conclusion
287(2)
Bibliography
288(1)
4 Efficient Morph Target Animation Using OpenGL ES 3.0
289(8)
James L. Jones
4.1 Introduction
289(1)
4.2 Previous Work
289(1)
4.3 Morph Targets
290(1)
4.4 Implementation
291(4)
4.5 Conclusion
295(1)
4.6 Acknowledgements
295(2)
Bibliography
295(2)
5 Tiled Deferred Blending
297(16)
Ramses Ladlani
5.1 Introduction
297(2)
5.2 Algorithm
299(1)
5.3 Implementation
300(6)
5.4 Optimizations
306(2)
5.5 Results
308(1)
5.6 Conclusion
309(4)
Bibliography
310(3)
6 Adaptive Scalable Texture Compression
313(14)
Stacy Smith
6.1 Introduction
313(1)
6.2 Background
313(1)
6.3 Algorithm
314(2)
6.4 Getting Started
316(1)
6.5 Using ASTC Textures
317(1)
6.6 Quality Settings
318(5)
6.7 Other color formats
323(2)
6.8 3D Textures
325(1)
6.9 Summary
325(2)
Bibliography
326(1)
7 Optimizing OpenCL Kernels for the ARM Mali-T600 GPUs
327(32)
Johan Gronqvist
Anton Lokhmotov
7.1 Introduction
327(1)
7.2 Overview of the OpenCL Programming Model
328(1)
7.3 ARM Mali-T600 GPU Series
328(3)
7.4 Optimizing the Sobel Image Filter
331(8)
7.5 Optimizing the General Matrix Multiplication
339(20)
Bibliography
357(2)
V 3D Engine Design
359(46)
Wessam Bahnassi
1 Quaternions Revisited
361(14)
Peter Sikachev
Vladimir Egorov
Sergey Makeev
1.1 Introduction
361(1)
1.2 Quaternion Properties Overview
361(1)
1.3 Quaternion Use Cases
362(1)
1.4 Normal Mapping
362(4)
1.5 Generic Transforms and Instancing
366(2)
1.6 Skinning
368(3)
1.7 Morph Targets
371(1)
1.8 Quaternion Format
371(2)
1.9 Comparison
373(1)
1.10 Conclusion
374(1)
1.11 Acknowledgements
374(1)
Bibliography
374(1)
2 gITF: Designing an Open-Standard Runtime Asset Format
375(18)
Fabrice Robinet
Remi Arnaud
Tony Parisi
Patrick Cozzi
2.1 Introduction
375(1)
2.2 Motivation
375(1)
2.3 Goals
376(3)
2.4 Birds-Eye View
379(1)
2.5 Integration of Buffer and Buffer View
380(2)
2.6 Code Flow for Rendering Meshes
382(1)
2.7 From Materials to Shaders
382(2)
2.8 Animation
384(1)
2.9 Content Pipeline
385(5)
2.10 Future Work
390(1)
2.11 Acknowledgements
391(2)
Bibliography
391(2)
3 Managing Transformations in Hierarchy
393(12)
Bartosz Chodorowski
Wojciech Sterna
3.1 Introduction
393(1)
3.2 Theory
394(5)
3.3 Implementation
399(3)
3.4 Conclusions
402(3)
Bibliography
403(2)
VI Compute
405(88)
Wolfgang Engel
1 Hair Simulation in TressFX
407(12)
Dongsoo Han
1.1 Introduction
407(1)
1.2 Simulation Overview
408(1)
1.3 Definitions
409(1)
1.4 Integration
410(1)
1.5 Constraints
410(2)
1.6 Wind and Collision
412(1)
1.7 Authoring Hair Asset
413(1)
1.8 GPU Implementation
414(2)
1.9 Conclusion
416(3)
Bibliography
417(2)
2 Object-Order Ray Tracing for Fully Dynamic Scenes
419(20)
Tobias Zirr
Hauke Rehfeld
Carsten Dachsbacher
2.1 Introduction
419(2)
2.2 Object-Order Ray Tracing Using the Ray Grid
421(1)
2.3 Algorithm
422(2)
2.4 Implementation
424(10)
2.5 Results
434(2)
2.6 Conclusion
436(3)
Bibliography
436(3)
3 Quadtrees on the GPU
439(12)
Jonathan Dupuy
Jean-Claude Iehl
Pierre Poulin
3.1 Introduction
439(1)
3.2 Linear Quadtrees
440(3)
3.3 Scalable Grids on the GPU
443(4)
3.4 Discussion
447(2)
3.5 Conclusion
449(2)
Bibliography
449(2)
4 Two-Level Constraint Solver and Pipelined Local Batching for Rigid Body Simulation on GPUs
451(18)
Takahiro Harada
4.1 Introduction
451(1)
4.2 Rigid Body Simulation
452(2)
4.3 Two-Level Constraint Solver
454(2)
4.4 GPU Implementation
456(3)
4.5 Comparison of Batching Methods
459(2)
4.6 Results and Discussion
461(8)
Bibliography
467(2)
5 Non-separable 2D, 3D, and 4D Filtering with CUDA
469(24)
Anders Eklund
Paul Dufort
5.1 Introduction
469(2)
5.2 Non-separable Filters
471(3)
5.3 Convolution vs. FFT
474(1)
5.4 Previous Work
475(1)
5.5 Non-separable 2D Convolution
475(5)
5.6 Non-separable 3D Convolution
480(1)
5.7 Non-separable 4D Convolution
481(1)
5.8 Non-separable 3D Convolution, Revisited
482(1)
5.9 Performance
483(3)
5.10 Conclusions
486(7)
Bibliography
490(3)
About the Editors 493(2)
About the Contributors 495
Wolfgang Engel