- ホーム
- > 洋書
- > 英文書
- > Computer / General
Full Description
"GPU Gems 2 isn't meant to simply adorn your bookshelf-it's required reading for anyone trying to keep pace with the rapid evolution of programmable graphics. If you're serious about graphics, this book will take you to the edge of what the GPU can do."-Remi Arnaud, Graphics Architect at Sony Computer Entertainment"The topics covered in GPU Gems 2 are critical to the next generation of game engines."-Gary McTaggart, Software Engineer at Valve, Creators of Half-Life and Counter-StrikeThis sequel to the best-selling, first volume of GPU Gems details the latest programming techniques for today's graphics processing units (GPUs). As GPUs find their way into mobile phones, handheld gaming devices, and consoles, GPU expertise is even more critical in today's competitive environment. Real-time graphics programmers will discover the latest algorithms for creating advanced visual effects, strategies for managing complex scenes, and advanced image processing techniques. Readers will also learn new methods for using the substantial processing power of the GPU in other computationally intensive applications, such as scientific computing and finance. Twenty of the book's forty-eight chapters are devoted to GPGPU programming, from basic concepts to advanced techniques. Written by experts in cutting-edge GPU programming, this book offers readers practical means to harness the enormous capabilities of GPUs.Major topics covered include:Geometric Complexity Shading, Lighting, and Shadows High-Quality Rendering General-Purpose Computation on GPUs: A Primer Image-Oriented Computing Simulation and Numerical AlgorithmsContributors are from the following corporations and universities:1C: Maddox Games2015Apple ComputerArmstrong State UniversityClimax EntertainmentCrytekdiscreetETH ZurichGRAVIR/IMAG-INRIAGSC Game WorldLionhead StudiosLund UniversityMassachusetts Institute of Technologymental imagesMicrosoft ResearchNVIDIA CorporationPiranha BytesSiemens Corporate ResearchSiemens Medical SolutionsSimutronics CorporationSony Pictures ImageworksStanford UniversityStony Brook UniversityTechnische Universitat MunchenUniversity of California, DavisUniversity of North Carolina at Chapel HillUniversity of PotsdamUniversity of TokyoUniversity of TorontoUniversity of UtahUniversity of VirginiaUniversity of WaterlooVienna University of TechnologyVRVis Research CenterSection editors include NVIDIA engineers: Kevin Bjorke, Cem Cebenoyan, Simon Green, Mark Harris, Craig Kolb, and Matthias WlokaThe accompanying CD-ROM includes complementary examples and sample programs.
Contents
Foreword xxixPreface xxxiContributors xxxvPART I1Chapter 1: Toward Photorealism in Virtual Botany 7David Whatley, Simutronics Corporation1.1 Scene Management 71.2 The Grass Layer 111.3 The Ground Clutter Layer 171.4 The Tree and Shrub Layers 181.5 Shadowing 201.6 Post-Processing 221.7 Conclusion 241.8 References 24Chapter 2: Terrain Rendering Using GPU-Based Geometry Clipmaps 27Arul Asirvatham, Microsoft ResearchHugues Hoppe, Microsoft Research2.1 Review of Geometry Clipmaps 272.2 Overview of GPU Implementation 302.3 Rendering 322.4 Update 392.5 Results and Discussion 432.6 Summary and Improvements 432.7 References 44Chapter 3: Inside Geometry Instancing 47Francesco Carucci, Lionhead Studios3.1 Why Geometry Instancing? 483.2 Definitions 493.3 Implementation 533.4 Conclusion 653.5 References 67Chapter 4: Segment Buffering 69Jon Olick, 20154.1 The Problem Space 694.2 The Solution 704.3 The Method 714.4 Improving the Technique 724.5 Conclusion 724.6 References 73Chapter 5: Optimizing Resource Management with Multistreaming. 75Oliver Hoeller, Piranha BytesKurt Pelzer, Piranha Bytes5.1 Overview 765.2 Implementation 775.3 Conclusion 895.4 References 90Chapter 6: Hardware Occlusion Queries Made Useful 91Michael Wimmer, Vienna University of TechnologyJiri Bittner, Vienna University of Technology6.1 Introduction 916.2 For Which Scenes Are Occlusion Queries Effective? 926.3 What Is Occlusion Culling? 936.4 Hierarchical Stop-and-Wait Method 946.5 Coherent Hierarchical Culling 976.6 Optimizations 1056.7 Conclusion 1066.8 References 108Chapter 7: Adaptive Tessellation of Subdivision Surfaces withDisplacement Mapping 109Michael Bunnell, NVIDIA Corporation7.1 Subdivision Surfaces 1097.2 Displacement Mapping 1197.3 Conclusion 1227.4 References 122Chapter 8: Per-Pixel Displacement Mapping with Distance Functions 123William Donnelly, University of Waterloo8.1 Introduction 1238.2 Previous Work 1258.3 The Distance-Mapping Algorithm 1268.4 Computing the Distance Map 1308.5 The Shaders 1308.6 Results 1328.7 Conclusion 1348.8 References 135PART II: SHADING, LIGHTING, AND SHADOWS 137Chapter 9: Deferred Shading in S.T.A.L.K.E.R. 143Oles Shishkovtsov, GSC Game World9.1 Introduction 1439.2 The Myths 1459.3 Optimizations 1479.4 Improving Quality 1549.5 Antialiasing 1589.6 Things We Tried but Did Not Include in the Final Code 1629.7 Conclusion 1649.8 References 165Chapter 10: Real-Time Computation of Dynamic Irradiance Environment Maps 167Gary King, NVIDIA Corporation10.1 Irradiance Environment Maps 16710.2 Spherical Harmonic Convolution 17010.3 Mapping to the GPU 17210.4 Further Work 17510.5 Conclusion 17610.6 References 176Chapter 11: Approximate Bidirectional Texture Functions 177Jan Kautz, Massachusetts Institute of Technology11.1 Introduction 17711.2 Acquisition 17911.3 Rendering 18111.4 Results 18411.5 Conclusion 18711.6 References 187Chapter 12: Tile-Based Texture Mapping 189Li-Yi Wei, NVIDIA Corporation12.1 Our Approach 19112.2 Texture Tile Construction 19112.3 Texture Tile Packing 19212.4 Texture Tile Mapping 19512.5 Mipmap Issues 19712.6 Conclusion 19812.7 References 199Chapter 13: Implementing the mental images Phenomena Renderer on the GPU 201Martin-Karl Lefrancois, mental images13.1 Introduction 20113.2 Shaders and Phenomena 20213.3 Implementing Phenomena Using Cg 20513.4 Conclusion 22113.5 References 222Chapter 14: Dynamic Ambient Occlusion and Indirect Lighting 223Michael Bunnell, NVIDIA Corporation14.1 Surface Elements 22314.2 Ambient Occlusion 22514.3 Indirect Lighting and Area Lights 23114.4 Conclusion 23214.5 References 233Chapter 15: Blueprint Rendering and "Sketchy Drawings" 235Marc Nienhaus, University of Potsdam, Hasso-Plattner-InstituteJurgen Doellner, University of Potsdam, Hasso-Plattner-Institute15.1 Basic Principles 23615.2 Blueprint Rendering 23815.3 Sketchy Rendering 24415.4 Conclusion 25115.5 References 252Chapter 16: Accurate Atmospheric Scattering 253Sean O'Neil16.1 Introduction 25316.2 Solving the Scattering Equations 25416.3 Making It Real-Time 25816.4 Squeezing It into a Shader 26016.5 Implementing the Scattering Shaders 26216.6 Adding High-Dynamic-Range Rendering 26516.7 Conclusion 26616.8 References 267Chapter 17: Efficient Soft-Edged Shadows Using Pixel Shader Branching 269Yury Uralsky, NVIDIA Corporation17.1 Current Shadowing Techniques 27017.2 Soft Shadows with a Single Shadow Map 27117.3 Conclusion 28117.4 References 282Chapter 18: Using Vertex Texture Displacement for Realistic Water Rendering 283Yuri Kryachko, 1C:Maddox Games18.1 Water Models 28318.2 Implementation 28418.3 Conclusion 29418.4 References 294Chapter 19: Generic Refraction Simulation 295Tiago Sousa, Crytek19.1 Basic Technique 29619.2 Refraction Mask 29719.3 Examples 30019.4 Conclusion 30519.5 References 305PART III: HIGH-QUALITY RENDERING 307Chapter 20: Fast Third-Order Texture Filtering 313Christian Sigg, ETH ZurichMarkus Hadwiger, VRVis Research Center20.1 Higher-Order Filtering 31420.2 Fast Recursive Cubic Convolution 31520.3 Mipmapping 32020.4 Derivative Reconstruction 32420.5 Conclusion 32720.6 References 328Chapter 21: High-Quality Antialiased Rasterization 331Dan Wexler, NVIDIA CorporationEric Enderton, NVIDIA Corporation21.1 Overview 33121.2 Downsampling 33421.3 Padding 33621.4 Filter Details 33721.5 Two-Pass Separable Filtering 33821.6 Tiling and Accumulation 33921.7 The Code 33921.8 Conclusion 34421.9 References 344Chapter 22: Fast Prefiltered Lines 345Eric Chan, Massachusetts Institute of TechnologyFredo Durand, Massachusetts Institute of Technology22.1 Why Sharp Lines Look Bad 34522.2 Bandlimiting the Signal 34722.3 The Preprocess 34922.4 Runtime 35122.5 Implementation Issues 35522.6 Examples 35622.7 Conclusion 35822.8 References 359Chapter 23: Hair Animation and Rendering in the Nalu Demo 361Hubert Nguyen, NVIDIA CorporationWilliam Donnelly, NVIDIA Corporation23.1 Hair Geometry 36223.2 Dynamics and Collisions 36623.3 Hair Shading 36923.4 Conclusion and Future Work 37823.5 References 380Chapter 24: Using Lookup Tables to Accelerate Color Transformations 381Jeremy Selan, Sony Pictures Imageworks24.1 Lookup Table Basics 38124.2 Implementation 38624.3 Conclusion 39224.4 References 392Chapter 25: GPU Image Processing in Apple's Motion 393Pete Warden, Apple Computer25.1 Design 39325.2 Implementation 39725.3 Debugging 40625.4 Conclusion 40725.5 References 408Chapter 26: Implementing Improved Perlin Noise 409Simon Green, NVIDIA Corporation26.1 Random but Smooth 40926.2 Storage vs. Computation 41026.3 Implementation Details 41126.4 Conclusion 41526.5 References 416Chapter 27: Advanced High-Quality Filtering 417Justin Novosad, discreet27.1 Implementing Filters on GPUs 41727.2 The Problem of Digital Image Resampling 42227.3 Shock Filtering: A Method for Deblurring Images 43027.4 Filter Implementation Tips 43327.5 Advanced Applications 43327.6 Conclusion 43427.7 References 435Chapter 28: Mipmap-Level Measurement 437Iain Cantlay, Climax Entertainment28.1 Which Mipmap Level Is Visible? 43828.2 GPU to the Rescue 43928.3 Sample Results 44728.4 Conclusion 44828.5 References 449Streaming Architectures and Technology Trends 457John Owens, University of California, Davis29.1 Technology Trends 45729.2 Keys to High-Performance Computing 46129.3 Stream Computation 46429.4 The Future and Challenges 46829.5 References 470Chapter 30: The GeForce 6 Series GPU Architecture 471Emmett Kilgariff, NVIDIA CorporationRandima Fernando, NVIDIA Corporation30.1 How the GPU Fits into the Overall Computer System 47130.2 Overall System Architecture 47330.3 GPU Features 48130.4 Performance 48830.5 Achieving Optimal Performance 49030.6 Conclusion 491Chapter 31: Mapping Computational Concepts to GPUs 493Mark Harris, NVIDIA Corporation31.1 The Importance of Data Parallelism 49331.2 An Inventory of GPU Computational Resources 49731.3 CPU-GPU Analogies 50031.4 From Analogies to Implementation 50331.5 A Simple Example 50531.6 Conclusion 50831.7 References 508Chapter 32: Taking the Plunge into GPU Computing 509Ian Buck, Stanford University32.1 Choosing a Fast Algorithm 50932.2 Understanding Floating Point 51332.3 Implementing Scatter 51532.4 Conclusion 51832.5 References 519Chapter 33: Implementing Efficient Parallel Data Structures on GPUs 521Aaron Lefohn, University of California, DavisJoe Kniss, University of UtahJohn Owens, University of California, Davis33.1 Programming with Streams 52133.2 The GPU Memory Model 52433.3 GPU-Based Data Structures 52833.4 Performance Considerations 54033.5 Conclusion 54333.6 References 544Chapter 34: GPU Flow-Control Idioms 547Mark Harris, NVIDIA CorporationIan Buck, Stanford University34.1 Flow-Control Challenges 54734.2 Basic Flow-Control Strategies 54934.3 Data-Dependent Looping with Occlusion Queries 55434.4 Conclusion 555Chapter 35: GPU Program Optimization 557Cliff Woolley, University of Virginia35.1 Data-Parallel Computing 55735.2 Computational Frequency 56135.3 Profiling and Load Balancing 56835.4 Conclusion 57035.5 References 570Chapter 36: Stream Reduction Operations for GPGPU Applications 573Daniel Horn, Stanford University36.1 Filtering Through Compaction 57436.2 Motivation: Collision Detection 57936.3 Filtering for Subdivision Surfaces 58336.4 Conclusion 58736.5 References 587PART V: IMAGE-ORIENTED COMPUTING 591Chapter 37: Octree Textures on the GPU 595Sylvain Lefebvre, GRAVIR/IMAG-INRIASamuel Hornus, GRAVIR/IMAG-INRIAFabrice Neyret, GRAVIR/IMAG-INRIA37.1 A GPU-Accelerated Hierarchical Structure: The N3-Tree 59737.2 Application 1: Painting on Meshes 60237.3 Application 2: Surface Simulation 61137.4 Conclusion 61237.5 References 613Chapter 38: High-Quality Global Illumination Rendering Using Rasterization 615Toshiya Hachisuka, The University of Tokyo38.1 Global Illumination via Rasterization 61638.2 Overview of Final Gathering 61738.3 Final Gathering via Rasterization 62138.4 Implementation Details 62538.5 A Global Illumination Renderer on the GPU 62738.6 Conclusion 63238.7 References 632Chapter 39: Global Illumination Using Progressive Refinement Radiosity 635Greg Coombe, University of North Carolina at Chapel HillMark Harris, NVIDIA Corporation39.1 Radiosity Foundations 63639.2 GPU Implementation 63839.3 Adaptive Subdivision 64339.4 Performance 64539.5 Conclusion 64539.6 References 647Chapter 40: Computer Vision on the GPU 649James Fung, University of Toronto40.1 Introduction 64940.2 Implementation Framework 65040.3 Application Examples 65140.4 Parallel Computer Vision Processing 66440.5 Conclusion 66440.6 References 665Chapter 41: Deferred Filtering: Rendering from Difficult Data Formats 667Joe Kniss, University of UtahAaron Lefohn, University of California, DavisNathaniel Fout, University of California, Davis41.1 Introduction 66741.2 Why Defer? 66841.3 Deferred Filtering Algorithm 66941.4 Why It Works 67341.5 Conclusions: When to Defer 67341.6 References 674Chapter 42: Conservative Rasterization 677Jon Hasselgren, Lund UniversityTomas Akenine-Moeller, Lund UniversityLennart Ohlsson, Lund University42.1 Problem Definition 67842.2 Two Conservative Algorithms 67942.3 Robustness Issues 68642.4 Conservative Depth 68742.5 Results and Conclusions 68942.6 References 690PART VI: SIMULATION AND NUMERICAL ALGORITHMS 691Chapter 43: GPU Computing for Protein Structure Prediction 695Paulius Micikevicius, Armstrong Atlantic State University43.1 Introduction 69543.2 The Floyd-Warshall Algorithm and Distance-Bound Smoothing 69743.3 GPU Implementation 69843.4 Experimental Results 70143.5 Conclusions and Further Work 70143.6 References 702Chapter 44: A GPU Framework for Solving Systems of Linear Equations 703Jens Kruger, Technische Universitat MunchenRudiger Westermann, Technische Universitat Munchen44.1 Overview 70344.2 Representation 70444.3 Operations 70844.4 A Sample Partial Differential Equation 71444.5 Conclusion 71844.6 References 718Chapter 45: Options Pricing on the GPU 719Craig Kolb, NVIDIA CorporationMatt Pharr, NVIDIA Corporation45.1 What Are Options? 71945.2 The Black-Scholes Model 72145.3 Lattice Models 72545.4 Conclusion 73045.5 References 731Chapter 46: Improved GPU Sorting 733Peter Kipfer, Technische Universitat MunchenRudiger Westermann, Technische Universitat Munchen46.1 Sorting Algorithms 73346.2 A Simple First Approach 73446.3 Fast Sorting 73546.4 Using All GPU Resources 73846.5 Conclusion 74546.6 References 746Chapter 47: Flow Simulation with Complex Boundaries 747Wei Li, Siemens Corporate ResearchZhe Fan, Stony Brook UniversityXiaoming Wei, Stony Brook UniversityArie Kaufman, Stony Brook University47.1 Introduction 74747.2 The Lattice Boltzmann Method 74847.3 GPU-Based LBM 74947.4 GPU-Based Boundary Handling 75347.5 Visualization 75947.6 Experimental Results 76047.7 Conclusion 76147.8 References 763Chapter 48: Medical Image Reconstruction with the FFT 765Thilaka Sumanaweera, Siemens Medical Solutions USADonald Liu, Siemens Medical Solutions USA48.1 Background 76548.2 The Fourier Transform 76648.3 The FFT Algorithm 76748.4 Implementation on the GPU 76848.5 The FFT in Medical Imaging 77648.6 Conclusion 78348.7 References 784Index 785