GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics (Hardcover)
暫譯: GPU 寶典:即時圖形的程式設計技術、技巧與訣竅 (精裝版)

Randima Fernando (Series Editor)

  • 出版商: Addison Wesley
  • 出版日期: 2004-04-01
  • 售價: $2,880
  • 貴賓價: 9.5$2,736
  • 語言: 英文
  • 頁數: 816
  • 裝訂: Hardcover
  • ISBN: 0321228324
  • ISBN-13: 9780321228321
  • 相關分類: GPU
  • 已絕版

買這商品的人也買了...

相關主題

商品描述

Table of Contents:

Foreword.
Preface.
Contributors.

I. NATURAL EFFECTS.

1. Effective Water Simulation from Physical Models, Mark Finch, (Cyan Worlds).

 

Goals and Scope.

 

 

The Sum of Sines Approximation.

 

 

Authoring.

 

 

Runtime Processing.

 

 

Conclusion.

 

 

References.

 

2. Rendering Water Caustics, Juan Guardado, (NVIDIA) and Daniel Sanchez-Crespo, (Universitat Pompeu Fabra/Novarama Technology).

 

Introduction.

 

 

Computing Caustics.

 

 

Our Approach.

 

 

Implementation Using OpenGL.

 

 

Implementation Using a High-Level Shading Language.

 

 

Conclusion.

 

 

References.

 

3. Skin in the "Dawn" Demo, Curtis Beeson, (NVIDIA) and Kevin Bjorke, (NVIDIA).

 

Introduction.

 

 

Skin Shading.

 

 

Lighting the Scene.

 

 

How Skin Responds to Light.

 

 

Implementation.

 

 

Conclusion.

 

 

References.

 

4. Animation in the "Dawn" Demo, Curtis Beeson, (NVIDIA).

 

Introduction.

 

 

Mesh Animation.

 

 

Morph Targets.

 

 

Skinning.

 

 

Conclusion.

 

 

References.

 

5. Implementing Improved Perlin Noise, Ken Perlin, (New York University).

 

The Noise Function.

 

 

The Original Implementation.

 

 

Deficiencies of the Original Implementation.

 

 

Improvements to Noise.

 

 

How to Make Good Fake Noise in Pixel Shaders.

 

 

Making Bumps Without Looking at Neighboring Vertices.

 

 

Conclusion.

 

 

References.

 

6. Fire in the "Vulcan" Demo, Hubert Nguyen, (NVIDIA).

 

Creating Realistic Flames.

 

 

Implementing Animated Sprites.

 

 

Particle Motion.

 

 

Performance.

 

 

Post-Rendering Effects.

 

 

Conclusion.

 

7. Rendering Countless Blades of Waving Grass. Kurt Pelzer, (Piranha Bytes).

 

Introduction.

 

 

Overview.

 

 

Preparation of the Grass Objects.

 

 

Animation.

 

 

Conclusion.

 

 

Further Reading.

 

8. Simulating Diffraction, Jos Stam, (Alias Systems).

 

What Is Diffraction?

 

 

Implementation.

 

 

Results.

 

 

Conclusion.

 

 

References.

 

II. LIGHTING AND SHADOWS.

9. Efficient Shadow Volume Rendering, Morgan McGuire, (Brown University).

 

Introduction.

 

 

Program Structure.

 

 

Detailed Discussion.

 

 

Debugging.

 

 

Geometry Optimizations.

 

 

Fill-Rate Optimizations.

 

 

Future Shadows.

 

 

References.

 

10. Cinematic Lighting, Fabio Pellacini and Kiril Vidimce, (Pixar Animation Studios).

 

Introduction.

 

 

A Direct Lighting Illumination Model.

 

 

The Uberlight Shader.

 

 

Performance Concerns.

 

 

Conclusion.

 

 

References.

 

11. Shadow Map Antialiasing, Michael Bunnell, (NVIDIA) and Fabio Pellacini, (Pixar Animation Studios).

 

Introduction.

 

 

Percentage-Closer Filtering.

 

 

A Brute-Force Implementation.

 

 

Using Fewer Samples.

 

 

Why It Works.

 

 

Conclusion.

 

 

References.

 

12. Omnidirectional Shadow Mapping, Philipp S. Gerasimov, (iXBT.com).

 

Introduction.

 

 

The Shadow-Mapping Algorithm.

 

 

Implementation.

 

 

Adding Soft Shadows.

 

 

Conclusion.

 

 

References.

 

13. Generating Soft Shadows Using Occlusion Interval Maps, William Donnelly, (University of Waterloo) and Joe Demers, (NVIDIA).

 

The Gas Station.

 

 

The Algorithm.

 

 

