|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics
Randima Fernando, (Series Editor)

ISBN-10: 0321228324
ISBN-13:  9780321228321

Publisher:  Addison-Wesley Professional
Copyright:  2004
Format:  Cloth Bound w/CD-ROM; 816 pp
Published:  03/22/2004
Status: Instock



The availability of programmable GPUs has now made it possible to produce

graphics effects on any platform, even PCs, that rival those of the movie

studios. This facility is already taking hold in the game developer community. It

is equally important for any copmany interested in interactive applications.

Programmers need to know how best to exploit these new capabilities. This

book is the first comprehensive collection of practical techniques, tips, and

tricks for programming real-time computer graphics. Contributors include top

experts from both industry and academia. Full-color illustrations will be used

throughout the book in order to fully illustrate the stunning visual effects. The

aim is to remove the mystery behind complex effects and reveal the full

potential of programmable GPUs (graphics processing units, such as those sold

by NVIDIA) for interactive applications, including games, on any platform.

Code examples are written in the newly popular Cg language, and its Microsoft

twin, HLSL, as well as C++ and C.

The first comprehensive collection of practical techniques, tips, and tricks for programming real-time computer graphics.

° Removes the mystery behind complex effects and reveals the full potential of programmable GPUs (graphics processing units)

° Covers some of the coolest and most difficult effects, such as simulating fire, water, and waving blades of grass

° Contains advice from experts with major graphics companies such as Softimage, AliasWavefront, Industrial Light and Magic, and Sony



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.

View a Sample Chapter PDF:/samplechapter/0321228324.pdf

Randima (Randy) Fernando is Manager of Developer Education at NVIDIA.



GPU Gems has won a prestigious Front Line Award from Game Developer Magazine. The Front Line Awards recognize products that enable faster and more efficient game development, advancing the state of the art.

FULL COLOR THROUGHOUT!

“This collection of articles is particularly impressive for its depth and breadth. The book includes product-oriented case studies, previously unpublished state-of-the-art research, comprehensive tutorials, and extensive code samples and demos throughout.”
—Eric Haines, Author of Real-Time Rendering
GPU Gems is a cool toolbox of advanced graphics techniques. Novice programmers and graphics gurus alike will find the Gems practical, intriguing and useful.”
—Tim Sweeney, Lead Programmer of Unreal at Epic Games

GPU Gems is a compilation of articles covering practical real-time graphics techniques arising from the research and practice of cutting-edge developers. It focuses on the programmable graphics pipeline available in today’s graphics processing units (GPUs) and highlights quick and dirty tricks used by leading developers, as well as fundamental, performance-conscious techniques for creating advanced visual effects. The contributors and editors, collectively, bring countless years of experience to enlighten and propel the reader into the fascinating world of programmable real-time graphics.

Major topics covered include:

  • Natural effects
  • Lighting and shadows
  • Materials
  • Image processing
  • Performance and practicalities
  • Beyond triangles
  • Contributors are from the following universities and corporations:

  • Alias Systems
  • Brown University
  • Croteam
  • Cyan Worlds
  • Hochschule Bremen
  • Industrial Light & Magic
  • iXBT.com
  • Monolith Productions
  • New York University
  • Novarama
  • NVIDIA
  • Paralelo Computacao
  • Piranha Bytes
  • Pixar Animation Studios
  • Siemens Medical Solutions
  • Softimage Co.
  • Softlab-NSK
  • Sony Pictures Imageworks
  • Stanford University
  • UC Davis
  • UNC-Chapel Hill
  • Universitat Pompeu Fabra
  • University of Utah
  • University of Waterloo
  • The accompanying CD-ROM includes complementary examples and sample programs.



    Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.