GPU 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