Creating the Maps.

 

 

Rendering.

 

 

Limitations.

 

 

Conclusion.

 

 

References.

 

14. Perspective Shadow Maps: Care and Feeding, Simon Kozlov, (SoftLab-NSK).

 

Introduction.

 

 

Problems with the PSM Algorithm.

 

 

Tricks for Better Shadow Maps.

 

 

Results.

 

 

References.

 

15. Managing Visibility for Per-Pixel Lighting, John O'Rorke, (Monolith Productions).

 

Visibility in a GPU Book?

 

 

Batches and Per-Pixel Lighting.

 

 

Visibility As Sets.

 

 

Generating Sets.

 

 

Visibility for Fill Rate.

 

 

Practical Application.

 

 

Conclusion.

 

 

References.

 

III. MATERIALS.

16. Real-Time Approximations to Subsurface Scattering, Simon Green, (NVIDIA).

 

The Visual Effects of Subsurface Scattering.

 

 

Simple Scattering Approximations.

 

 

Simulating Absorption Using Depth Maps.

 

 

Texture-Space Diffusion.

 

 

Conclusion.

 

 

References.

 

17. Ambient Occlusion, Matt Pharr, (NVIDIA) and Simon Green, (NVIDIA).

 

Overview.

 

 

The Preprocessing Step.

 

 

Hardware-Accelerated Occlusion.

 

 

Rendering with Ambient Occlusion Maps.

 

 

Conclusion.

 

 

Further Reading.

 

