GPU gems: [1] Programming techniques, tips, and tricks for real-time graphics
Gespeichert in:
Format: | Buch |
---|---|
Sprache: | English |
Veröffentlicht: |
Boston [u.a.]
Addison-Wesley
2006
|
Ausgabe: | 4. printing |
Schriftenreihe: | nVidia
|
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Systemvoraussetzungen: WinXP PC with a GeForceFX or more recent GPU |
Beschreibung: | XXXV, 765 S. zahlr. Ill., graph. Darst. 1 CD-ROM (12 cm) |
Internformat
MARC
LEADER | 00000nam a2200000zcc4500 | ||
---|---|---|---|
001 | BV023076095 | ||
003 | DE-604 | ||
005 | 00000000000000.0 | ||
007 | t | ||
008 | 080111s2006 ad|| |||| 00||| eng d | ||
035 | |a (DE-599)BVBBV023076095 | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a eng | |
245 | 1 | 0 | |a GPU gems |n [1] |p Programming techniques, tips, and tricks for real-time graphics |c ed. by Randima Fernando |
250 | |a 4. printing | ||
264 | 1 | |a Boston [u.a.] |b Addison-Wesley |c 2006 | |
300 | |a XXXV, 765 S. |b zahlr. Ill., graph. Darst. |e 1 CD-ROM (12 cm) | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a nVidia | |
500 | |a Systemvoraussetzungen: WinXP PC with a GeForceFX or more recent GPU | ||
700 | 1 | |a Fernando, Randima |e Sonstige |4 oth | |
700 | 1 | |a Pharr, Matt |e Sonstige |4 oth | |
773 | 0 | 8 | |w (DE-604)BV021866108 |g 1 |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016279188&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016279188 |
Datensatz im Suchindex
_version_ | 1804137321573908480 |
---|---|
adam_text | GPU GEMS PROGRAMMING TECHNIQUES, TIPS, AND TRICKS ORREAL-TIME GRAPHICS
EDITED BY RANDIMA FERNANDO NRADDISON-WESLEY TT BOSTON * SAN FRANCISCO *
NEW YORK * TORONTO * MONTREAL LONDON * MUNICH * PARIS * MADRID CAPETOWN
* SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FOREWORD XXVII
PREFACE XXIX CONTRIBUTORS XXXIII PARTI NATURAL EFFECTS L CHAPTEN
EFFECTIVE WATER SIMULATION FROM PHYSICAL MODELS 5 MARK FINCH, CYAN
WORLDS 1.1 GOALS AND SCOPE 5 1.2 THE SUM OF SINES APPROXIMATION 7 1.2.1
SELECTING THE WAVES 7 1.2.2 NORMALS AND TANGENTS 9 1.2.3 GEOMETRIE WAVES
11 1.2.4 TEXTURE WAVES 15 1.3 AUTHORING 18 1.3.1 USING DEPTH 19 1.3.2
OVERRIDES 21 1.3.3 EDGE-LENGTH FILTERING 21 1.3.4 TEXTURE COORDINATES 22
1.4 RUNTIME PROCESSING 23 1.4.1 BUMP-ENVIRONMEN T MAPPING PARAMETERS 23
1.4.2 VERTEX AND PIXEL PROCESSING 27 1.5 CONCLUSION 28 1.6 REFERENCES 28
CONTENTS VII CHAPTER 2 RENDERING WATER CAUSTICS 31 JUAN GUARDADO, NVIDIA
DANIEL SAENCHEZ-CRESPO, UNIVERSITAET POMPEU FABRA/NOVARAMA TECHNOLOGY 2.1
INTRODUCTION 3 1 2.2 COMPUTING CAUSTICS 3 2 2.3 OUR APPROACH 35 2.4
IMPLEMENTATION USING OPENGL 37 2.5 IMPLEMENTATION USING A HIGH-LEVEL
SHADING LANGUAGE 38 2.6 CONCLUSION 44 2.7 REFERENCES 44 CHAPTER 3 SKIN
IN THE DAWN DEMO 45 CURTIS BEESON, NVIDIA KEVIN BJORKE, NVIDIA 3.1
INTRODUCTION 45 3.2 SKIN SHADING 45 3.3 LIGHTING THE SCENE 47 3.3.1 A
HIGH-DYNAMIC-RANGE ENVIRONMENT 47 3.3.2 THE OCCLUSION TERM 49 3.4 HOW
SKIN RESPONDS TO LIGHT 5 3.5 IMPLEMENTATION 5 1 3.5.1 THE VERTEX SHADER
5 2 3.5.2 THE FRAGMENT SHADER 58 3.6 CONCLUSION 6 1 3.7 REFERENCES 1
CHAPTER 4 ANIMATION IN THE DAWN DEMO 63 CURTIS BEESON, NVIDIA 4.1
INTRODUCTION 3 4.2 MESH ANIMATION 63 4.3 MORPH TARGETS 65 4.3.1 MORPH
TARGETS IN A HIGH-LEVEL LANGUAGE 65 4.3.2 MORPH TARGET IMPLEMENTATION 67
4.4 SKINNING 69 4.4.I ACCUMULATED MATRIX SKINNING 7 1 4.5 CONCLUSION 7 2
4.6 REFERENCES 7 2 VIII CONTENTS CHAPTER 5 IMPLEMENTING IMPROVED PERLIN
NOISE 73 KEN PERLIN, NEW YORK UNIVERSITY 5.1 THE NOISE FUNCTION 73 5.2
THE ORIGINAL IMPLEMENTATION 74 5.3 DEFICIENCIES OF THE ORIGINAL
IMPLEMENTATION 75 5.4 IMPROVEMENTS TO NOISE 7 5.5 HOW TO MAKE GOOD FAKE
NOISE IN PIXEL SHADERS 80 5.6 MAKING BUMPS WITHOUT LOOKING AT
NEIGHBORING VERTICES 82 5.7 CONCLUSION * 4 5.8 REFERENCES 85 CHAPTER 6
FIRE IN THE VULCAN DEMO 87 HUBERT NGUYEN, NVIDIA 6.1 CREATING
REALISTIC FLAMES 87 6.2 IMPLEMENTING ANIMATED SPRITES 89 6.2.1 ANIMATING
FLAMES AND SMOKE 9 6.2.2 ADDING VARIETY TO THE FLAMES 9 2 6.2.3 STORING
THE ANIMATION 94 6.2.4 BLENDING FLAMES AND SMOKE 94 6.3 PARTICLE MOTION
94 6.4 PERFORMANCE 96 6.4.1 LAYER COMPOSITION 97 6.4.2 CUSTOM SPRITES 97
6.5 POST-RENDERING EFFECTS 99 6.5.1 GLOW 99 6.5.2 HEAT SHIMMER 101 6.5.3
GRAIN 101 6.5.4 THE FINAL PROGRAM 104 6.6 CONCLUSION 15 CHAPTER 7
RENDERING COUNTLESS BLADES OF WAVING GRASS 107 KURT PELZER, PIRANHA
BYTES 7.1 INTRODUCTION L7 7.2 OVERVIEW 10 7 7.3 PREPARATION OF THE
GRASS OBJECTS 18 7.3.1 GRASS TEXTURE 19 7.3.2 GRASS OBJECTS 109 7.4
ANIMATION 7.4.1 THE GENERAL IDEA 112 7.4.2 ANIMATION PER CLUSTER OF
GRASS OBJECTS 1*3 7.4.3 ANIMATION PER VERTEX N 5 7.4.4 ANIMATION PER
GRASS OBJECT 41 7 7.5 CONCLUSION 121 7.6 FURTHER READING CHAPTER 8
SIMULATING DIFFRACTION 12 3 JOS STAM, ALIAS SYSTEMS 8.1 WHAT IS
DIFFRACTION? 12 3 8.1.1 THE WAVE THEORY OF LIGHT 12 4 8.1.2 THE PHYSICS
OF DIFFRACTION 12 A 8.2 IMPLEMENTATION 1 8.3 RESULTS 131 8.4
CONCLUSION 3 8.5 REFERENCES 3 PART II LIGHTING AND SHADOWS *3J CHAPTER 9
EFFICIENT SHADOW VOLUME RENDERING *37 MORGAN MCGUIRE, BROWN UNIVERSITY
9.1 INTRODUCTION 37 9.1.1 WHERE TO USE SHADOW VOLUMES 13 9.2 PROGRAM
STRUCTURE * 9.2.1 MULTIPASS RENDERING 1 4 1 9.2.2 VERTEX BUFFER
STRUCTURE A 44 9.2.3 WORKING AT INFMITY A 45 9.3 DETAILED DISCUSSION 4
9.3.1 THE MATH 1 ^ 8 9.3.2 THE CODE 1 5 1 9.3.3 THE MARKSHADOWS METHOD
*5 X 9.3.4 THE F INDBACKF ACES METHOD !53 9.3.5 LIGHT AND DARK CAPS A 53
9.3.6 SIDES *55 9.4 DEBUGGING :* : . VV ****** ::.:* ! * *.:*** ;
*;-AEWMS I^TT-F?;OTW : T**W.AE ^-MS*S X CONTENTS 9.5 GEOMETRY
OPTIMIZATIONS 158 9.5.1 DIRECTIONAL LIGHTS ^5 9.5.2 POINT LIGHTS AND
SPOTLIGHTS *59 9.5.3 CULLING SHADOW VOLUMES 159 9.5.4 UNCAPPED
PERFORMANCE LOO 9.6 FILL-RATE OPTIMIZATIONS 1 2 9.6.1 FINITE VOLUMES I
2 9.6.2 XY CLIPPING 162 9.6.3 Z-BOUNDS L6 3 9.7 FUTURE SHADOWS 5 9.8
REFERENCES L 6 6 CHAPTERIO CINEMATIC LIGHTING FABIO PELLACINI, PIXAR
ANIMATION STUDIOS KIRIL VIDIMCE, PIXAR ANIMATION STUDIOS 10.1
INTRODUCTION 167 10.2 A DIRECT LIGHTING ILLUMINATION MODEL 169 10.2.1
SELECTION *7 10.2.2 COLOR 170 10.2.3 SHAPING X 7 10.2.4 SHADOWING 1 7
1 10.2.5 TEXTURING 1 73 10.2.6 RESULTS J 73 10.3 THE UBERLIGHT SHADER J
75 10.4 PERFORMANCE CONCERNS ^ 2 10.4.1 SPEED 1 ^ 2 10.4.2 EXPENSE 1
2 10.4.3 OPTIMIZATION 1 2 10.5 CONCLUSION 1 2 10.6 REFERENCES 1
3 CHAPTER U SHADOW MAP ANTIALIASING MICHAEL BUNNELL, NVIDIA FABIO
PELLACINI, PIXAR ANIMATION STUDIOS 11.1 INTRODUCTION 185 11.2
PERCENTAGE-CLOSER FILTERING *86 11.3 A BRUTE-FORCE IMPLEMENTATION 187
11.4 USING FEWER SAMPLES 1 11.5 WHYLT WORKS L8 9 11.6 CONCLUSION 1 9
2 11.7 REFERENCES 1 9 2 CHAPTERI2 OMNIDIRECTIONAL SHADOW MAPPING *93
PHILIPP S. GERASIMOV, IXBT.COM 12.1 INTRODUCTION A 93 12.1.1 STENCIL
SHADOWS 1 95 12.1.2 SHADOW MAPPING 195 12.2 THE SHADOW-MAPPING ALGORITHM
195 12.2.1 CONDIDONS 195 12.2.2 THE ALGORITHM 19 12.2.3 TEXTURE YORMAT
^97 12.2.4 THE SIZE OF THE SHADOW MAP 19^ 12.2.5 THE RANGE OF VALUES FOR
GEOMETRY 198 12.3 IMPLEMENTATION 1 9 12.3.1 SYSTEM REQUIREMENTS 19
12.3.2 RESOURCE CREATION 199 12.3.3 RENDERING PHASE 1: RENDERING INTO
THE SHADOW MAP 199 12.3.4 RENDERING PHASE 2: BASE RENDERING 20 0 12.3.5
THE LIGHTING CALCULATION 2 0 0 12.3.6 THE SHADOW CALCULATION 200
12.3.7 TIPS AND TRICKS * * * 201 12.3.8 FINALIZING THE SHADING PASS
(LIGHTING X SHADOW) 202 12.4 ADDING SOFT SHADOWS 2 0 2 12.5 CONCLUSION
20 3 12.6 REFERENCES 20 3 CHAPTERI3 GENERATING SOFT SHADOWS USING
OCCLUSION INTERVAL MAPS 205 WILLIAM DONNELLY, UNIVERSITY OFWATERLOO JOE
DEMERS, NVIDIA 13.1 THE GAS STATION 20 5 13.2 THE ALGORITHM 207 13.3
CREATING THE MAPS 2 0 XII CONTENTS 13.4 RENDERING 20 9 13.5
LIMITATIONS 211 13.6 CONCLUSION 21 3 13.7 REFERENCES 21 5 CHAPTER14
PERSPECTIVE SHADOW IVLAPS: CARE AND FEEDING SIMON KOZLOV, SOFTLAB-NSK
14.1 INTRODUCTION 21 7 14.2 PROBLEMS WITH THE PSM ALGORITHM 21 9 14.2.1
VIRTUAL CAMERAS 21 9 14.2.2 THE LIGHT CAMERA 22 5 14.2.3 BIASING 2 33
14.3 TRICKS FOR BETTER SHADOW MAPS 2 37 14.3.1 FILTERING 2 37 14.3.2
BLURRING 2 39 14.4 RESULTS 2 4 2 14.5 REFERENCES 2 44 CHAPTER 15
MANAGING VISIBILITY FOR PER-PIXEL LIGHTING JOHN O RORKE, MONOLITH
PRODUCTIONS 15.1 VISIBILITY IN A GPU BOOK? 245 15.2 BATCHES AND
PER-PIXEL LIGHTING 2 4 15.2.1 A PER-PIXEL EXAMPLE 246 15.2.2 JUST HOW
MANY BATCHES, ANYWAY? 247 15.3 VISIBILITY AS SETS 248 15.3.1 THE VISIBLE
SET 248 15.3.2 THE LIGHTS SET 248 15.3.3 THE ILLUMINATION SET 248 15.3.4
THE SHADOW SET 249 15.4 GENERATING SETS 2 5 15.4.1 THE VISIBLE SET 250
15.4.2 THE LIGHTS SET 250 15.4.3 THE ILLUMINATION SET 251 15.4.4 THE
SHADOW SET 251 15.5 VISIBILITY FOR FILL RATE 2 55 15.6 PRACTICAL
APPLICATION 2 55 15.7 CONCLUSION 2 5 15.8 REFERENCES 2 57 PARTIIL
_MAETERIALS___ 259 CHAPTER 16 REAL-TIME APPROXIMATIONS TO SUBSURFACE
SCATTERING 263 SIMON GREEN, NVIDIA 16.1 THE VISUAL EFFECTS OF SUBSURFACE
SCATTERING 263 16.2 SIMPLE SCATTERING APPROXIMATIONS 264 16.3 SIMULATING
ABSORPTION USING DEPTH MAPS 266 16.3.1 IMPLEMENTATION DETAILS 2JO 16.3.2
MORE SOPHISTICATED SCATTERING MODELS 271 16.4 TEXTURE-SPACE DIFFUSION
272 16.4.I POSSIBLE FUTURE WORK 275 16.5 CONCLUSION 277 16.6 REFERENCES
277 CHAPTER 17 AMBIENT OCCLUSION 279 MATT PHARR, NVIDIA SIMON GREEN,
NVIDIA 17.1 OVERVIEW 280 17.2 THE PREPROCESSING STEP 281 17.3
HARDWARE-ACCELERATED OCCLUSION 283 17.4 RENDERING WITH AMBIENT OCCLUSION
MAPS 284 17.4.I ENVIRONMENT LIGHTING 286 17.5 CONCLUSION 289 17.6
FURTHER READING 292 CHAPTER 18 SPATIAL BRDFS 293 DAVID MCALLISTER,
NVIDIA 18.1 WHAT IS AN SBRDF? 293 18.2 DETAILS OF THE REPRESENTATION 294
18.3 RENDERING USING DISCRETE LIGHTS 296 18.3.I TEXTURE SAMPLING 299
18.4 RENDERING USING ENVIRONMENT MAPS 299 18.4.1 THE MATH 300 18.4.2 THE
SHADER CODE 302 18.5 CONCLUSION 306 15.6 REFERENCES 306 XIV CONTENTS
CHAPTERI9 IMAGE-BASED LIGHTING 37 KEVIN BJORKE, NVIDIA 19.1 LOCALIZING
IMAGE-BASED LIGHTING 37 19.2 THE VERTEX SHADER 3 12 19.3 THE FRAGMENT
SHADER 3*4 19.3.I ADDITIONAL SHADER DETAILS 3*5 19.4 DIFFUSE IBL 317
19.5 SHADOWS 317 19.6 USING LOCALIZED CUBE MAPS AS BACKGROUNDS 3*8 19.7
CONCLUSION 3 2 0 19.8 FURTHER READING 3 21 CHAPTER 20 TEXTURE BOMBING
323 R. STEVEN GLANVILLE, NVIDIA 20.1 TEXTURE BOMBING 101 3 2 3 20.1.1
FINDING THE CELL 3 2 4 20.1.2 SAMPLING THE IMAGE 3 2 4 20.1.3 ADJACENT
CELLS IMAGES 3 2 5 20.1.4 IMAGE PRIORITY 3 2 20.1.5 PROCEDURAL IMAGES
3 2 20.1.6 RANDOM IMAGE SELECTION FROM MULTIPLE CHOICES 330 20.2
TECHNICAL CONSIDERATIONS 33 1 20.2.1 EFFICIENCY ISSUES 33 2 20.3
ADVANCED FEATURES 33 2 20.3.1 SCALING AND ROTATING 33 2 20.3.2
CONTROLLED VARIABLE DENSITY 333 20.3.3 PROCEDURAL 3D BOMBING 333 20.3.4
TIME-VARYING TEXTURES 335 20.3.5 VORONOI-RELATED CELLULAR METHODS 335
20.4 CONCLUSION 337 20.5 REFERENCES 33 CONTENTS XV PART IV IMAGE
PROCESSING 339 CHAPTER 21 REAL-TIME GLOW 343 GREG JAMES, NVIDIA JOHN
O RORKE, MONOLITH PRODUCTIONS 21.1 OVERVIEW OF THE TECHNIQUE 34^ 21.2
RENDERING GLOWS: STEP BY STEP 347 21.2.1 SPECIFYING AND RENDERING THE
SOURCES OF GLOW 347 21.2.2 BLURRING THE GLOW SOURCES 349 21.2.3 ADAPTING
THE SEPARABLE CONVOLUTION 349 21.2.4 CONVOLUTION ON THE GPU 351 21.3
HARDWARE-SPECIFIC IMPLEMENTATIONS 35 2 21.3.1 DIRECT3D 9 352 21.3.2
DIRECT3D 8 354 21.3.3 DIRECT3D 7 355 21.4 OTHER USES FOR BLUR 355 21.5
ADDING THE EFFECTS TO A GAME ENGINE 35& 21.5.1 RENDERING CONTEXT 35&
21.5.2 ALIASING ISSUES 357 21.5.3 DIRECTX 7 ACCURACY ISSUES 35& 21.5.4
THE AFTER-IMAGE EFFECT 359 21.5.5 THE VARIABLE RAMPING EFFECT 359 21.6
CONCLUSION 3^1 21.7 REFERENCES 361 CHAPTER 22 COLOR CONTROLS 363 KEVIN
BJORKE, NVIDIA 22.1 INTRODUCTION 3^3 22.2 CHANNEL-BASED COLOR CORRECTION
3^4 22.2.1 LEVELS 3^4 22.2.2 CURVES 366 22.3 MULTICHANNEL COLOR
CORRECTION AND CONVERSION 368 22.3.1 GRAYSCALE CONVERSION 3^9 22.3.2
COLOR-SPACE CONVERSIONS 37 22.4 REFERENCES 37 2 XVI CONTENTS CHAPTER 23
DEPTH OF FIELD: ASURVEY OFTECHNIQUES 375 JOEDEMERS, NVIDIA 23.1 WHAT IS
DEPTH OF FIELD? 375 23.1.1 CALCULATING THE CIRCLE OF CONFUSION 377
23.1.2 MAJOR TECHNIQUES 377 23.2 RAY-TRACED DEPTH OF FIELD 37^ 23.3
ACCUMULATION-BUFFER DEPTH OF FIELD 379 23.4 LAYERED DEPTH OF FIELD 379
23.4.1 ANALYSIS 3^0 23.5 FORWARD-MAPPED Z-BUFFER DEPTH OF FIELD 3^2
23.5.I ANALYSIS 3^2 23.6 REVERSE-MAPPED Z-BUFFER DEPTH OF FIELD 3^3
23.6.1 ANALYSIS 3^6 23.7 CONCLUSION 3 23.8 REFERENCES 3^9 CHAPTER24
HIGH-QUALITY FILTERING 39* KEVIN BJORKE, NVIDIA 24.1 QUALITY VS. SPEED
39 1 24.I.I FILTER KERNELS: IMAGE-TO-IMAGE CONVERSIONS 392 24.2
UNDERSTANDING GPU DERIVATIVES 45 24.3 ANALYTICAL ANTIALIASING AND
TEXTURING 47 24.3.I INTERACTING WITH GRAPHICS API ANTIALIASING 414 24.4
CONCLUSION 4*5 24.5 REFERENCE S 4*5 CHAPTER25 FAST FILTER-WIDTH
ESTIMATES WITH TEXTURE MAPS 417 MATT PHARR, NVIDIA 25.1 THE NEED FOR
DERIVATIVES IN SHADERS 4*8 25.2 COMPUTING FILTER WIDTH WITHTEXTURES 420
25.3 DISCUSSION 4 2 3 25.4 FURTHER READING 4 2 4 * . . * * . . * . . * *
. * * . . * . * * * CONTENTS XVII CHAPTER 26 THE OPENEXR IMAGE FILE
FORMAT 42 FLORIAN KAINZ, INDUSTRIELL LIGHT & MAGIC ROD BOGART,
INDUSTRIAL LIGHT & MAGIC DREWHESS, INDUSTRIAL LIGHT & MAGIC 26.1 WHAT IS
OPENEXR? 4 25 26.1.1 HIGN-DYNAMIC-RANGE IMAGES 425 26.1.2 A HALF
FORMAT 428 26.1.3 RANGE OF REPRESENTABLE VALUES 429 26.1.4 COLOR
RESOLUTION 429 26.1.5 C++ INTERFACE 429 26.2 THE OPENEXR FILE STRUCTURE
430 26.2.1 THE HEADER 430 26.2.2 THE PIXELS 430 26.3 OPENEXR DATA
COMPRESSION 431 26.4 USING OPENEXR 43! 26.4.1 READING AND DISPLAYING AN
OPENEXR IMAGE. . . 431 26.4.2 RENDERING AND WRIDNG AN OPENEXR IMAGE 433
26.5 LINEAR PIXEL VALUES 438 26.6 CREATING AND USING HDR IMAGES 441 26.7
CONCLUSION I M 26.8 REFERENCES A 43 CHAPTER 27 AE FRAMEWORK FOR IMAGE
PROCESSING , 44C FRANK JARGSTORFF, NVIDIA 27.1 INTRODUCTION 44C 27.2
FRAMEWORK DESIGN 447 27.2.1 OPERATORS AND FILTERS 448 27.2.2 IMAGE DATA
449 27.2.3 MISSING PIECES 451 27.3 IMPLEMENTATION 2 27.3.1 THE IMAGE
CLASS 454 27.3.2 THE IMAGEFILTER CLASS 458 27.3.3 IMPLEMENTING A FILTER
460 27.4 A SAMPLE APPLICATION 463 27.5 PERFORMANCE AND LIMITATIONS 465
27.6 CONCLUSION 467 27.7 REFERENCES 467 XVIII CONTENTS PART V
PJRFORMAJJICEA^^ CHAPTER 28 GRAPHICS PIPELINE PERFORMANCE 473 CEM
CEBENOYAN, NVIDIA 28.1 OVERVIEW 473 28.1.1 THE PIPELINE 473 28.1.2
METHODOLOGY 474 28.2 LOCARING DIE BOTDENECK 475 28.2.1 RASTER OPERATIONS
47 28.2.2 TEXTURE BANDWIDTH 476 28.2.3 FRAGMENT SHADING 476 28.2.4
VERTEX PROCESSING 477 28.2.5 VERTEX AND INDEX TRANSFER 47& 28.3
OPTIMIZATION 478 28.3.1 OPTIMIZING ON THE CPU 47^ 28.3.2 REDUCING THE
COST OF VERTEX TRANSFER 480 28.3.3 OPTIMIZING VERTEX PROCESSING 4^0
28.3.4 SPEEDING UP FRAGMENT SHADING 4^2 28.3.5 REDUCING TEXTURE
BANDWIDTH 4^3 28.3.6 OPTIMIZING FRAME-BUFFER BANDWIDTH 4^4 28.4
CONCLUSION 4^5 28.5 REFERENCES 4^6 CHAPTER 29 EFFICIENT OCCLUSION
CULLING - 487 DEAN SEKULIC, CROTEAM 29.1 WHAT IS OCCLUSION CULLING? 4^7
29.1.1 OCCLUSION QUERY 4^7 29.1.2 EARLY-Z REJECTION 4^8 29.2 HOW DOES
OCCLUSION QUERY WORK? 4^8 29.3 BEGINNING TO USE OCCLUSION QUERIES 4§9
29.3.1 HOW TO USE OCCLUSION QUERIES PROPERLY 49 29.3.2 OCCLUDERS VS.
OCCLUDEES 49 1 29.4 ONE STEP FURTHER 49 2 29.4.1 SORTING THINGS OUT 493
29.4.2 A SMALL CAVEAT 494 29.5 A WORD ABOUT BOUNDING BOXES 494 29.5.1
STADE OBJECTS 494 29.5.2 ANIMATED OBJECTS 495 29.6 OTHER ISSUES , _,-
29.6.1 CPU OVERHEADTOO HIGH 49 G 29.6.2 RENDERING AT HIGH RESOLUTIONS
497 29.6.3 FAST DEPTH-WRITING PERFORMANCE 407 29.6.4 FRUSTUM CULLING ^*G
29.7 A LITTLE REMINDER G 29.8 AN APPLICATION: LENS FLARES 49Q 29.8.1
RENDERING LENS FLARES THE OLD WAY 501 29.8.2 RENDERING LENS FLARES THE
NEW WAY 502 29.9 CONCLUSION 29.10 REFERENCES CHAPTER3O THE DESIGN OF FX
COMPOSER CHRISTOPHER MAUGHAN, NVIDIA 30.1 TOOLS DEVELOPMENT 30.2 INITIAL
FEATURES AND TARGET AUDIENCE C 0 6 30.3 OBJECT DESIGN 5O6 30.3.I
BENEFITS OF THE INTERFACE APPROACH C 0O 512 30.4 FILE FORMAT 30.5 USER
INTERFACE 30.6 DIRECT3D GRAPHICS IMPLEMENTATION 30.6.1 DEVICE WINDOWS
30.6.2 DIRECT3D EFFECTS 514 515 515 516 30.6.3 ID3DXEFFECTCOMPILER 5L6
30.6.4 ID3DXEFFECT 30.7 SCENE MANAGEMENT 30.7.I GEOMETRY PIPES 30.8
CONCLUSION 30.9 REFERENCES *517 *517 *517 518 519 CHAPTER3I USING FX
COMPOSER.......... CHRISTOPHER MAUGHAN, NVIDIA 31.1 GETTING STARTED
31.1.1 THE MATERIALS PANEL 505 521 521 523 3L1.2 THE SCENE GRAPH PANEL
524 31.1.3 THE EDITOR WINDOW 31.1.4 THE SHADERPERF PANEL 525 527
CONTENTS 31.1.5 THE PROPERTIES PANEL 5 2 8 31.1.6 THE SCENE PANEL 53
31.1.7 THE TEXTURES PANEL 53 1 31.1.8 THE TASKS PANEL 53 2 31.1.9 THE
LOG PANEL 533 31.2 SAMPLE PROJECT 533 31.3 CONCLUSION 535 CHAPTER32 AN
INTRODUCTION TO SHADER INTERFACES MATT PHARR, NVIDIA 32.1 THE BASICS OF
SHADER INTERFACES 539 32.2 A FLEXIBLE DESCRIPTION OF LIGHTS 54 2 32.3
MATERIAL TREES 545 32.4 CONCLUSION 549 32.5 REFERENCES 55 CHAPTER33
CONVERTING PRODUCTION RENDERMAN SHADERS TO REAL-TIME STEPHEN MARSHALL,
SONY PICTURES IMAGEWORKS 33.1 INTRODUCTION 551 33.I.I CONVERSION BY
EXAMPLE 55 2 33.2 LIGHTS 55 2 33.2.1 LIGHT SOURCES 55 2 33.2.2 LIGHT
SOURCE SHADERS 553 33.2.3 ADDITIONAL LIGHTING PARAMETERS 554 33.3 THE
VERTEX PROGRAM VS. THE FRAGMENT PROGRAM 555 33.4 USING VERTEX AND
FRAGMENT PROGRAMS 555 33.5 OPTIMIZATION TECHNIQUES ON THE FRAGMENT
PROGRAM 556 33.5.1 MOVING CODE TO THE APPLICATION LEVEL 557 33.5.2
MOVING CODE TO THE VERTEX PROGRAM 557 33.5.3 OPTIMIZING THROUGH TEXTURE
LOOKUPS 559 33.5.4 OPTIMIZING FOR VECTORIZATION 5^0 33.5.5 FINAL
OPTIMIZATIONS 5^0 33.6 RESULTS AND CONCLUSIONS 51 33.7 REFERENCES 55 *
* . * * * , : . . , * : , * . . ; * . . :..**.:.**.**.,. * . . * * *
..-. . . : * ; * , . * * , : - . . . * ***:,*...*. * * - . . : .
CHAPTER34 INTEGRATING HARDWARE SHADING INTO CINEMA 4D 567 JOERN
LOVISCACH, HOCHSCHULE BREMEN 34- 1 INTRODUCTION 567 34.2 CONNECTING
CINEMA 4D TO CGFX 570 34.3 SHADER AND PARAMETER MANAGEMENT 572 34.4
EMULATING THE OFFLINE RENDERER 573 34.5 RESULTS AND PERFORMANCE 577 34-6
LESSONS LEARNED 578 34-7 REFERENCES 580 CHAPTER35 LEVERAGING
HIGH-QUALITY SOFTWARE RENDERING EFFECTS IN REAT-TIME APPLICATIONS 581
ALEXANDRE JEAN CLAUDE, SOFTIMAGE MARC STEVENS, SOFTIMAGE 35.1
INTRODUCTION 581 35.2 THE CONTENT PIPELINE FOR HARDWARE RENDERING 582
35.3 COMPONENTS OF HARDWARE RENDERING 584 35.3.1 GEOMETRIE DATA 584
35.3.2 ATTRIBUTE MAPS 584 35-4 GENERATING THE COMPONENTS 587 35.4.1
CREATING THE GEOMETRY 588 35.4.2 RENDERING TO TEXTURES AND VERTICES 588
35.5 TEST CASE AND RESULTS 593 35.6 CONCLUSION 598 35-7 REFERENCES 599
CHAPTER36 INTEGRATING SHADERS INTO APPLICATIONS 601 JOHN O RORKE,
MONOLITH PRODUCTIONS 36.1 INTRODUCTION 601 36.2 ABOUT SHADERS 602 36.2.I
SHADER LANGUAGES 602 3&3 TW KMSOTO^ C-&SIFISXY S. ^5 36.3.1
VARIABLES 605 36.3.2 STRUCTURES 606 36.3.3 PASSES 606 36.3.4 TECHNIQUES
606 36.3.5 ANNOTATIONS 606 XXII CONTENTS * *!.* .*..;:; . * - , * * * *
.. . - * J . 36.4 TYPES OF SHADER DATA 07 36.4.1 SCENE INFORMATION
608 36.4.2 MATERIALS 608 36.4.3 RENDERER CONTEXT 608 36.4.4 VERTEX DATA
609 36.5 COMMUNICATING WITH DIE SHADER 609 36.5.1 SCENE INFORMATION 609
36.5.2 MATERIAL PARAMETERS 6LO 36.5.3 VERTEX FORMAT 6LL 36.5.4 CONTEXT
6L2 36.5.5 TECHNIQUES VS. PASSES FOR CONTEXT 613 36.6 EXTENDING THE
EFFECT FILE FORMAT 613 36.6.1 SUPPORTING THE PREPROCESSOR 613 36.6.2
SUPPORTING SHADER VARIATIONS 614 36.6.3 ADDING SHADER INHERITANCE 615
36.7 CONCLUSION 615 36.8 REFERENCES 615 PART VI BEYONDTRIANGLES 617
CHAPTER37 A TOOLKIT FOR COMPUTATION ON GPUS . 621 LAN BUECK, STANFORD
UNIVERSITY TIM PURCELL, STANFORD UNIVERSITY 37.1 COMPUTING WITH THE GPU
621 37.1.1 THE PROGRAMMING MODEL 622 37.1.2 PARALLEL PROGRAMMING 623
37.1.3 ADVANCED GPU PROGRAMMING 624 37.2 REDUCE 625 37.2.1 PARALLEL
REDUCTIONS 625 37.2.2 REDUCE TIDBITS 626 37.3 SORT AND SEARCH 627 37.3.1
BITONIC MERGE SORT 627 37.3.2 BINARY SEARCH 630 37.4 CHALLENGES 633
37.4.1 LIMITED OUTPUTS 633 37.4.2 SLOW READBACK 633 37.4.3 GPU VS. CPU
634 37.5 CONCLUSION 34 37.6 FURTHER READING 635 CONTENTS XXIII
CHAPTER38 FAST FLUID DYNAMICS SIMULATION ON THE GPU 637 MARKJ. HARRIS,
UNIVERSITYOF NORTH CAROLINA ATCHAPEL HILL 38.1 INTRODUCTION 607 38.1.1
OUR GOAL 638 38.1.2 OUR ASSUMPTIONS 638 38.1.3 OUR APPROACH 639 38.2
MATHEMATICAL BACKGROUND 639 38.2.1 THE NAVIER-STOKES EQUATIONS FOR
INCOMPRESSIBLE FLOW 641 38.2.2 TERMS IN THE NAVIER-STOKES EQUATIONS 642
38.2.3 A BRIEF REVIEW OF VECTOR CALCULUS 642 38.2.4 SOLVING THE
NAVIER-STOKES EQUATIONS 644 38.3 IMPLEMENTATION 650 38.3.1
CPU-GPUANALOGIES 651 38.3.2 SLAB OPERATIONS 653 38.3.3 IMPLEMENTATION IN
FRAGMENT PROGRAMS 653 38.4 APPLICATIONS 659 38.4.1 SIMULATING LIQUIDS
AND GASES 660 38.4.2 BUOYANCY AND CONVECTION 660 38.5 EXTENSIONS 66L
38.5.1 VORTICITY CONFINEMENT 662 38.5.2 THREE DIMENSIONS 663 38.5.3
STAGGERED GRID 663 38.5.4 ARBITRARY BOUNDARIES 664 38.5.5 FREE SURFACE
FLOW 664 38.6 CONCLUSION 664 38.7 REFERENCES 665 CHAPTER39 VOLUME
RENDERINGTECHNIQUES 667 MILAN IKITS, UNIVERSITYOF UTAH JOE KNISS,
UNIVERSITYOF UTAH AARON LEFOHN, UNIVERSITYOF CALIFORNIA, DAVIS CHARLES
HANSEN, UNIVERSITYOF UTAH 39.1 INTRODUCTION 667 39.2 VOLUME RENDERING
668 39.3 TEXTURE-BASED VOLUME RENDERING 670 39.3.1 A SIMPLE EXAMPLE 673
XXIV CONTENTS 39-4 IMPLEMENTATION DETAILS 674 39.4.1 DATA REPRESENTATION
AND PROCESSING 674 39.4.2 PROXY GEOMETRY 676 39.4.3 RENDERING 678 39.5
ADVANCED TECHNIQUES 68L 39.5.1 VOLUMETRIE LIGHTING 682 39.5.2 PROCEDURAL
RENDERING 687 39.6 PERFORMANCE CONSIDERATIONS 688 39.6.I RASTERIZATION
BOTTLENECKS 688 39.7 SUMMARY 690 39.8 REFERENCES 690 CHAPTER^O APPLYING
REAL-TIME SHADING TO 3D ULTRASOUND VISUALIZATION ..... 693 THILAKA
SUMANAWEERA, SIEMENS MEDICAL SOLUTIONS USA, INC. 40.1 BACKGROUND 693
40.2 INTRODUCTION 696 40.2.1 VOLUME RENDERING DATA IN A CARTESIAN GRID
696 40.2.2 VOLUME RENDERING DATA IN PYRAMIDAL GRIDS 699 40.3 RESULTS 706
40.4 CONCLUSION 76 40.5 REFERENCES 77 CHAPTER4I REAL-TIME STEREOGRAMS
709 FABIO POLICARPO, PARALELO COMPUTACAEO LTDA. 41.1 WHAT IS A
STEREOGRAM? 709 41.1.1 STEREO PHOTOGRAPHY 79 41.1.2 RANDOM-DOT
STEREOGRAMS 7 10 41.1.3 SINGLE-IMAGE STEREOGRAMS 7 11 41.2 CREATING A
SINGLE-IMAGE STEREOGRAM 7^3 41.2.1 PARAMETERS 7^3 41.2.2 RENDERING 7*5
41.2.3 CREATING ANIMATED SINGLE-IMAGE STEREOGRAMS 717 41.2.4 FRAGMENT
PROGRAM 7*9 41.3 SAMPLE APPLICATION 7 21 41.3.I APPLICATION OPTIONS 7 21
41.4 REFERENCES 7 22 CONTENTS XXV CHAPTER42 DEFORMERS 723 EUGENE D EON,
UNIVERSITY OFWATERLOO 42.1 WHAT IS A DEFORMER? 723 42.1.1 MATHEMATICAL
DEFINITION 724 42.2 DEFORMING ON THE GPU 725 42.2.1 FORMULATING THE
DEFORMER 725 42.2.2 WRITING THE VERTEX PROGRAM 725 42.2.3 DEFORMING
NORMALS 726 42.3 LIMITATIONS 729 42.4 PERFORMANCE 729 42.5 EXAMPLE: WAVE
DEFORMER 730 42.6 CONCLUSION 732 INDEX 733 * * * . . * . * . .
*.*...*.! . ... **,..**. ! * * . , * . IV. ****** *..:*,.., * ^ . ^
F L S AE V I L ^ ^ XXVI CONTENTS
|
adam_txt |
GPU GEMS PROGRAMMING TECHNIQUES, TIPS, AND TRICKS ORREAL-TIME GRAPHICS
EDITED BY RANDIMA FERNANDO NRADDISON-WESLEY TT BOSTON * SAN FRANCISCO *
NEW YORK * TORONTO * MONTREAL LONDON * MUNICH * PARIS * MADRID CAPETOWN
* SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FOREWORD XXVII
PREFACE XXIX CONTRIBUTORS XXXIII PARTI NATURAL EFFECTS L CHAPTEN
EFFECTIVE WATER SIMULATION FROM PHYSICAL MODELS 5 MARK FINCH, CYAN
WORLDS 1.1 GOALS AND SCOPE 5 1.2 THE SUM OF SINES APPROXIMATION 7 1.2.1
SELECTING THE WAVES 7 1.2.2 NORMALS AND TANGENTS 9 1.2.3 GEOMETRIE WAVES
11 1.2.4 TEXTURE WAVES 15 1.3 AUTHORING 18 1.3.1 USING DEPTH 19 1.3.2
OVERRIDES 21 1.3.3 EDGE-LENGTH FILTERING 21 1.3.4 TEXTURE COORDINATES 22
1.4 RUNTIME PROCESSING 23 1.4.1 BUMP-ENVIRONMEN T MAPPING PARAMETERS 23
1.4.2 VERTEX AND PIXEL PROCESSING 27 1.5 CONCLUSION 28 1.6 REFERENCES 28
CONTENTS VII CHAPTER 2 RENDERING WATER CAUSTICS 31 JUAN GUARDADO, NVIDIA
DANIEL SAENCHEZ-CRESPO, UNIVERSITAET POMPEU FABRA/NOVARAMA TECHNOLOGY 2.1
INTRODUCTION 3 1 2.2 COMPUTING CAUSTICS 3 2 2.3 OUR APPROACH 35 2.4
IMPLEMENTATION USING OPENGL 37 2.5 IMPLEMENTATION USING A HIGH-LEVEL
SHADING LANGUAGE 38 2.6 CONCLUSION 44 2.7 REFERENCES 44 CHAPTER 3 SKIN
IN THE "DAWN" DEMO 45 CURTIS BEESON, NVIDIA KEVIN BJORKE, NVIDIA 3.1
INTRODUCTION 45 3.2 SKIN SHADING 45 3.3 LIGHTING THE SCENE 47 3.3.1 A
HIGH-DYNAMIC-RANGE ENVIRONMENT 47 3.3.2 THE OCCLUSION TERM 49 3.4 HOW
SKIN RESPONDS TO LIGHT 5 3.5 IMPLEMENTATION 5 1 3.5.1 THE VERTEX SHADER
5 2 3.5.2 THE FRAGMENT SHADER 58 3.6 CONCLUSION 6 1 3.7 REFERENCES 1
CHAPTER 4 ANIMATION IN THE "DAWN" DEMO 63 CURTIS BEESON, NVIDIA 4.1
INTRODUCTION "3 4.2 MESH ANIMATION 63 4.3 MORPH TARGETS 65 4.3.1 MORPH
TARGETS IN A HIGH-LEVEL LANGUAGE 65 4.3.2 MORPH TARGET IMPLEMENTATION 67
4.4 SKINNING 69 4.4.I ACCUMULATED MATRIX SKINNING 7 1 4.5 CONCLUSION 7 2
4.6 REFERENCES 7 2 VIII CONTENTS CHAPTER 5 IMPLEMENTING IMPROVED PERLIN
NOISE 73 KEN PERLIN, NEW YORK UNIVERSITY 5.1 THE NOISE FUNCTION 73 5.2
THE ORIGINAL IMPLEMENTATION 74 5.3 DEFICIENCIES OF THE ORIGINAL
IMPLEMENTATION 75 5.4 IMPROVEMENTS TO NOISE 7 5.5 HOW TO MAKE GOOD FAKE
NOISE IN PIXEL SHADERS 80 5.6 MAKING BUMPS WITHOUT LOOKING AT
NEIGHBORING VERTICES 82 5.7 CONCLUSION * 4 5.8 REFERENCES 85 CHAPTER 6
FIRE IN THE "VULCAN" DEMO 87 HUBERT NGUYEN, NVIDIA 6.1 CREATING
REALISTIC FLAMES 87 6.2 IMPLEMENTING ANIMATED SPRITES 89 6.2.1 ANIMATING
FLAMES AND SMOKE 9 6.2.2 ADDING VARIETY TO THE FLAMES 9 2 6.2.3 STORING
THE ANIMATION 94 6.2.4 BLENDING FLAMES AND SMOKE 94 6.3 PARTICLE MOTION
94 6.4 PERFORMANCE 96 6.4.1 LAYER COMPOSITION 97 6.4.2 CUSTOM SPRITES 97
6.5 POST-RENDERING EFFECTS 99 6.5.1 GLOW 99 6.5.2 HEAT SHIMMER 101 6.5.3
GRAIN 101 6.5.4 THE FINAL PROGRAM 104 6.6 CONCLUSION 15 CHAPTER 7
RENDERING COUNTLESS BLADES OF WAVING GRASS 107 KURT PELZER, PIRANHA
BYTES 7.1 INTRODUCTION L7 7.2 OVERVIEW 10 7 7.3 PREPARATION OF THE
GRASS OBJECTS 18 7.3.1 GRASS TEXTURE 19 7.3.2 GRASS OBJECTS 109 7.4
ANIMATION 7.4.1 THE GENERAL IDEA 112 7.4.2 ANIMATION PER CLUSTER OF
GRASS OBJECTS 1*3 7.4.3 ANIMATION PER VERTEX N 5 7.4.4 ANIMATION PER
GRASS OBJECT 41 7 7.5 CONCLUSION 121 7.6 FURTHER READING CHAPTER 8
SIMULATING DIFFRACTION 12 3 JOS STAM, ALIAS SYSTEMS 8.1 WHAT IS
DIFFRACTION? 12 3 8.1.1 THE WAVE THEORY OF LIGHT 12 4 8.1.2 THE PHYSICS
OF DIFFRACTION 12 A 8.2 IMPLEMENTATION 1 8.3 RESULTS 131 8.4
CONCLUSION 3 8.5 REFERENCES 3 PART II LIGHTING AND SHADOWS *3J CHAPTER 9
EFFICIENT SHADOW VOLUME RENDERING *37 MORGAN MCGUIRE, BROWN UNIVERSITY
9.1 INTRODUCTION 37 9.1.1 WHERE TO USE SHADOW VOLUMES 13 9.2 PROGRAM
STRUCTURE * 9.2.1 MULTIPASS RENDERING 1 4 1 9.2.2 VERTEX BUFFER
STRUCTURE A 44 9.2.3 WORKING AT INFMITY A 45 9.3 DETAILED DISCUSSION 4
9.3.1 THE MATH 1 ^ 8 9.3.2 THE CODE 1 5 1 9.3.3 THE MARKSHADOWS METHOD
*5 X 9.3.4 THE F INDBACKF ACES METHOD !53 9.3.5 LIGHT AND DARK CAPS A 53
9.3.6 SIDES *55 9.4 DEBUGGING " :* : . VV ****** ::.:* ! * *.:*** ;
*;-AEWMS I^TT-F?;OTW : T**W.AE ^-MS*S X CONTENTS 9.5 GEOMETRY
OPTIMIZATIONS 158 9.5.1 DIRECTIONAL LIGHTS ^5 9.5.2 POINT LIGHTS AND
SPOTLIGHTS *59 9.5.3 CULLING SHADOW VOLUMES 159 9.5.4 UNCAPPED
PERFORMANCE LOO 9.6 FILL-RATE OPTIMIZATIONS 1 2 9.6.1 FINITE VOLUMES I"
2 9.6.2 XY CLIPPING 162 9.6.3 Z-BOUNDS L6 3 9.7 FUTURE SHADOWS " 5 9.8
REFERENCES L 6 6 CHAPTERIO CINEMATIC LIGHTING FABIO PELLACINI, PIXAR
ANIMATION STUDIOS KIRIL VIDIMCE, PIXAR ANIMATION STUDIOS 10.1
INTRODUCTION 167 10.2 A DIRECT LIGHTING ILLUMINATION MODEL 169 10.2.1
SELECTION *7 10.2.2 COLOR 170 10.2.3 SHAPING X 7 10.2.4 SHADOWING 1 7
1 10.2.5 TEXTURING 1 73 10.2.6 RESULTS J 73 10.3 THE UBERLIGHT SHADER J
75 10.4 PERFORMANCE CONCERNS ^ 2 10.4.1 SPEED 1 ^ 2 10.4.2 EXPENSE 1
2 10.4.3 OPTIMIZATION 1 2 10.5 CONCLUSION 1 2 10.6 REFERENCES 1
3 CHAPTER U SHADOW MAP ANTIALIASING MICHAEL BUNNELL, NVIDIA FABIO
PELLACINI, PIXAR ANIMATION STUDIOS 11.1 INTRODUCTION 185 11.2
PERCENTAGE-CLOSER FILTERING *86 11.3 A BRUTE-FORCE IMPLEMENTATION 187
11.4 USING FEWER SAMPLES 1 11.5 WHYLT WORKS L8 9 11.6 CONCLUSION 1 9
2 11.7 REFERENCES 1 9 2 CHAPTERI2 OMNIDIRECTIONAL SHADOW MAPPING *93
PHILIPP S. GERASIMOV, IXBT.COM 12.1 INTRODUCTION A 93 12.1.1 STENCIL
SHADOWS 1 95 12.1.2 SHADOW MAPPING 195 12.2 THE SHADOW-MAPPING ALGORITHM
195 12.2.1 CONDIDONS 195 12.2.2 THE ALGORITHM 19 12.2.3 "TEXTURE YORMAT
^97 12.2.4 THE SIZE OF THE SHADOW MAP 19^ 12.2.5 THE RANGE OF VALUES FOR
GEOMETRY 198 12.3 IMPLEMENTATION 1 9 12.3.1 SYSTEM REQUIREMENTS 19
12.3.2 RESOURCE CREATION 199 12.3.3 RENDERING PHASE 1: RENDERING INTO
THE SHADOW MAP 199 12.3.4 RENDERING PHASE 2: BASE RENDERING 20 0 12.3.5
THE LIGHTING CALCULATION 2 0 0 12.3.6 THE SHADOW CALCULATION 200
12.3.7 TIPS AND TRICKS * * * 201 12.3.8 FINALIZING THE SHADING PASS
(LIGHTING X SHADOW) 202 12.4 ADDING SOFT SHADOWS 2 0 2 12.5 CONCLUSION
20 3 12.6 REFERENCES 20 3 CHAPTERI3 GENERATING SOFT SHADOWS USING
OCCLUSION INTERVAL MAPS 205 WILLIAM DONNELLY, UNIVERSITY OFWATERLOO JOE
DEMERS, NVIDIA 13.1 THE GAS STATION 20 5 13.2 THE ALGORITHM 207 13.3
CREATING THE MAPS 2 0 XII CONTENTS 13.4 RENDERING 20 9 13.5
LIMITATIONS 211 13.6 CONCLUSION 21 3 13.7 REFERENCES 21 5 CHAPTER14
PERSPECTIVE SHADOW IVLAPS: CARE AND FEEDING SIMON KOZLOV, SOFTLAB-NSK
14.1 INTRODUCTION 21 7 14.2 PROBLEMS WITH THE PSM ALGORITHM 21 9 14.2.1
VIRTUAL CAMERAS 21 9 14.2.2 THE LIGHT CAMERA 22 5 14.2.3 BIASING 2 33
14.3 TRICKS FOR BETTER SHADOW MAPS 2 37 14.3.1 FILTERING 2 37 14.3.2
BLURRING 2 39 14.4 RESULTS 2 4 2 14.5 REFERENCES 2 44 CHAPTER 15
MANAGING VISIBILITY FOR PER-PIXEL LIGHTING JOHN O'RORKE, MONOLITH
PRODUCTIONS 15.1 VISIBILITY IN A GPU BOOK? 245 15.2 BATCHES AND
PER-PIXEL LIGHTING 2 4 15.2.1 A PER-PIXEL EXAMPLE 246 15.2.2 JUST HOW
MANY BATCHES, ANYWAY? 247 15.3 VISIBILITY AS SETS 248 15.3.1 THE VISIBLE
SET 248 15.3.2 THE LIGHTS SET 248 15.3.3 THE ILLUMINATION SET 248 15.3.4
THE SHADOW SET 249 15.4 GENERATING SETS 2 5 15.4.1 THE VISIBLE SET 250
15.4.2 THE LIGHTS SET 250 15.4.3 THE ILLUMINATION SET 251 15.4.4 THE
SHADOW SET 251 15.5 VISIBILITY FOR FILL RATE 2 55 15.6 PRACTICAL
APPLICATION 2 55 15.7 CONCLUSION 2 5 15.8 REFERENCES 2 57 PARTIIL
_MAETERIALS_ 259 CHAPTER 16 REAL-TIME APPROXIMATIONS TO SUBSURFACE
SCATTERING 263 SIMON GREEN, NVIDIA 16.1 THE VISUAL EFFECTS OF SUBSURFACE
SCATTERING 263 16.2 SIMPLE SCATTERING APPROXIMATIONS 264 16.3 SIMULATING
ABSORPTION USING DEPTH MAPS 266 16.3.1 IMPLEMENTATION DETAILS 2JO 16.3.2
MORE SOPHISTICATED SCATTERING MODELS 271 16.4 TEXTURE-SPACE DIFFUSION
272 16.4.I POSSIBLE FUTURE WORK 275 16.5 CONCLUSION 277 16.6 REFERENCES
277 CHAPTER 17 AMBIENT OCCLUSION 279 MATT PHARR, NVIDIA SIMON GREEN,
NVIDIA 17.1 OVERVIEW 280 17.2 THE PREPROCESSING STEP 281 17.3
HARDWARE-ACCELERATED OCCLUSION 283 17.4 RENDERING WITH AMBIENT OCCLUSION
MAPS 284 17.4.I ENVIRONMENT LIGHTING 286 17.5 CONCLUSION 289 17.6
FURTHER READING 292 CHAPTER 18 SPATIAL BRDFS 293 DAVID MCALLISTER,
NVIDIA 18.1 WHAT IS AN SBRDF? 293 18.2 DETAILS OF THE REPRESENTATION 294
18.3 RENDERING USING DISCRETE LIGHTS 296 18.3.I TEXTURE SAMPLING 299
18.4 RENDERING USING ENVIRONMENT MAPS 299 18.4.1 THE MATH 300 18.4.2 THE
SHADER CODE 302 18.5 CONCLUSION 306 15.6 REFERENCES 306 XIV CONTENTS
CHAPTERI9 IMAGE-BASED LIGHTING 37 KEVIN BJORKE, NVIDIA 19.1 LOCALIZING
IMAGE-BASED LIGHTING 37 19.2 THE VERTEX SHADER 3 12 19.3 THE FRAGMENT
SHADER 3*4 19.3.I ADDITIONAL SHADER DETAILS 3*5 19.4 DIFFUSE IBL 317
19.5 SHADOWS 317 19.6 USING LOCALIZED CUBE MAPS AS BACKGROUNDS 3*8 19.7
CONCLUSION 3 2 0 19.8 FURTHER READING 3 21 CHAPTER 20 TEXTURE BOMBING
323 R. STEVEN GLANVILLE, NVIDIA 20.1 TEXTURE BOMBING 101 3 2 3 20.1.1
FINDING THE CELL 3 2 4 20.1.2 SAMPLING THE IMAGE 3 2 4 20.1.3 ADJACENT
CELLS' IMAGES 3 2 5 20.1.4 IMAGE PRIORITY 3 2 20.1.5 PROCEDURAL IMAGES
3 2 20.1.6 RANDOM IMAGE SELECTION FROM MULTIPLE CHOICES 330 20.2
TECHNICAL CONSIDERATIONS 33 1 20.2.1 EFFICIENCY ISSUES 33 2 20.3
ADVANCED FEATURES 33 2 20.3.1 SCALING AND ROTATING 33 2 20.3.2
CONTROLLED VARIABLE DENSITY 333 20.3.3 PROCEDURAL 3D BOMBING 333 20.3.4
TIME-VARYING TEXTURES 335 20.3.5 VORONOI-RELATED CELLULAR METHODS 335
20.4 CONCLUSION 337 20.5 REFERENCES 33 CONTENTS XV PART IV IMAGE
PROCESSING 339 CHAPTER 21 REAL-TIME GLOW 343 GREG JAMES, NVIDIA JOHN
O'RORKE, MONOLITH PRODUCTIONS 21.1 OVERVIEW OF THE TECHNIQUE 34^ 21.2
RENDERING GLOWS: STEP BY STEP 347 21.2.1 SPECIFYING AND RENDERING THE
SOURCES OF GLOW 347 21.2.2 BLURRING THE GLOW SOURCES 349 21.2.3 ADAPTING
THE SEPARABLE CONVOLUTION 349 21.2.4 CONVOLUTION ON THE GPU 351 21.3
HARDWARE-SPECIFIC IMPLEMENTATIONS 35 2 21.3.1 DIRECT3D 9 352 21.3.2
DIRECT3D 8 354 21.3.3 DIRECT3D 7 355 21.4 OTHER USES FOR BLUR 355 21.5
ADDING THE EFFECTS TO A GAME ENGINE 35& 21.5.1 RENDERING CONTEXT 35&
21.5.2 ALIASING ISSUES 357 21.5.3 DIRECTX 7 ACCURACY ISSUES 35& 21.5.4
THE AFTER-IMAGE EFFECT 359 21.5.5 THE VARIABLE RAMPING EFFECT 359 21.6
CONCLUSION 3^1 21.7 REFERENCES 361 CHAPTER 22 COLOR CONTROLS 363 KEVIN
BJORKE, NVIDIA 22.1 INTRODUCTION 3^3 22.2 CHANNEL-BASED COLOR CORRECTION
3^4 22.2.1 LEVELS 3^4 22.2.2 CURVES 366 22.3 MULTICHANNEL COLOR
CORRECTION AND CONVERSION 368 22.3.1 GRAYSCALE CONVERSION 3^9 22.3.2
COLOR-SPACE CONVERSIONS 37 22.4 REFERENCES 37 2 XVI CONTENTS CHAPTER 23
DEPTH OF FIELD: ASURVEY OFTECHNIQUES 375 JOEDEMERS, NVIDIA 23.1 WHAT IS
DEPTH OF FIELD? 375 23.1.1 CALCULATING THE CIRCLE OF CONFUSION 377
23.1.2 MAJOR TECHNIQUES 377 23.2 RAY-TRACED DEPTH OF FIELD 37^ 23.3
ACCUMULATION-BUFFER DEPTH OF FIELD 379 23.4 LAYERED DEPTH OF FIELD 379
23.4.1 ANALYSIS 3^0 23.5 FORWARD-MAPPED Z-BUFFER DEPTH OF FIELD 3^2
23.5.I ANALYSIS 3^2 23.6 REVERSE-MAPPED Z-BUFFER DEPTH OF FIELD 3^3
23.6.1 ANALYSIS 3^6 23.7 CONCLUSION 3 23.8 REFERENCES 3^9 CHAPTER24
HIGH-QUALITY FILTERING 39* KEVIN BJORKE, NVIDIA 24.1 QUALITY VS. SPEED
39 1 24.I.I FILTER KERNELS: IMAGE-TO-IMAGE CONVERSIONS 392 24.2
UNDERSTANDING GPU DERIVATIVES 45 24.3 ANALYTICAL ANTIALIASING AND
TEXTURING 47 24.3.I INTERACTING WITH GRAPHICS API ANTIALIASING 414 24.4
CONCLUSION 4*5 24.5 REFERENCE S 4*5 CHAPTER25 FAST FILTER-WIDTH
ESTIMATES WITH TEXTURE MAPS 417 MATT PHARR, NVIDIA 25.1 THE NEED FOR
DERIVATIVES IN SHADERS 4*8 25.2 COMPUTING FILTER WIDTH WITHTEXTURES 420
25.3 DISCUSSION 4 2 3 25.4 FURTHER READING 4 2 4 * . . * * . . * . . * *
. * * ' . . * . * * * CONTENTS XVII CHAPTER 26 THE OPENEXR IMAGE FILE
FORMAT 42 FLORIAN KAINZ, INDUSTRIELL LIGHT & MAGIC ROD BOGART,
INDUSTRIAL LIGHT & MAGIC DREWHESS, INDUSTRIAL LIGHT & MAGIC 26.1 WHAT IS
OPENEXR? 4 25 26.1.1 HIGN-DYNAMIC-RANGE IMAGES 425 26.1.2 A "HALF"
FORMAT 428 26.1.3 RANGE OF REPRESENTABLE VALUES 429 26.1.4 COLOR
RESOLUTION 429 26.1.5 C++ INTERFACE 429 26.2 THE OPENEXR FILE STRUCTURE
430 26.2.1 THE HEADER 430 26.2.2 THE PIXELS 430 26.3 OPENEXR DATA
COMPRESSION 431 26.4 USING OPENEXR 43! 26.4.1 READING AND DISPLAYING AN
OPENEXR IMAGE. . . 431 26.4.2 RENDERING AND WRIDNG AN OPENEXR IMAGE 433
26.5 LINEAR PIXEL VALUES 438 26.6 CREATING AND USING HDR IMAGES 441 26.7
CONCLUSION I M 26.8 REFERENCES A 43 CHAPTER 27 AE FRAMEWORK FOR IMAGE
PROCESSING , 44C FRANK JARGSTORFF, NVIDIA 27.1 INTRODUCTION 44C 27.2
FRAMEWORK DESIGN 447 27.2.1 OPERATORS AND FILTERS 448 27.2.2 IMAGE DATA
449 27.2.3 MISSING PIECES 451 27.3 IMPLEMENTATION 2 27.3.1 THE IMAGE
CLASS 454 27.3.2 THE IMAGEFILTER CLASS 458 27.3.3 IMPLEMENTING A FILTER
460 27.4 A SAMPLE APPLICATION 463 27.5 PERFORMANCE AND LIMITATIONS 465
27.6 CONCLUSION 467 27.7 REFERENCES 467 XVIII CONTENTS PART V
PJRFORMAJJICEA^^ CHAPTER 28 GRAPHICS PIPELINE PERFORMANCE 473 CEM
CEBENOYAN, NVIDIA 28.1 OVERVIEW 473 28.1.1 THE PIPELINE 473 28.1.2
METHODOLOGY 474 28.2 LOCARING DIE BOTDENECK 475 28.2.1 RASTER OPERATIONS
47" 28.2.2 TEXTURE BANDWIDTH 476 28.2.3 FRAGMENT SHADING 476 28.2.4
VERTEX PROCESSING 477 28.2.5 VERTEX AND INDEX TRANSFER 47& 28.3
OPTIMIZATION 478 28.3.1 OPTIMIZING ON THE CPU 47^ 28.3.2 REDUCING THE
COST OF VERTEX TRANSFER 480 28.3.3 OPTIMIZING VERTEX PROCESSING 4^0
28.3.4 SPEEDING UP FRAGMENT SHADING 4^2 28.3.5 REDUCING TEXTURE
BANDWIDTH 4^3 28.3.6 OPTIMIZING FRAME-BUFFER BANDWIDTH 4^4 28.4
CONCLUSION 4^5 28.5 REFERENCES 4^6 CHAPTER 29 EFFICIENT OCCLUSION
CULLING - 487 DEAN SEKULIC, CROTEAM 29.1 WHAT IS OCCLUSION CULLING? 4^7
29.1.1 OCCLUSION QUERY 4^7 29.1.2 EARLY-Z REJECTION 4^8 29.2 HOW DOES
OCCLUSION QUERY WORK? 4^8 29.3 BEGINNING TO USE OCCLUSION QUERIES 4§9
29.3.1 HOW TO USE OCCLUSION QUERIES PROPERLY 49 29.3.2 OCCLUDERS VS.
OCCLUDEES 49 1 29.4 ONE STEP FURTHER 49 2 29.4.1 SORTING THINGS OUT 493
29.4.2 A SMALL CAVEAT 494 29.5 A WORD ABOUT BOUNDING BOXES 494 29.5.1
STADE OBJECTS 494 29.5.2 ANIMATED OBJECTS 495 29.6 OTHER ISSUES , _,-
29.6.1 CPU OVERHEADTOO HIGH 49 G 29.6.2 RENDERING AT HIGH RESOLUTIONS
497 29.6.3 FAST DEPTH-WRITING PERFORMANCE 407 29.6.4 FRUSTUM CULLING ^*G
29.7 A LITTLE REMINDER G 29.8 AN APPLICATION: LENS FLARES 49Q 29.8.1
RENDERING LENS FLARES THE OLD WAY 501 29.8.2 RENDERING LENS FLARES THE
NEW WAY 502 29.9 CONCLUSION 29.10 REFERENCES CHAPTER3O THE DESIGN OF FX
COMPOSER CHRISTOPHER MAUGHAN, NVIDIA 30.1 TOOLS DEVELOPMENT 30.2 INITIAL
FEATURES AND TARGET AUDIENCE C 0 6 30.3 OBJECT DESIGN 5O6 30.3.I
BENEFITS OF THE INTERFACE APPROACH C 0O 512 30.4 FILE FORMAT 30.5 USER
INTERFACE 30.6 DIRECT3D GRAPHICS IMPLEMENTATION 30.6.1 DEVICE WINDOWS
30.6.2 DIRECT3D EFFECTS 514 515 515 516 30.6.3 ID3DXEFFECTCOMPILER 5L6
30.6.4 ID3DXEFFECT 30.7 SCENE MANAGEMENT 30.7.I GEOMETRY PIPES 30.8
CONCLUSION 30.9 REFERENCES *517 *517 *517 518 519 CHAPTER3I USING FX
COMPOSER. CHRISTOPHER MAUGHAN, NVIDIA 31.1 GETTING STARTED
31.1.1 THE MATERIALS PANEL 505 521 521 523 3L1.2 THE SCENE GRAPH PANEL
524 31.1.3 THE EDITOR WINDOW 31.1.4 THE SHADERPERF PANEL 525 527
CONTENTS 31.1.5 THE PROPERTIES PANEL 5 2 8 31.1.6 THE SCENE PANEL 53
31.1.7 THE TEXTURES PANEL 53 1 31.1.8 THE TASKS PANEL 53 2 31.1.9 THE
LOG PANEL 533 31.2 SAMPLE PROJECT 533 31.3 CONCLUSION 535 CHAPTER32 AN
INTRODUCTION TO SHADER INTERFACES MATT PHARR, NVIDIA 32.1 THE BASICS OF
SHADER INTERFACES 539 32.2 A FLEXIBLE DESCRIPTION OF LIGHTS 54 2 32.3
MATERIAL TREES 545 32.4 CONCLUSION 549 32.5 REFERENCES 55 CHAPTER33
CONVERTING PRODUCTION RENDERMAN SHADERS TO REAL-TIME STEPHEN MARSHALL,
SONY PICTURES IMAGEWORKS 33.1 INTRODUCTION 551 33.I.I CONVERSION BY
EXAMPLE 55 2 33.2 LIGHTS 55 2 33.2.1 LIGHT SOURCES 55 2 33.2.2 LIGHT
SOURCE SHADERS 553 33.2.3 ADDITIONAL LIGHTING PARAMETERS 554 33.3 THE
VERTEX PROGRAM VS. THE FRAGMENT PROGRAM 555 33.4 USING VERTEX AND
FRAGMENT PROGRAMS 555 33.5 OPTIMIZATION TECHNIQUES ON THE FRAGMENT
PROGRAM 556 33.5.1 MOVING CODE TO THE APPLICATION LEVEL 557 33.5.2
MOVING CODE TO THE VERTEX PROGRAM 557 33.5.3 OPTIMIZING THROUGH TEXTURE
LOOKUPS 559 33.5.4 OPTIMIZING FOR VECTORIZATION 5^0 33.5.5 FINAL
OPTIMIZATIONS 5^0 33.6 RESULTS AND CONCLUSIONS 51 33.7 REFERENCES 55 *
* . * * * , : . . , * : , * . . ; * . . :.**.:.**.**.,. * . . * * *
.-. . . : * ; * , . * * , : - . . . * ***:,*.*. * * - . . : .
CHAPTER34 INTEGRATING HARDWARE SHADING INTO CINEMA 4D 567 JOERN
LOVISCACH, HOCHSCHULE BREMEN 34- 1 INTRODUCTION 567 34.2 CONNECTING
CINEMA 4D TO CGFX 570 34.3 SHADER AND PARAMETER MANAGEMENT 572 34.4
EMULATING THE OFFLINE RENDERER 573 34.5 RESULTS AND PERFORMANCE 577 34-6
LESSONS LEARNED 578 34-7 REFERENCES 580 CHAPTER35 LEVERAGING
HIGH-QUALITY SOFTWARE RENDERING EFFECTS IN REAT-TIME APPLICATIONS 581
ALEXANDRE JEAN CLAUDE, SOFTIMAGE MARC STEVENS, SOFTIMAGE 35.1
INTRODUCTION 581 35.2 THE CONTENT PIPELINE FOR HARDWARE RENDERING 582
35.3 COMPONENTS OF HARDWARE RENDERING 584 35.3.1 GEOMETRIE DATA 584
35.3.2 ATTRIBUTE MAPS 584 35-4 GENERATING THE COMPONENTS 587 35.4.1
CREATING THE GEOMETRY 588 35.4.2 RENDERING TO TEXTURES AND VERTICES 588
35.5 TEST CASE AND RESULTS 593 35.6 CONCLUSION 598 35-7 REFERENCES 599
CHAPTER36 INTEGRATING SHADERS INTO APPLICATIONS 601 JOHN O'RORKE,
MONOLITH PRODUCTIONS 36.1 INTRODUCTION 601 36.2 ABOUT SHADERS 602 36.2.I
SHADER LANGUAGES 602 3&3 TW KMSOTO^ C-&SIFISXY\\S. ^5 36.3.1
VARIABLES 605 36.3.2 STRUCTURES 606 36.3.3 PASSES 606 36.3.4 TECHNIQUES
606 36.3.5 ANNOTATIONS 606 XXII CONTENTS * *!.* .*.;:; . * - , * * * *
. . - '* J . 36.4 TYPES OF SHADER DATA 07 36.4.1 SCENE INFORMATION
608 36.4.2 MATERIALS 608 36.4.3 RENDERER CONTEXT 608 36.4.4 VERTEX DATA
609 36.5 COMMUNICATING WITH DIE SHADER 609 36.5.1 SCENE INFORMATION 609
36.5.2 MATERIAL PARAMETERS 6LO 36.5.3 VERTEX FORMAT 6LL 36.5.4 CONTEXT
6L2 36.5.5 TECHNIQUES VS. PASSES FOR CONTEXT 613 36.6 EXTENDING THE
EFFECT FILE FORMAT 613 36.6.1 SUPPORTING THE PREPROCESSOR 613 36.6.2
SUPPORTING SHADER VARIATIONS 614 36.6.3 ADDING SHADER INHERITANCE 615
36.7 CONCLUSION 615 36.8 REFERENCES 615 PART VI BEYONDTRIANGLES 617
CHAPTER37 A TOOLKIT FOR COMPUTATION ON GPUS . 621 LAN BUECK, STANFORD
UNIVERSITY TIM PURCELL, STANFORD UNIVERSITY 37.1 COMPUTING WITH THE GPU
621 37.1.1 THE PROGRAMMING MODEL 622 37.1.2 PARALLEL PROGRAMMING 623
37.1.3 ADVANCED GPU PROGRAMMING 624 37.2 REDUCE 625 37.2.1 PARALLEL
REDUCTIONS 625 37.2.2 REDUCE TIDBITS 626 37.3 SORT AND SEARCH 627 37.3.1
BITONIC MERGE SORT 627 37.3.2 BINARY SEARCH 630 37.4 CHALLENGES 633
37.4.1 LIMITED OUTPUTS 633 37.4.2 SLOW READBACK 633 37.4.3 GPU VS. CPU
634 37.5 CONCLUSION 34 37.6 FURTHER READING 635 CONTENTS XXIII
CHAPTER38 FAST FLUID DYNAMICS SIMULATION ON THE GPU 637 MARKJ. HARRIS,
UNIVERSITYOF NORTH CAROLINA ATCHAPEL HILL 38.1 INTRODUCTION 607 38.1.1
OUR GOAL 638 38.1.2 OUR ASSUMPTIONS 638 38.1.3 OUR APPROACH 639 38.2
MATHEMATICAL BACKGROUND 639 38.2.1 THE NAVIER-STOKES EQUATIONS FOR
INCOMPRESSIBLE FLOW 641 38.2.2 TERMS IN THE NAVIER-STOKES EQUATIONS 642
38.2.3 A BRIEF REVIEW OF VECTOR CALCULUS 642 38.2.4 SOLVING THE
NAVIER-STOKES EQUATIONS 644 38.3 IMPLEMENTATION 650 38.3.1
CPU-GPUANALOGIES 651 38.3.2 SLAB OPERATIONS 653 38.3.3 IMPLEMENTATION IN
FRAGMENT PROGRAMS 653 38.4 APPLICATIONS 659 38.4.1 SIMULATING LIQUIDS
AND GASES 660 38.4.2 BUOYANCY AND CONVECTION 660 38.5 EXTENSIONS 66L
38.5.1 VORTICITY CONFINEMENT 662 38.5.2 THREE DIMENSIONS 663 38.5.3
STAGGERED GRID 663 38.5.4 ARBITRARY BOUNDARIES 664 38.5.5 FREE SURFACE
FLOW 664 38.6 CONCLUSION 664 38.7 REFERENCES 665 CHAPTER39 VOLUME
RENDERINGTECHNIQUES 667 MILAN IKITS, UNIVERSITYOF UTAH JOE KNISS,
UNIVERSITYOF UTAH AARON LEFOHN, UNIVERSITYOF CALIFORNIA, DAVIS CHARLES
HANSEN, UNIVERSITYOF UTAH 39.1 INTRODUCTION 667 39.2 VOLUME RENDERING
668 39.3 TEXTURE-BASED VOLUME RENDERING 670 39.3.1 A SIMPLE EXAMPLE 673
XXIV CONTENTS 39-4 IMPLEMENTATION DETAILS 674 39.4.1 DATA REPRESENTATION
AND PROCESSING 674 39.4.2 PROXY GEOMETRY 676 39.4.3 RENDERING 678 39.5
ADVANCED TECHNIQUES 68L 39.5.1 VOLUMETRIE LIGHTING 682 39.5.2 PROCEDURAL
RENDERING 687 39.6 PERFORMANCE CONSIDERATIONS 688 39.6.I RASTERIZATION
BOTTLENECKS 688 39.7 SUMMARY 690 39.8 REFERENCES 690 CHAPTER^O APPLYING
REAL-TIME SHADING TO 3D ULTRASOUND VISUALIZATION . 693 THILAKA
SUMANAWEERA, SIEMENS MEDICAL SOLUTIONS USA, INC. 40.1 BACKGROUND 693
40.2 INTRODUCTION 696 40.2.1 VOLUME RENDERING DATA IN A CARTESIAN GRID
696 40.2.2 VOLUME RENDERING DATA IN PYRAMIDAL GRIDS 699 40.3 RESULTS 706
40.4 CONCLUSION 76 40.5 REFERENCES 77 CHAPTER4I REAL-TIME STEREOGRAMS
709 FABIO POLICARPO, PARALELO COMPUTACAEO LTDA. 41.1 WHAT IS A
STEREOGRAM? 709 41.1.1 STEREO PHOTOGRAPHY 79 41.1.2 RANDOM-DOT
STEREOGRAMS 7 10 41.1.3 SINGLE-IMAGE STEREOGRAMS 7 11 41.2 CREATING A
SINGLE-IMAGE STEREOGRAM 7^3 41.2.1 PARAMETERS 7^3 41.2.2 RENDERING 7*5
41.2.3 CREATING ANIMATED SINGLE-IMAGE STEREOGRAMS 717 41.2.4 FRAGMENT
PROGRAM 7*9 41.3 SAMPLE APPLICATION 7 21 41.3.I APPLICATION OPTIONS 7 21
41.4 REFERENCES 7 22 CONTENTS XXV CHAPTER42 DEFORMERS 723 EUGENE D'EON,
UNIVERSITY OFWATERLOO 42.1 WHAT IS A DEFORMER? 723 42.1.1 MATHEMATICAL
DEFINITION 724 42.2 DEFORMING ON THE GPU 725 42.2.1 FORMULATING THE
DEFORMER 725 42.2.2 WRITING THE VERTEX PROGRAM 725 42.2.3 DEFORMING
NORMALS 726 42.3 LIMITATIONS 729 42.4 PERFORMANCE 729 42.5 EXAMPLE: WAVE
DEFORMER 730 42.6 CONCLUSION 732 INDEX 733 * * * . ' . * . * . .
*.*.*.! . . **,.**. ! * * . , * . IV. ****** *.:*,., * ^ . ^
F L S AE V I L ^ ^ XXVI CONTENTS |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
building | Verbundindex |
bvnumber | BV023076095 |
ctrlnum | (DE-599)BVBBV023076095 |
edition | 4. printing |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01154nam a2200289zcc4500</leader><controlfield tag="001">BV023076095</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">00000000000000.0</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080111s2006 ad|| |||| 00||| eng d</controlfield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV023076095</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">GPU gems</subfield><subfield code="n">[1]</subfield><subfield code="p">Programming techniques, tips, and tricks for real-time graphics</subfield><subfield code="c">ed. by Randima Fernando</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">4. printing</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXV, 765 S.</subfield><subfield code="b">zahlr. Ill., graph. Darst.</subfield><subfield code="e">1 CD-ROM (12 cm)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">nVidia</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Systemvoraussetzungen: WinXP PC with a GeForceFX or more recent GPU</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Fernando, Randima</subfield><subfield code="e">Sonstige</subfield><subfield code="4">oth</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Pharr, Matt</subfield><subfield code="e">Sonstige</subfield><subfield code="4">oth</subfield></datafield><datafield tag="773" ind1="0" ind2="8"><subfield code="w">(DE-604)BV021866108</subfield><subfield code="g">1</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016279188&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016279188</subfield></datafield></record></collection> |
id | DE-604.BV023076095 |
illustrated | Illustrated |
index_date | 2024-07-02T19:35:11Z |
indexdate | 2024-07-09T21:10:26Z |
institution | BVB |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016279188 |
open_access_boolean | |
physical | XXXV, 765 S. zahlr. Ill., graph. Darst. 1 CD-ROM (12 cm) |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Addison-Wesley |
record_format | marc |
series2 | nVidia |
spelling | GPU gems [1] Programming techniques, tips, and tricks for real-time graphics ed. by Randima Fernando 4. printing Boston [u.a.] Addison-Wesley 2006 XXXV, 765 S. zahlr. Ill., graph. Darst. 1 CD-ROM (12 cm) txt rdacontent n rdamedia nc rdacarrier nVidia Systemvoraussetzungen: WinXP PC with a GeForceFX or more recent GPU Fernando, Randima Sonstige oth Pharr, Matt Sonstige oth (DE-604)BV021866108 1 GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016279188&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | GPU gems |
title | GPU gems |
title_auth | GPU gems |
title_exact_search | GPU gems |
title_exact_search_txtP | GPU gems |
title_full | GPU gems [1] Programming techniques, tips, and tricks for real-time graphics ed. by Randima Fernando |
title_fullStr | GPU gems [1] Programming techniques, tips, and tricks for real-time graphics ed. by Randima Fernando |
title_full_unstemmed | GPU gems [1] Programming techniques, tips, and tricks for real-time graphics ed. by Randima Fernando |
title_short | GPU gems |
title_sort | gpu gems programming techniques tips and tricks for real time graphics |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016279188&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
volume_link | (DE-604)BV021866108 |
work_keys_str_mv | AT fernandorandima gpugems1 AT pharrmatt gpugems1 |