Ray Tracing vs Rasterized Rendering - Forklaret
Efter lanceringen af Nvidias Turing-familie af GPU'er i 2018 oplevede spilverdenen en eksponentiel stigning i diskussionen om en funktion kendt som "Ray Tracing". Nvidias daværende helt nye "RTX" -serie af grafikkort bragte støtte til noget, der hedder "Real-Time Ray Tracing" i spil. De fleste mennesker var usikre på, hvad denne nye funktion var, og hvorfor blev den skubbet så kraftigt af Nvidia, men var samtidig begejstret og interesseret i teknologien. Ray Tracing var ifølge Nvidia et så stort punkt, at de fandt det nødvendigt at sætte det lige ind i navnet på de produkter, de lancerede. Den nye GeForce “RTX” -serie af kort erstattede den ældre “GTX” -sort, når det kom til de øverste SKU'er som de 60,70,80 og -80Ti SKU'er, som Nvidia normalt frigiver.
Nvidias RTX 2000-serie af grafikkort medførte flere hardwareændringer, der muliggjorde Ray Tracing-understøttelse i spil. De nye Turing-baserede grafikkort pakket specielle kerner i dem, der var dedikeret til denne proces og blev kendt som RT Cores. Formålet med RT-kernerne var specifikt at håndtere al den grafiske beregning, der var nødvendig for at muliggøre realtidsstrålesporing i spil. Nvidia supplerede også kortene med ekstra CUDA-kerner for at øge kortets råstyrke, mens de også tilføjede et nyt sæt kerner kendt som Tensor Cores. Disse kerner var beregnet til at hjælpe med dyb læring og AI-applikationer, såsom en ny form for opskaleringsteknik kendt som Deep Learning Super Sampling. Vi har allerede diskuteret Deep Learning Super Sampling eller DLSS i detaljer i denne artikel, hvor du kan lære mere om AI-drevet opskaleringsteknik.
Ray Tracing er ikke nyt
Mens det ved første øjekast kan virke som om Ray Tracing er en ny teknologi, der er banebrydende for Nvidia, er sandheden faktisk langt fra den. Ja, Nvidia var det første firma, der implementerede understøttelse af realtids Ray Tracing i spil, men det betyder ikke, at Ray Tracing ikke har eksisteret før RTX-serien. Du har sandsynligvis nydt det uden at vide det i årevis, hvis du har set nogen nyere film med CGI-effekter.
Implementeringen i film er ganske vist lidt anderledes og meget mere intensiv end spilversionen. Store budgetproduktioner har luksusen til at kunne bruge en stor mængde penge og tid på at gengive disse scener. Populære animerede film er rapporteret at have brugt ca. 1000 supercomputere til at gengive hele filmen med Ray Tracing-effekter i løbet af en måned. Sådanne gengivelsesprocesser i stor skala er selvfølgelig ikke gennemførlige eller mulige for den gennemsnitlige spiller, der ønsker at spille nogle spil med nogle opdaterede grafik, og Ray Tracing-versionen, der findes i moderne spil, er ganske anderledes i applikationen. Alligevel er Ray Tracing en funktion, der findes i mange produktionsområder uden for spil, hvor film er en af de mere fremtrædende.
Produktivitetssoftware, der bruges af fagfolk til at arbejde på grafisk intensive scener, såsom Blender, understøtter også Ray Tracing-funktioner. Denne computergrafik og gengivelsessoftware bruger forskellige niveauer af strålesporingsapplikationer til at producere fotorealistiske billeder i stadig gengivelser og 3D-animationer.
Hvad er rasterisering?
Så hvorfor blev det anset for nødvendigt af Nvidia at implementere en så kompleks proces i traditionelle spil? Er der nogen forskel i processen med Ray Tracing i spil for at gøre det mere optimeret til arbejdsbyrden? For at forstå mekanismen bag Ray Tracing skal vi først forstå den mekanisme, hvormed spillene traditionelt gengives. Dette hjælper os med at forstå, hvorfor Ray Tracing betragtes som en forbedring og et stort spring fremad i grafisk troskab.
Den teknik, der i øjeblikket bruges til gengivelse, er kendt som “rasterisering”. I denne teknik leder spilkoden GPU'en til at tegne en 3D-scene ved hjælp af polygoner. Disse 2D-figurer (for det meste trekanter) udgør de fleste af de visuelle elementer, der vises på skærmen. Når en scene er tegnet, bliver den oversat eller "rasteriseret" til individuelle pixels, som derefter behandles af en dedikeret skygge. Shader tilføjer farver, teksturer og lyseffekter pr. Pixel-basis for at producere en fuldt gengivet ramme. Denne teknik skal gentages omkring 30-60 gange i sekundet for at producere 30FPS eller 60FPS visuals i spil.
Begrænsninger i rasterisering
Mens rasterisering har været standardtilstand for gengivelse i spil i nogen tid nu, har den iboende proces bag rasterisering nogle begrænsninger. Hovedproblemet med rasterisering er, at denne teknik har svært ved at spore nøjagtigt, hvordan lyset i en scene skal rejse og interagere med andre elementer i scenen. Rasteriseret gengivelse giver ikke de samme resultater som Ray Traced-gengivelse, når det kommer til lyseffekter og overordnet belysning af en bestemt scene. Rasteriseret gengivelse kan også undertiden producere noget unøjagtige billeder i forhold til belysning, som virkelig kan skade nedsænkningen i et bestemt spil. Derfor betragtes Ray Tracing som en overlegen form for gengivelse, når det kommer til grafisk troskab, især i forhold til belysning.
Hvad er Ray Tracing nøjagtigt?
Nu hvor vi har diskuteret den traditionelle form for rasteriseret gengivelse, lad os diskutere den nye anvendelse af Ray-Tracing i realtid i moderne spil. Ray Tracing er en gengivelsesteknik, der skaber et billede baseret på virtuelt lys, og hvordan denne lyskilde interagerer med alle objekterne inde i den virtuelle scene. Ray Tracing kan skabe en langt mere livslignende skildring af scener, der udnytter lysets interaktion med objekterne inde i scenen for at give en følelse af realisme. Med enkle ord er Ray Tracing en teknik, der får lys til at opføre sig i videospil som det gør i det virkelige liv.
Mekanismen bag Ray Tracing
Mekanismen bag Ray Tracing i spil er i sagens natur forskellig fra de andre former for Ray Tracing, der allerede findes i andre brancher som film. I stedet for at spore alle de millioner af stråler, der kommer fra hver lyskilde, mindsker forbrugerkvalitets strålesporing beregningsbelastningen ved i stedet at spore en sti fra kameraet, der repræsenterer brugerens perspektiv, gennem en enkelt pixel, derefter til det objekt, der ligger bag det pixel og derefter endelig tilbage til lyskilden til den pågældende scene. Denne teknik til strålesporing kan også producere flere effekter som absorption, refleksion, refraktion og diffusion af lys som bestemt af objektet, der interagerede med lyset i scenen. Ray Tracing-algoritmen kan også tage resulterende stråler i betragtning, så eventuelle refleksionseffekter eller skygger vises nøjagtigt.
Forskellige former for strålesporing
Ikke alle implementeringer af Ray Tracing er ens. De mange forskellige spil, der understøtter Ray Tracing, implementerer hver funktion på en lidt anden måde. Dette er op til udvikleren af spillet at øge eller mindske kompleksiteten af Ray Tracing i spillet, så spillet leverer den perfekte balance mellem ydeevne og visuel kvalitet. Fra og med 2020 bruger de fleste spil, der understøtter Ray Tracing, kun Ray Tracing til et aspekt af en scene i modsætning til at gengive hele scenen ved hjælp af Ray Tracing selv. Det er muligt, men beregningsomkostningerne ved fuldscenstraysporing er astronomiske sammenlignet med de andre tilgange og er derfor ikke værd at gøre i det mindste lige nu. I skrivende stund er de forskellige implementeringer af Ray Tracing, der i øjeblikket bruges i spil:
- Skygger: Den enkleste og mindst intensive Ray Tracing-implementering er uden tvivl relateret til skyggerne. Her bruges Ray Tracing til perfekt gengivelse af skyggerne i en scene baseret på lysets oprindelse fra lyskilden og selve objektets position. Denne teknik bruges især i "Shadow of the Tomb Raider" til at producere et mere detaljeret skygge-kort, der reagerer på ændringer i miljøet omkring de objekter, der producerer skyggerne. Mest især kan lyskildens bevægelse og vinkel nu medføre de samme ændringer i de resulterende skygger, som vi observerer i det virkelige liv.
- Refleksioner: Refleksioner er ret mere beregningsintensive at gengive ved hjælp af Ray Tracing, men Ray Traced-refleksioner ser fænomenale ud i moderne spil og er sandsynligvis den mest bemærkelsesværdige grafiske forbedring, der kan opnås ved hjælp af Ray Tracing. Refleksioner bruger lyskilden i en scene til nøjagtigt at gengive refleksioner fra reflekterende genstande såsom glas og vand. Et af de mest populære spil, der bruger Ray Traced-refleksioner, er "Control".
- Omgivende okklusion: Dette er også relateret til skygger og er mere eller mindre bundet i den samme grundlæggende proces. Ambient Occlusion bruger Ray Tracing til at forudsige skyggernes vinkel og intensitet baseret på placeringen og placeringen af objekter i en scene. Når det er gjort rigtigt, kan Ambient Occlusion tilføje nogle fantastiske detaljer og realisme til et spil.
- Global belysning: Sandsynligvis den mest beregningsintensive form for implementering af Ray Tracing i moderne spil, Global Illumination bruger Ray Tracing til nøjagtigt at skildre verdensbelysningen. Dette giver en meget mere realistisk følelse af belysning, når den tændes, men det har også et massivt hit til ydeevne på grund af den enorme mængde data, der behandles. “Metro Exodus” bruger Ray Tracing til at give en langt mere realistisk form for Global Illumination.
- Fuld sti sporing: Endelig ser vi også nogle spil opstå, der er fuldt sporede, hvilket i det væsentlige betyder, at alt er Ray Traced. Nu tildelt er disse spil noget enklere og mindre end de andre spil, der var mere eller mindre AAA-titler fra store virksomheder, men det betyder ikke, at de ikke ser imponerende ud. Faktisk kan nogle hævde, at disse spil med fuld sti-sporing ser bedre ud end alle andre Ray Tracing-implementeringer. “Minecraft RTX” og “Quake RTX” er to af de titler, der er fuldt sporet tilgængelige i skrivende stund.
Hvad skal jeg bruge til strålesporing?
Som nævnt før er Ray Tracing en meget beregningsintensiv opgave, så det kræver noget bestemt high-end hardware for at klare sig godt. I skrivende stund er der flere grafikkort fra både AMD og Nvidia, som understøtter hardware-accelereret Ray Tracing. Selv konsoller fra Sony og Microsoft understøtter denne funktion. Det udvider listen over understøttet hardware lidt:
- Nvidia GeForce RTX 2000-serien
- Nvidia GeForce RTX 3000-serien
- AMD Radeon RX 6000-serien
- Microsoft Xbox Series X
- Sony PlayStation 5
Husk, at hvis AMD håndterer Ray Tracing lidt anderledes end Nvidia, så er der en noget større ydeevne, der overholdes, når du bruger AMD-kort til Ray Tracing. Hvis du også vil opleve den forbedrede ydeevne ved hjælp af Deep Learning Super Sampling, er denne funktion også kun tilgængelig på Nvidias RTX-kort. AMD arbejder angiveligt på en DLSS-lignende funktion til deres RX 6000-seriekort, men i øjeblikket er den stadig under udvikling i skrivende stund.
Nvidia har også opfundet udtrykket "Giga Rays" for at give brugerne en idé om de relative Ray Tracing-muligheder på sine RTX-grafikkort. Nvidia siger, at 5 Giga-stråler pr. Sekund er den mindste mængde virtuelt lys, der ideelt set kræves for fuldt ud at belyse et typisk rum i et videospilmiljø. GeForce RTX 2070 tilbyder 5 Giga-stråler / sek, mens RTX 2080 tilbyder 8 Giga-stråler pr. Sekund. RTX 2080Ti tilbyder kæmpestore 10 Giga-stråler / sek. Det er dog en noget vilkårlig enhed, så det skal kun bruges generelt til at vise relative præstationsforventninger.
Performance Loss og DLSS
Som det er tydeligt nu, er den største ulempe ved Ray Tracing hit til ydeevne på grund af den store mængde dedikeret beregning, der skal gøres i processen. I nogle spil er præstationshit så stort, at det kan føre spillet til en framerate, der ikke længere betragtes som spilbar. Performance-hit er endnu større i spil, der bruger mere komplekse implementeringer af Ray Tracing såsom Reflections, Global Illumination eller Full Path Tracing.
Naturligvis tænkte Nvidia på denne præstationsstraffesituation og udviklede også en ny kompensationsteknik kendt som Deep Learning Super Sampling. Denne teknik kaldet DLSS blev frigivet sammen med Nvidias RTX 2000-serie tilbage i 2018. Vi har allerede udforsket DLSS i detaljer i denne artikel, men essensen af denne teknologi er, at den gengiver billedet med en lavere opløsning og derefter smart og metodisk opskalerer billedet til at matche outputopløsningen for at give langt bedre ydeevne end naturlig gengivelse. DLSS er en fremragende kompensationsmekanisme for tab af ydeevne af Ray Tracing, men den kan også bruges uden Ray Tracing for at give endnu højere rammer og en meget bedre oplevelse.
Den største fordel ved DLSS er, at den bruger Deep Learning og AI til at opskalere billedet, så der er ringe eller ingen forskel på visuel klarhed mellem det oprindelige og det opskalerede billede. Nvidia bruger Tensor-kernerne på sin RTX-serie af kort til at fremskynde DLSS-processen, så denne opskalering kan beregnes i det tempo af det spil, der gengives. Dette er en virkelig spændende teknologi, som vi gerne vil se udvikle sig videre og blive bedre, end den er nu.
Fremtiden for strålesporing
Ray Tracing i spil er lige begyndt, og vi kan med sikkerhed sige, at det er kommet for at blive. AMD har netop frigivet deres første række kort, der understøtter fuld realtidsstrålesporing med RX 6000-serien, og PlayStation 5 og Xbox Series X har også understøttelse af Ray Tracing. De nuværende forhindringer, der skal overvindes, inkluderer tab af ydeevne og det lave antal spil, der understøtter det. De aktuelle spil, der understøtter Ray Tracing i skrivende stund, inkluderer:
- Midt i ondt
- Slagmark V
- Lys hukommelse
- Call of Duty: Modern Warfare (2019)
- Call Of Duty: Black Ops Cold War
- Styring
- Crysis Remastered
- Giv os månen
- Fortnite
- Ghostrunner
- Retfærdighed
- Mechwarrior V: Lejesoldater
- Metro Exodus
- Minecraft
- Moonlight Blade
- Pumpkin Jack
- Quake II RTX
- Shadow of the Tomb Raider
- Bliv i lyset
- Watch Dogs Legion
- Wolfenstein: Youngblood
I mellemtiden har Nvidia bekræftet, at følgende titler også vil understøtte Ray Tracing, når de kommer ud:
- Atomisk hjerte
- Cyberpunk 2077 (lancering)
- Døende lys 2
- Evig død
- Tilmeldt (november lukket beta)
- JX3
- Mortal Shell (november)
- Observer: System Redux
- Ready or Not (tidlig adgangsstart)
- Ring Of Elysium (lancering)
- Synkroniseret: Off-Planet
- The Witcher III
- Vampire: The Masquerade - Bloodlines 2
- World Of Warcraft: Shadowlands (november)
- Xuan-Yuan Sword VII (lancering)
Selvom disse måske ikke virker som mange spil, repræsenterer det en start mod en retning, hvor den fremherskende form for gengivelse meget vel kan være Ray Tracing. Hvad præstationen angår, er det virkelig svært at forudsige, om præstationshit fra Ray Tracing vil blive sænket lidt. Hvad der dog er rimeligt at forvente, er, at DLSS bliver bedre og tilbyder tilstrækkelig kompensation for det præstationstab, der opstår ved at aktivere Ray Tracing. I skrivende stund er listen over spil, der understøtter DLSS, ikke ekspansiv på nogen måde, men det er en god start at huske på, at Nvidia også har annonceret DLSS-support til flere kommende spil. Her er alle de spil, der i øjeblikket understøtter Deep Learning Super Sampling:
- Hymne
- Slagmark V
- Lys hukommelse
- Call Of Duty: Black Ops Cold War
- Styring
- Death Stranding
- Giv os månen
- F1 2020
- Final Fantasy XV
- Fortnite
- Ghostrunner
- Retfærdighed
- Marvels Avengers
- Mechwarrior V: Lejesoldater
- Metro Exodus
- Minecraft
- Monster Hunter: Verden
- Shadow of the Tomb Raider
- Watch Dogs Legion
- Wolfenstein Youngblood
Som du måske har bemærket, er de fleste af de spil, der understøtter DLSS, titler, der også har en eller anden form for Ray Tracing-understøttelse. Dette giver yderligere bekræftelse af teorien om, at DLSS er udviklet og frigivet hovedsageligt som en kompensationsteknologi for at afhjælpe det enorme tab af ydeevne i Ray Tracing. DLSS er dog en alvorligt imponerende teknologi, da Nvidia har forklaret, at den bruger en supercomputer til at udføre komplekse beregninger, der træner algoritmen, som Tensor-kernerne inde i Nvidia GPU'erne følger. Ligesom Ray Tracing forventes DLSS også at komme til flere spil:
- Midt i ondt
- Atomisk hjerte
- Grænse
- Cyberpunk 2077 (lancering)
- Edge Of Eternity (november)
- JX3
- Mortal Shell (november)
- Mount & Blade II Bannerlord (november)
- Ready or Not (tidlig adgangsstart)
- Skræmmere
- Vampire: The Masquerade - Bloodlines 2
- Xuan-Yuan Sword VII (lancering)
DLSS kombineret med Ray Tracing ser ud til at være fremtiden for spilbranchen fra 2020.
Konklusion
Rasterisering er den teknik, der har været brugt til at konvertere et 2D-plan af polygoner til et 3D-billede på skærmen i spil i lang tid nu. I 2018 introducerede Nvidia RTX 2000-serien af grafikkort med fuld understøttelse af realtidsstrålesporing i spil, en teknik der bruger komplekse beregninger til at spore lysstrålerne i en scene for at skabe nøjagtige afbildninger af hvordan lyset ville interagere med objekterne i en scene. Dette tog spilverdenen med en uventet storm, og hele branchen satte Ray Tracing som deres primære fokus fremadrettet.
I skrivende stund har Nvidia frigivet en ny generation af grafikkort, der yderligere forbedrer deres Ray Tracing-ydeevne, mens både AMD og konsollerne også har annonceret fuld support til funktionen. Nvidia har også forbedret deres Deep Learning Super Sampling-teknik, der bruger AI og Deep Learning til smart opskalering af billedet, der blev gengivet med en lavere opløsning for at kompensere for præstationstabet på grund af Ray Tracing.
Det ser ud til, at Ray Tracing er kommet for at blive, og selvom det oprindelige antal titler, der understøtter funktionen ikke er ekspansivt, bliver flere og flere titler annonceret, som har komplet understøttelse af Ray-Tracing i realtid fremover. Det er nu op til udviklerne at finjustere Ray Tracing-funktionerne i deres kommende spil og også at øge antallet af titler, der understøtter denne funktion. Nvidia og AMD har også et ansvar for at gøre deres hardware optimeret til denne funktion, så spillere ikke behøver at opleve ødelæggende præstationstab, når de vil slå Ray Tracing til.