Table Of ContentGPU Pro 360
Guide to Lighting
GPU Pro 360
Guide to Lighting
Edited by Wolfgang Engel
CRCPress
Taylor&FrancisGroup
6000BrokenSoundParkwayNW,Suite300
BocaRaton,FL33487-2742
⃝c 2019byTaylor&FrancisGroup,LLC
CRCPressisanimprintofTaylor&FrancisGroup,anInformabusiness
NoclaimtooriginalU.S.Governmentworks
Printedonacid-freepaper
InternationalStandardBookNumber-13: 978-0-8153-8553-0(Hardback)978-0-8153-8552-3(paperback)
Thisbookcontainsinformationobtainedfromauthenticandhighlyregardedsources. Reasonableeffortshave
beenmadetopublishreliabledataandinformation,buttheauthorandpublishercannotassumeresponsibility
forthevalidityofallmaterialsortheconsequencesoftheiruse. Theauthorsandpublishershaveattemptedto
tracethecopyrightholdersofallmaterialreproducedinthispublicationandapologizetocopyrightholdersif
permissiontopublishinthisformhasnotbeenobtained. Ifanycopyrightmaterialhasnotbeenacknowledged
pleasewriteandletusknowsowemayrectifyinanyfuturereprint.
ExceptaspermittedunderU.S.CopyrightLaw,nopartofthisbookmaybereprinted,reproduced,transmitted,
orutilizedinanyformbyanyelectronic,mechanical,orothermeans,nowknownorhereafterinvented,
includingphotocopying,micro(cid:12)lming,andrecording,orinanyinformationstorageorretrievalsystem,without
writtenpermissionfromthepublishers.
Forpermissiontophotocopyorusematerialelectronicallyfromthiswork,pleaseaccesswww.copyright.com
(http://www.copyright.com/)orcontacttheCopyrightClearanceCenter,Inc. (CCC),222RosewoodDrive,
Danvers,MA01923,978-750-8400. CCCisanot-for-pro(cid:12)torganizationthatprovideslicensesandregistration
foravarietyofusers. FororganizationsthathavebeengrantedaphotocopylicensebytheCCC,aseparate
systemofpaymenthasbeenarranged.
Trademark Notice: Productorcorporatenamesmaybetrademarksorregisteredtrademarks,andareused
onlyforidenti(cid:12)cationandexplanationwithoutintenttoinfringe.
Library of Congress Cataloging-in-Publication Data
Names: Engel,WolfgangF.,editor.
Title: GPUpro360guidetolighting/[editedby]WolfgangEngel.
Description: Firstedition. jBocaRaton,FL:CRCPress/Taylor&FrancisGroup,2018. jIncludes
bibliographicalreferencesandindex.
Identi(cid:12)ers: LCCN2018020475jISBN9780815385523(pbk. : acid-freepaper)j
ISBN9780815385530(hardback: acid-freepaper)
Subjects: LCSH:Computergraphics. jGraphicsprocessingunits--Programming. jLight--Computersimulation.
Classi(cid:12)cation: LCCT385.G688842018jDDC006.6--dc23
LCrecordavailableathttps://lccn.loc.gov/2018020475
Visit the eResources: www.crcpress.com/9780815385523
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Contents
Introduction xiii
Web Materials xix
1 Fast,Stencil-BasedMultiresolutionSplattingforIndirectIllumination 1
Chris Wyman, Greg Nichols, and Jeremy Shopf
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Quick Review: Instant Radiosity. . . . . . . . . . . . . . . . . 2
1.3 Quick Review: Re(cid:13)ective Shadow Maps . . . . . . . . . . . . . 3
1.4 Multiresolution Splatting . . . . . . . . . . . . . . . . . . . . . 4
1.5 Fast Stencil-Based Multiresolution Splatting . . . . . . . . . . 8
1.6 Results and Analysis . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8 Demo and Source . . . . . . . . . . . . . . . . . . . . . . . . . 14
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Screen-Space Directional Occlusion 17
Thorsten Grosch and Tobias Ritschel
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Screen-Space Ambient Occlusion . . . . . . . . . . . . . . . . . 18
2.3 Screen-Space Directional Occlusion . . . . . . . . . . . . . . . 20
2.4 Interleaved Sampling . . . . . . . . . . . . . . . . . . . . . . . 29
2.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Real-Time Multi-Bounce Ray-Tracing with Geometry Impostors 33
P(cid:19)eter Dancsik and L(cid:19)aszl(cid:19)o Sz(cid:19)ecsi
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Geometry Impostors . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Intersection Computation with an Environment Distance
Impostor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
v
vi Contents
3.4 Ray-Object Intersection Using Distance Impostors . . . . . . . 38
3.5 Ray-Object Intersection Using Height Maps . . . . . . . . . . 38
3.6 Tracing Multiple Refractions within a Single Object . . . . . . 40
3.7 Multiple Ray Bounces with Object Impostors Only . . . . . . 40
3.8 Multiple Ray Bounces with Environment Distance Impostors
Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.9 Combination of Environment and Object Impostors . . . . . . 41
3.10 Caustics and Shadows . . . . . . . . . . . . . . . . . . . . . . 42
3.11 Example Application: Glass Chess . . . . . . . . . . . . . . . 43
3.12 Example Application: Alien Pool . . . . . . . . . . . . . . . . 44
3.13 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Temporal Screen-Space Ambient Occlusion 47
Oliver Mattausch, Daniel Scherzer, and Michael Wimmer
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Ambient Occlusion . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Reverse Reprojection . . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Our Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.5 SSAO Implementation . . . . . . . . . . . . . . . . . . . . . . 58
4.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.7 Discussion and Limitations . . . . . . . . . . . . . . . . . . . . 64
4.8 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Level-of-DetailandStreamingOptimizedIrradianceNormalMapping 67
Ralf Habel, Anders Nilsson, and Michael Wimmer
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2 Calculating Directional Irradiance . . . . . . . . . . . . . . . . 68
5.3 H-Basis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.7 Appendix A: Spherical Harmonics Basis Functions without
Condon-Shortley Phase . . . . . . . . . . . . . . . . . . . . . . 81
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6 Real-Time One-Bounce Indirect Illumination and Shadows Using
Ray Tracing 83
Holger Gruen
6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Contents vii
6.3 Phase 1: Computing Indirect Illumination without Indirect
Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.4 Phase 2: Constructing a 3D Grid of Blockers . . . . . . . . . . 89
6.5 Phase 3: Computing the Blocked Portion of Indirect Light . . 92
6.6 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7 Real-Time Approximation of Light Transport in Translucent
Homogenous Media 97
Colin Barr(cid:19)e-Brisebois and Marc Bouchard
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.2 In Search of Translucency . . . . . . . . . . . . . . . . . . . . 98
7.3 The Technique: The Way out Is Through . . . . . . . . . . . . 99
7.4 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.7 Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 107
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8 Diffuse Global Illumination with Temporally Coherent Light
Propagation Volumes 109
Anton Kaplanyan, Wolfgang Engel, and Carsten Dachsbacher
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.3 Algorithm Detail Description. . . . . . . . . . . . . . . . . . . 111
8.4 Injection Stage. . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.5 Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 127
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
9 Ray-Traced Approximate Re(cid:13)ections Using a Grid of Oriented Splats 129
Holger Gruen
9.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.3 The Basic Algorithm . . . . . . . . . . . . . . . . . . . . . . . 130
9.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.5 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
viii Contents
10 Screen-Space Bent Cones: A Practical Approach 139
Oliver Klehm, Tobias Ritschel, Elmar Eisemann, and Hans-Peter Seidel
10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
10.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
10.3 Ambient Occlusion . . . . . . . . . . . . . . . . . . . . . . . . 140
10.4 Our Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
10.7 Discussion and Conclusion . . . . . . . . . . . . . . . . . . . . 153
10.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 154
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
11 Physically Based Area Lights 157
Michal Drobot
11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
11.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
11.3 Area Lighting Model . . . . . . . . . . . . . . . . . . . . . . . 160
11.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.5 Results Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 183
11.6 Further Research . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
12 HighPerformanceOutdoorLightScatteringUsingEpipolarSampling 191
Egor Yusov
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
12.2 Previous Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
12.3 Algorithm Overview. . . . . . . . . . . . . . . . . . . . . . . . 193
12.4 Light Transport Theory. . . . . . . . . . . . . . . . . . . . . . 193
12.5 Computing Scattering Integral . . . . . . . . . . . . . . . . . . 196
12.6 Epipolar Sampling . . . . . . . . . . . . . . . . . . . . . . . . 198
12.7 1D Min/Max Binary Tree Optimization. . . . . . . . . . . . . 200
12.8 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 203
12.9 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . 209
12.10 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . 214
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
13 Hi-Z Screen-Space Cone-Traced Re(cid:13)ections 217
Yasin Uludag
13.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
13.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
13.3 Previous Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Contents ix
13.4 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
13.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 240
13.6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
13.7 Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
13.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
13.9 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
13.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
13.11 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
13.12 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 258
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
14 TressFX: Advanced Real-Time Hair Rendering 261
Timothy Martin, Wolfgang Engel, Nicolas Thibieroz, Jason Yang, and
Jason Lacroix
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
14.2 Geometry Expansion . . . . . . . . . . . . . . . . . . . . . . . 262
14.3 Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
14.4 Shadows and Approximated Hair Self-Shadowing . . . . . . . 266
14.5 Antialiasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
14.6 Transparency . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
14.7 Integration Speci(cid:12)cs . . . . . . . . . . . . . . . . . . . . . . . . 272
14.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
15 Wire Antialiasing 279
Emil Persson
15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
15.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
15.3 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . 285
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
16 Real-Time Lighting via Light Linked List 287
Abdul Bezrati
16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16.3 Populating the Light Linked List . . . . . . . . . . . . . . . . 290
16.4 Accessing the Light Linked List . . . . . . . . . . . . . . . . . 294
16.5 Reduced Resolution . . . . . . . . . . . . . . . . . . . . . . . . 295
16.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297