18. Spatial BRDFs. David McAllister, (NVIDIA

 

What Is an SBRDF?

 

 

Details of the Representation.

 

 

Rendering Using Discrete Lights.

 

 

Rendering Using Environment Maps.

 

 

Conclusion.

 

 

References.

 

19. Image-Based Lighting, Kevin Bjorke, (NVIDIA).

 

Localizing Image-Based Lighting.

 

 

The Vertex Shader.

 

 

The Fragment Shader.

 

 

Diffuse IBL.

 

 

Shadows.

 

 

Using Localized Cube Maps As Backgrounds.

 

 

Conclusion.

 

 

Further Reading.

 

20. Texture Bombing, R. Steven Glanville, (NVIDIA).

 

Texture Bombing.

 

 

Technical Considerations.

 

 

Advanced Features.

 

 

Conclusion.

 

 

References.

 

IV. IMAGE PROCESSING.

21. Real-Time Glow, Greg James, (NVIDIA) and John O'Rorke, (Monolith Productions).

 

Overview of the Technique.

 

 

Rendering Glows: Step by Step.

 

 

Hardware-Specific Implementations.

 

 

Other Uses for Blur.

 

 

Adding the Effects to a Game Engine.

 

 

Conclusion.

 

 

References.

 

22. Color Controls, Kevin Bjorke, (NVIDIA).

 

Introduction.

 

 

Channel-Based Color Correction.

 

 

Multichannel Color Correction and Conversion.

 

 

References.

 

23. Depth of Field: A Survey of Techniques, Joe Demers, (NVIDIA).

 

What Is Depth of Field?

 

 

Ray-Traced Depth of Field.

 

 

Accumulation-Buffer Depth of Field.

 

 

Layered Depth of Field.

 

 

Forward-Mapped Z-Buffer Depth of Field.

 

 

Reverse-Mapped Z-Buffer Depth of Field.

 

 

Conclusion.

 

 

References.

 

24. High-Quality Filtering, Kevin Bjorke, (NVIDIA).

 

Quality vs. Speed.

 

 

Understanding GPU Derivatives.

 

 

Analytical Antialiasing and Texturing.

 

 

Conclusion.

 

 

References.

 

25. Fast Filter-Width Estimates with Texture Maps, Matt Pharr, (NVIDIA).

 

The Need for Derivatives in Shaders.

 

 

Computing Filter Width with Textures.

 

 

Discussion.

 

 

Further Reading.

 

26. The OpenEXR Image File Format, Florian Kainz, Rod Bogart, and Drew Hess, (Industrial Light and Magic).

 

What Is OpenEXR?

 

 

The OpenEXR File Structure.

 

 

OpenEXR Data Compression.

 

 

Using OpenEXR.

 

 

Linear Pixel Values.

 

 

Creating and Using HDR Images.

 

 

Conclusion.

 

 

References.

 

27. A Framework for Image Processing, Frank Jargstorff, (NVIDIA).

 

Introduction.

 

 

Framework Design.

 

 

Implementation.

 

 

A Sample Application.

 

 

Performance and Limitations.

 

 

Conclusion.

 

 

References.

 

V. PERFORMANCE AND PRACTICALITIES.

28. Graphics Pipeline Performance, Cem Cebenoyan, (NVIDIA).

 

Overview.

 

 

Locating the Bottleneck.

 

 

Optimization.

 

 

Conclusion.

 

 

References.

 

29. Efficient Occlusion Culling, Dean Sekulic, (Croteam).

 

What Is Occlusion Culling?

 

 

How Does Occlusion Query Work?

 

 

Beginning to Use Occlusion Queries.

 

 

One Step Further.

 

 

A Word About Bounding Boxes.

 

 

Other Issues.

 

 

A Little Reminder.

 

 

An Application: Lens Flares.

 

 

Conclusion.

 

 

References.

 

30. The Design of FX Composer, Christopher Maughan, (NVIDIA).

 

Tools Development.

 

 

Initial Features and Target Audience.

 

 

Object Design.

 

 

File Format.

 

 

User Interface.

 

 

Direct3D Graphics Implementation.

 

 

Scene Management.

 

 

Conclusion.

 

 

References.

 

31. Using FX Composer, Christopher Maughan, (NVIDIA).

 

Getting Started.

 

 

Sample Project.

 

 

Conclusion.

 

32. An Introduction to Shader Interfaces, Matt Pharr, (NVIDIA).

 

The Basics of Shader Interfaces.

 

 

A Flexible Description of Lights.

 

 

Material Trees.

 

 

Conclusion.

 

 

References.

 

33. Converting Production RenderMan Shaders to Real-Time, Stephen Marshall, (Sony Pictures Imageworks).

 

Introduction.

 

 

Lights.

 

 

The Vertex Program vs. the Fragment Program.

 

 

Using Vertex and Fragment Programs.

 

 

Optimization Techniques on the Fragment Program.

 

 

Results and Conclusions.

 

 

References.

 

34. Integrating Hardware Shading into Cinema 4D, Jorn Loviscach, (Hochschule Bremen).

 

Introduction.

 

 

Connecting Cinema 4D to CgFX.

 

 

Shader and Parameter Management.

 

 

Emulating the Offline Renderer.

 

 

Results and Performance.

 

 

Lessons Learned.

 

 

References.

 

35. Leveraging High-Quality Software Rendering Effects in Real-Time Applications, Alexandre Jean Claude, and Marc Stevens, (Softimage).

 

Introduction.

 

 

The Content Pipeline for Hardware Rendering.

 

 

Components of Hardware Rendering.

 

 

Generating the Components.

 

 

Test Case and Results.

 

 

Conclusion.

 

 

References.

 

36. Integrating Shaders into Applications, John O'Rorke, (Monolith Productions).

 

Introduction.

 

 

About Shaders.

 

 

The Anatomy of an Effect File.

 

 

Types of Shader Data.

 

 

Communicating with the Shader.

 

 

Extending the Effect File Format.

 

 

Conclusion.

 

 

References.

 

VI. BEYOND TRIANGLES.

37. A Toolkit for Computation on GPUs, Ian Buck, and Tim Purcell, (Stanford University).

 

Computing with the GPU.

 

 

Reduce.

 

 

Sort and Search.

 

 

Challenges.

 

 

Conclusion.

 

 

Further Reading.

 

38. Fast Fluid Dynamics Simulation on the GPU, Mark J. Harris, (University of North Carolina at Chapel Hill).

 

Introduction.

 

 

Mathematical Background.

 

 

Implementation.

 

 

Applications.

 

 

Extensions.

 

 

Conclusion.

 

 

References.

 

39. Volume Rendering Techniques, Milan Ikits, (University of Utah), Joe Kniss, (University of Utah), Aaron Lefohn, (University of California, Davis) and Charles Hansen, (University of Utah).

 

Introduction.

 

 

Volume Rendering.

 

 

Texture-Based Volume Rendering.

 

 

Implementation Details.

 

 

Advanced Techniques.

 

 

Performance Considerations.

 

 

Summary.

 

 

References.

 

40. Applying Real-Time Shading to 3D Ultrasound Visualization, Thilaka Sumanaweera, (Siemens Medical Solutions USA, Inc.).

 

Background.

 

 

Introduction.

 

 

Results.

 

 

Conclusion.

 

 

References.

 

41. Real-Time Stereograms, Fabio Policarpo, (Paralelo Computacao Ltda.).

 

What Is a Stereogram?

 

 

Creating a Single-Image Stereogram.

 

 

Sample Application.

 

 

References.

 

42. Deformers, Eugene d'Eon, (University of Waterloo).

 

What Is a Deformer?

 

 

Deforming on the GPU.

 

 

Limitations.

 

 

Performance.

 

 

Example: Wave Deformer.

 

 

Conclusion.

 

Index.

商品描述(中文翻譯)

目錄:

前言。

序言。

貢獻者。

I. 自然效果。

1. 從物理模型中有效的水模擬,Mark Finch,(Cyan Worlds)。

 

目標與範圍。

 

 

正弦和近似。

 

 

創作。

 

 

運行時處理。

 

 

結論。

 

 

參考文獻。

 

2. 渲染水的焦散,Juan Guardado,(NVIDIA)和Daniel Sanchez-Crespo,(Universitat Pompeu Fabra/Novarama Technology)。

 

介紹。

 

 

計算焦散。

 

 

我們的方法。

 

 

使用OpenGL的實現。

 

 

使用高級著色語言的實現。

 

 

結論。

 

 

參考文獻。

 

3. 在「黎明」演示中的皮膚,Curtis Beeson,(NVIDIA)和Kevin Bjorke,(NVIDIA)。

 

介紹。

 

 

皮膚著色。

 

 

場景照明。

 

 

皮膚如何對光作出反應。

 

 

實現。

 

 

結論。

 

 

參考文獻。

 

4. 在「黎明」演示中的動畫,Curtis Beeson,(NVIDIA)。

 

介紹。

 

 

網格動畫。

 

 

變形目標。

 

 

皮膚綁定。

 

 

結論。

 

 

參考文獻。

 

5. 實現改進的Perlin噪聲,Ken Perlin,(紐約大學)。

 

噪聲函數。

 

 

原始實現。

 

 

原始實現的缺陷。

 

 

對噪聲的改進。

 

 

如何在像素著色器中製作良好的假噪聲。

 

 

在不查看相鄰頂點的情況下製作隆起。

 

 

結論。

 

 

參考文獻。

 

6. 在「火山」演示中的火焰,Hubert Nguyen,(NVIDIA)。

 

創建真實的火焰。

 

 

實現動畫精靈。

 

 

粒子運動。

 

 

性能。

 

 

後處理效果。

 

 

結論。

 

7. 渲染無數搖曳的草葉。Kurt Pelzer,(Piranha Bytes)。

 

介紹。

 

 

概述。

 

 

草物件的準備。

 

 

動畫。

 

 

結論。

 

 

進一步閱讀。

 

8. 模擬衍射,Jos Stam,(Alias Systems)。

 

什麼是衍射?

 

 

實現。

 

 

結果。

 

 

結論。

 

 

參考文獻。

 

II. 照明與陰影。

9. 高效的陰影體渲染,Morgan McGuire,(布朗大學)。

 

介紹。

 

 

程序結構。

 

 

詳細討論。

 

 

除錯。

 

 

幾何優化。

 

 

填充率優化。

 

 

未來的陰影。

 

 

參考文獻。

 

10. 電影照明,Fabio Pellacini和Kiril Vidimce,(皮克斯動畫工作室)。

 

介紹。

 

 

直接照明模型。

 

 

Uberlight著色器。

 

 

性能考量。

 

 

結論。

 

 

參考文獻。

 

11. 陰影圖抗鋸齒,Michael Bunnell,(NVIDIA)和Fabio Pellacini,(皮克斯動畫工作室)。

 

介紹。

 

 

百分比接近過濾。

 

 

一個暴力實現。

 

 

使用更少的樣本。

 

 

為什麼它有效。

 

 

結論。

 

 

參考文獻。

 

12. 全向陰影映射,Philipp S. Gerasimov,(iXBT.com)。

 

介紹。

 

 

陰影映射算法。

 

 

實現。

 

 

添加柔和陰影。

 

 

結論。

 

 

參考文獻。

 

13. 使用遮蔽間隔圖生成柔和陰影,William Donnelly,(滑鐵盧大學)和Joe Demers,(NVIDIA)。

 

加油站。

 

 

算法。

 

 

創建圖。

 

 

渲染。

 

 

限制。

 

 

結論。

 

 

參考文獻。

 

14. 透視陰影圖:注意與維護,Simon Kozlov,(SoftLab-NSK)。

 

介紹。

 

 

PSM算法的問題。

 

 

改善陰影圖的技巧。

 

 

結果。

 

 

參考文獻。

 

15. 每像素照明的可見性管理,John O'Rorke,(Monolith Productions)。

 

GPU書中的可見性?

 

 

批次與每像素照明。

 

 

作為集合的可見性。

 

 

生成集合。

 

 

填充率的可見性。

 

 

實際應用。

 

 

結論。

 

 

參考文獻。

 

III. 材料。

16. 實時近似次表面散射,Simon Green,(NVIDIA)。

 

次表面散射的視覺效果。

 

 

簡單的散射近似。

 

 

使用深度圖模擬吸收。

 

 

紋理空間擴散。