Figuur 1: Een beeld gegenereerd door ons voorgestelde algoritme.
Om het probleem in verband met cloud gaming te kaderen, kijken we eerst naar hoe videospellen op je beeldscherm getoond worden. De beelden gegenereerd in moderne 3D games zijn als het ware een 2D projectie van een 3D scène. We plaatsen hierbij een virtuele camera in de scène, en projecteren de 3D objecten op de sensor van deze camera. Het genereren van een beeld op de virtuele sensor wordt ook wel renderen genoemd. Correcte belichting speelt een cruciale rol bij het genereren van realistische virtuele beelden. Licht heeft namelijk ook een enorme impact op hoe we de wereld ervaren: licht beweegt zich door de ruimte en valt uiteindelijk in op ons netvlies, waardoor we kunnen zien. Licht valt zelden van de lichtbron direct in op ons oog. In plaats daarvan botst het vaak enkele keren met objecten in de omgeving, wat leidt tot allerlei complexe effecten, ook wel globale belichtingseffecten genoemd. Typisch gebruiken game ontwikkelaars het ray-tracing algoritme om deze effecten te simuleren. In ray tracing wordt voor iedere pixel de kleur bepaald door een lichtpad te simuleren volgens de wetten van de optica. Hierbij worden één of meerdere stralen uitgestuurd voor de pixel, wordt er gekeken met welke objecten deze straal botst en op die manier bepaald hoeveel licht van iedere kleur (golflengte) er invalt op die pixel. Onderliggend rekent het algoritme een complexe wiskundige integraal uit, die de bijdragen van alle segmenten van het lichtpad optelt. Hoewel ray tracing dus rekenintensief is, heeft het als voordeel dat het fotorealistische beelden kan genereren.
Huidige ray-tracing algoritmen zijn ontwikkeld met één individuele gebruiker in het achterhoofd: het algoritme berekent hoe een beeld er moet uitzien vanuit het specifieke standpunt van die gebruiker. Dit is in termen van schaalbaarheid echter minder goed nieuws voor de cloud provider. Omdat het algoritme veeleisend is qua rekenkracht, betekent dit in de praktijk dat de cloud provider fysieke hardware moet voorzien per gebruiker die de cloud gaming service wilt gebruiken. Omwille van deze reden is het momenteel logischer dat de gebruiker zelf zijn hardware aankoopt en de game lokaal afspeelt. Het huidige model is simpelweg te duur voor cloud providers om (genoeg) winst uit een dergelijk platform te halen. Om dit probleem aan te pakken pasten we het ray-tracing algoritme aan zodat het makkelijker geparallelliseerd kan worden in een serveromgeving en de resultaten gebruikt kunnen worden door meerdere gebruikers. Kort gezegd deelt ons nieuwe algoritme de scène op in blokken. Deze blokken kunnen flexibel verdeeld worden over meerdere grafische processoren (GPU’s), wat ideaal is voor een serveromgeving. Ieder van deze blokken kan op een onafhankelijke manier de indirecte belichtingseffecten op zijn lokale objecten berekenen. Directe belichting is een makkelijker probleem en wordt apart afgehandeld. Door de reeds berekende resultaten op te slaan, kunnen meerdere gebruikers deze informatie gebruiken om het beeld vanuit hun eigen standpunt te renderen. Onze bijhorende experimenten toonden aan dat vanaf een realistisch aantal gebruikers ons algoritme werk bespaart ten opzichte van de traditionele aanpak.
Omdat er voortdurend veranderingen plaatsvinden in een game en we een vloeiend beeld willen behouden, is het tijdsbudget om een nieuw beeld te renderen zeer gelimiteerd. Hierdoor is ray tracing in videospellen pas mogelijk sinds enkele jaren, met de opkomst van gespecialiseerde GPU's voor ray tracing. Een blijvend probleem bij lichttransport is echter de incoherentie van lichtstralen. Wanneer lichtstralen botsen met objecten, worden ze geabsorbeerd of veranderen ze van richting, afhankelijk van het materiaal van het object. Het resultaat hiervan is dat opeenvolgende segmenten van een lichtpad op totaal verschillende plaatsen in de scène belanden. Om deze segmenten in parallel te verwerken, is onder andere informatie over het materiaal van de objecten waarmee de stralen botsen nodig. Deze informatie is vaak verspreid over het geheugen van de GPU, wat resulteert in trage geheugentoegang. Om de prestaties te verbeteren, maakt de GPU gebruik van cachegeheugen dat dichtbij de rekeneenheden ligt, maar beperkte capaciteit heeft. Het probleem met huidige ray-tracing algoritmen is echter dat er voortdurend verschillende geheugenelementen worden opgevraagd, waardoor het cachegeheugen voortdurend vernieuwd moet worden en het potentieel ervan verloren gaat. Als oplossing voor dit tweede probleem kozen we voor een hybride aanpak bij het berekenen van indirect licht. Hiermee limiteren we de ruimte die een lichtstraal kan doorkruisen. Wanneer de lichtstraal buiten deze ruimte probeert te treden, stappen we over op een benadering met zogenaamde probes. Een probe is een kleine virtuele sensor die op zijn positie indirect licht van alle richtingen opneemt. Deze informatie kunnen we dan in een volgende stap gebruiken om indirect licht dat van veraf komt te benaderen, in plaats van de straal de hele weg te laten afleggen. Onze experimenten toonden ook aan dat door het beperken van de afstand die een lichtstraal kan afleggen, we de ruimte in het hoofdgeheugen limiteren waarin die straal opvragingen doet. Dit bevordert het veelvuldig gebruik van snel cachegeheugen.
Ons voorgesteld algoritme is een goed startpunt voor verdere optimalisaties die nodig zullen zijn om cloud gaming op grote schaal naar de consument te brengen. Het centraliseren en hergebruiken van grafische berekeningen op een schaalbare manier is een krachtig idee dat zeker in de toekomst verder kan worden onderzocht. Alhoewel er nog veel werk aan de winkel is, suggereren de resultaten van dit onderzoek dat er zeker positieve hoop is voor de toekomst van cloud gaming.
[1] SIGGRAPH ’15: ACM SIGGRAPH 2015 Courses, New York, NY, USA, 2015. Association for Computing Machinery.
[2] V Aboites. Legendre polynomials: A simple methodology. In Journal of Physics: Confer- ence Series, volume 1221, page 012035. IOP Publishing, 2019.
[3] James Arvo and David Kirk. Fast ray tracing by ray classification. ACM Siggraph Computer Graphics, 21(4):55–64, 1987.
[4] Krste Asanovi ́c, Ras Bodik, Bryan Christopher Catanzaro, Joseph James Gebis, Parry Husbands, Kurt Keutzer, David A. Patterson, William Lester Plishker, John Shalf, Samuel Webb Williams, and Katherine A. Yelick. The landscape of parallel computing research: A view from berkeley. Technical Report UCB/EECS-2006-183, EECS Depart- ment, University of California, Berkeley, Dec 2006.
[5] Rui Bastos, Michael Goslin, and Hansong Zhang. Efficient radiosity rendering using tex- tures and bicubic reconstruction. In Proceedings of the 1997 symposium on Interactive 3D graphics, pages 71–ff, 1997.
[6] Anis Benyoub. Leveraging real-time ray tracing to build a hybrid game engine, 2019.
[7] Chakravarty R Alla Chaitanya, Anton S Kaplanyan, Christoph Schied, Marco Salvi, Aaron Lefohn, Derek Nowrouzezahrai, and Timo Aila. Interactive reconstruction of monte carlo image sequences using a recurrent denoising autoencoder. ACM Transactions on Graphics (TOG), 36(4):1–12, 2017.
[8] NVIDIA Developer. Shader execution reordering, whitepaper. 2022.
[9] Fr ́edo Durand, George Drettakis, and Claude Puech. The visibility skeleton: A power- ful and efficient multi-purpose global visibility tool. In Proceedings of the 24th annual conference on Computer graphics and interactive techniques, pages 89–100, 1997.
[10] Fr ́edo Durand, George Drettakis, and Claude Puech. The 3d visibility complex. ACM Transactions on Graphics (TOG), 21(2):176–206, 2002.
[11] Jerome H Friedman, Jon Louis Bentley, and Raphael Ari Finkel. An algorithm for finding best matches in logarithmic expected time. ACM Transactions on Mathematical Software (TOMS), 3(3):209–226, 1977.
[12] Leslie Glaves. An exploration of the 3d visibility complex. Master’s thesis, Polytechnic University, Brooklyn, NY, 2007.
[13] Robin Green. Spherical harmonic lighting: The gritty details. In Archives of the game developers conference, volume 56, page 4, 2003.
[14] Gene Greger, Peter Shirley, Philip M Hubbard, and Donald P Greenberg. The irradiance volume. IEEE Computer Graphics and Applications, 18(2):32–43, 1998.
85
86 BIBLIOGRAPHY
[15] Toshiya Hachisuka, Shinji Ogaki, and Henrik Wann Jensen. Progressive photon mapping.
In ACM SIGGRAPH Asia 2008 papers, pages 1–8. 2008.
[16] Henrik Halen and K Hayward. Global illumination based on surfels. In Proc. ACM SIG-
GRAPH Symp. Interactive 3D Graph. Games, pages 1399–1405, 2021.
[17] Henrik Wann Jensen. Importance driven path tracing using the photon map. In Rendering Techniques’ 95: Proceedings of the Eurographics Workshop in Dublin, Ireland, June 12–14, 1995 6, pages 326–335. Springer, 1995.
[18] James T Kajiya. The rendering equation. In Proceedings of the 13th annual conference on Computer graphics and interactive techniques, pages 143–150, 1986.
[19] Anton Kaplanyan and Carsten Dachsbacher. Cascaded light propagation volumes for real- time indirect illumination. In Proceedings of the 2010 ACM SIGGRAPH symposium on Interactive 3D Graphics and Games, pages 99–107, 2010.
[20] Alexander Keller. Instant radiosity. In Proceedings of the 24th annual conference on Computer graphics and interactive techniques, pages 49–56, 1997.
[21] P Kozlowski and T Cheblokov. Relax: A denoiser tailored to work with the restir algorithm. gpu technology conference, 2021.
[22] Sylvain Lefebvre, Samuel Hornus, Fabrice Neyret, et al. Octree textures on the gpu. GPU gems, 2:595–613, 2005.
[23] Taweetham Limpanuparb and Josh Milthorpe. Associated legendre polynomials and spher- ical harmonics computation for chemistry applications. arXiv preprint arXiv:1410.1748, 2014.
[24] Edward Liu. Low sample count ray tracing with nvidia’s ray tracing denoisers. Real-Time Ray Tracing, SIGGRAPH Courses, 2018.
[25] Morgan McGuire, Mike Mara, Derek Nowrouzezahrai, and David Luebke. Real-time global illumination using precomputed light field probes. In Proceedings of the 21st ACM SIG- GRAPH Symposium on Interactive 3D Graphics and Games, pages 1–11, 2017.
[26] Daniel Meister, Shinji Ogaki, Carsten Benthin, Michael J Doyle, Michael Guthe, and Jiˇr ́ı Bittner. A survey on bounding volume hierarchies for ray tracing. In Computer Graphics Forum, volume 40, pages 683–712. Wiley Online Library, 2021.
[27] Jesper Mortensen. Virtual light fields for global illumination in computer graphics. PhD thesis, UCL (University College London), 2011.
[28] Thomas Mu ̈ller, Alex Evans, Christoph Schied, and Alexander Keller. Instant neural graph- ics primitives with a multiresolution hash encoding. ACM Trans. Graph., 41(4):102:1– 102:15, July 2022.
[29] Eihachiro Nakamae and Katsumi Tadamura. Photorealism in computer graphics—past and present. Computers & graphics, 19(1):119–130, 1995.
[30] Hanspeter Pfister, Matthias Zwicker, Jeroen Van Baar, and Markus Gross. Surfels: Surface elements as rendering primitives. In Proceedings of the 27th annual conference on Computer graphics and interactive techniques, pages 335–342, 2000.
[31] Matt Pharr, Wenzel Jakob, and Greg Humphreys. Physically based rendering: From theory to implementation. Morgan Kaufmann, 2016.
[32] Ravi Ramamoorthi and Pat Hanrahan. An efficient representation for irradiance envi- ronment maps. In Proceedings of the 28th annual conference on Computer graphics and interactive techniques, pages 497–500, 2001.
[33] Erik Reinhard, Michael Stark, Peter Shirley, and James Ferwerda. Photographic tone reproduction for digital images. In Proceedings of the 29th annual conference on Computer graphics and interactive techniques, pages 267–276, 2002.
[34] Pedro V Sander, John Snyder, Steven J Gortler, and Hugues Hoppe. Texture mapping progressive meshes. In Proceedings of the 28th annual conference on Computer graphics and interactive techniques, pages 409–416, 2001.
[35] VV Sanzharov, AI Gorbonosov, VA Frolov, and AG Voloboy. Examination of the nvidia rtx. In CEUR Workshop Proceedings, volume 2485, pages 7–12, 2019.
[36] Christoph Schied, Anton Kaplanyan, Chris Wyman, Anjul Patney, Chakravarty R Alla Chaitanya, John Burgess, Shiqiu Liu, Carsten Dachsbacher, Aaron Lefohn, and Marco Salvi. Spatiotemporal variance-guided filtering: real-time reconstruction for path-traced global illumination. In Proceedings of High Performance Graphics, pages 1–12. 2017.
[37] Mel Slater. A note on virtual light fields. University College London, 2000.
[38] Turner Whitted. An improved illumination model for shaded display. In Proceedings of
the 6th annual conference on Computer graphics and interactive techniques, page 14, 1979.
[39] Ziro Yamauti. The light flux distribution of a system of interreflecting surfaces. JOSA,
13(5):561–571, 1926.
[40] Dmitry Zhdan. ReBLUR: A Hierarchical Recurrent Denoiser, pages 823–844. 08 2021.