Ray Tracing vs Rasterized Rendering - Explained
Efter lanseringen av Nvidias Turing-familj av GPU: er 2018 såg spelvärlden en exponentiell ökning av diskussionen om en funktion som kallas ”Ray Tracing”. Nvidias då helt nya "RTX" -serie med grafikkort gav stöd för något som kallas "Real-Time Ray Tracing" i spel. De flesta var osäkra på vad den här nya funktionen var och varför pressades den så kraftigt av Nvidia men var samtidigt upphetsad och intresserad av tekniken. Ray Tracing var enligt Nvidia en så stor punkt att de ansåg att det var nödvändigt att sätta det rätt i namnet på de produkter som de lanserade. Den nya GeForce “RTX” -serien ersatte den äldre sorten “GTX” när det gällde de bästa SKU: erna som 60,70,80 och -80Ti SKU: er som Nvidia vanligtvis släpper.
Nvidias RTX 2000-serie av grafikkort medförde flera hårdvaruändringar som möjliggjorde stöd för Ray Tracing i spel. De nya Turing-baserade grafikkorten packade in speciella kärnor i dem som var dedikerade till denna process och var kända som RT Cores. Syftet med RT-kärnorna var att specifikt hantera all grafisk beräkning som krävdes för att möjliggöra realtidsspårning i realtid i spel. Nvidia kompletterade också korten med extra CUDA-kärnor för att öka kortens råa kraft, samtidigt som man lade till en ny uppsättning kärnor som kallas Tensor Cores. Dessa kärnor var avsedda att hjälpa till med djupinlärning och AI-applikationer, såsom en ny form av uppskalningsteknik som kallas Deep Learning Super Sampling. Vi har redan diskuterat Deep Learning Super Sampling eller DLSS i detalj i den här artikeln, där du kan lära dig mer om AI-driven uppskalningsteknik.
Ray Tracing är inte nytt
Medan det vid första anblicken kan verka som att Ray Tracing är en ny teknik som är banbrytande av Nvidia, är sanningen faktiskt långt ifrån den. Ja, Nvidia var det första företaget att implementera stöd för realtids Ray Tracing i spel, men det betyder inte att Ray Tracing inte har funnits före RTX-serien. Du har antagligen haft det utan att veta det i flera år om du har tittat på någon ny film som innehåller CGI-effekter.
Implementeringen i filmer är visserligen lite annorlunda och mycket mer intensiv än spelversionen. Stora budgetproduktioner har lyxen att kunna spendera en stor summa pengar och tid på att rendera dessa scener. Populära animerade filmer har rapporterats ha använt cirka 1000 superdatorer för att återge hela filmen med Ray Tracing-effekter under en månad. Sådana storskaliga renderingsprocesser är naturligtvis inte genomförbara eller möjliga för den genomsnittliga spelaren som vill spela vissa spel med några uppdaterade bilder, så Ray Tracing-versionen som finns i moderna spel är ganska annorlunda i tillämpningen. Ändå är Ray Tracing en funktion som finns i många produktionsområden utanför spel, med filmer som en av de mer framträdande.
Produktivitetsprogramvaror som används av proffs för att arbeta på grafiskt intensiva scener, till exempel Blender, stöder också Ray Tracing-funktioner. Dessa datorgrafik- och renderingsprogramvara använder olika nivåer av strålspårningsapplikationer för att producera fotorealistiska bilder i stillbild och 3D-animationer.
Vad är rasterisering?
Så varför ansågs det vara nödvändigt av Nvidia att implementera en så komplex process i traditionella spel? Finns det någon skillnad i processen för Ray Tracing i spel för att göra den mer optimerad för arbetsbelastningen? För att förstå mekanismen bakom Ray Tracing måste vi först förstå den mekanism genom vilken spelen traditionellt återges. Detta hjälper oss att förstå varför Ray Tracing anses vara en förbättring och ett stort steg framåt i grafisk trovärdighet.
Tekniken som för närvarande används för rendering är känd som "Rasterization". I denna teknik styr spelkoden GPU: n att rita en 3D-scen med polygoner. Dessa 2D-former (mestadels trianglar) utgör de flesta av de visuella elementen som visas på skärmen. Efter att en scen ritats blir den översatt eller "rasteriserad" till enskilda pixlar som sedan bearbetas av en dedikerad skuggning. Skuggaren lägger till färger, texturer och ljuseffekter per pixel för att skapa en helt återgiven ram. Denna teknik måste upprepas 30-60 gånger per sekund för att producera 30FPS eller 60FPS-bilder i spel.
Begränsningar av rasterisering
Även om rasterisering har varit standardläget för återgivning i spel under en längre tid, har den inneboende processen bakom rasterisering vissa begränsningar. Det största problemet med rasterisering är att denna teknik har svårt att spåra exakt hur ljuset i en scen ska resa och interagera med andra delar av scenen. Rastrerad rendering ger inte samma resultat som Ray Traced-rendering när det gäller ljuseffekter och övergripande belysning för en viss scen. Rastrerad rendering kan också ibland producera något felaktiga bilder i förhållande till belysning som verkligen kan skada fördjupningen i ett visst spel. Det är därför som Ray Tracing anses vara en överlägsen form av rendering när det gäller grafisk trovärdighet, särskilt i förhållande till belysning.
Vad är Ray Tracing exakt?
Nu när vi har diskuterat den traditionella formen av rasteriserad rendering, låt oss diskutera den nya tillämpningen av realtidsspårning i realtid i moderna spel. Ray Tracing är en renderingsteknik som skapar en bild baserad på virtuellt ljus och hur den ljuskällan interagerar med alla objekt i den virtuella scenen. Ray Tracing kan skapa en mycket mer livlig skildring av scener som utnyttjar ljusets interaktion med objekten inuti scenen för att ge en känsla av realism. Med enkla ord är Ray Tracing en teknik som gör att ljus beter sig i videospel som det gör i verkliga livet.
Mekanismen bakom Ray Tracing
Mekanismen bakom Ray Tracing i spel skiljer sig från de andra formerna av Ray Tracing som redan finns i andra branscher som filmer. Istället för att spåra alla miljontals strålar som kommer från varje ljuskälla minskar strålspårning av konsumentkvalitet beräkningsbelastningen genom att istället spåra en väg från kameran som representerar användarens perspektiv, genom en enda pixel, sedan till vilket föremål som ligger bakom det pixel och sedan slutligen tillbaka till ljuskällan för scenen i fråga. Denna teknik för strålspårning kan också ge flera effekter som absorption, reflektion, refraktion och diffusion av ljus som bestäms av objektet som interagerade med ljuset i scenen. Ray Tracing-algoritmen kan också ta hänsyn till resulterande strålar så att eventuella reflektionseffekter eller skuggor visas korrekt.
Olika former av strålspårning
Inte alla implementeringar av Ray Tracing är desamma. Många spel som stöder Ray Tracing implementerar varje funktion på ett något annorlunda sätt. Det är upp till utvecklaren av spelet att öka eller minska komplexiteten i Ray Tracing i spelet så att spelet ger den perfekta balansen mellan prestanda och visuell kvalitet. Från och med 2020 använder de flesta spel som stöder Ray Tracing vanligtvis bara Ray Tracing för en aspekt av en scen i motsats till att rendera hela scenen med Ray Tracing själv. Det är möjligt, men beräkningskostnaderna för helbildsspårning är astronomiska jämfört med andra tillvägagångssätt och är därför inte värda ansträngningen åtminstone just nu. I skrivande stund är de olika implementeringarna av Ray Tracing som för närvarande används i spel:
- Skuggor: Den enklaste och minst intensiva Ray Tracing-implementeringen är förmodligen relaterad till skuggorna. Här används Ray Tracing för att perfekt skugga skuggorna i en scen baserat på ljusets ursprung från ljuskällan och själva objektets position. Denna teknik används framför allt i "Shadow of the Tomb Raider" för att producera en mer detaljerad skuggkarta som svarar på förändringarna i miljön runt objekten som producerar skuggorna. Framför allt kan ljuskällans rörelse och vinkel medföra samma förändringar i de resulterande skuggorna som vi observerar i verkliga livet.
- Reflektioner: Reflektioner är ganska mer beräkningsintensiva att göra med Ray Tracing, men Ray Traced-reflektioner ser fenomenala ut i moderna spel och är förmodligen den mest anmärkningsvärda grafiska förbättringen som kan uppnås med Ray Tracing. Reflektioner använder ljuskällan i en scen för att korrekt återge reflektioner från reflekterande föremål som glas och vatten. Ett av de mest populära spelen som använder Ray Traced-reflektioner är "Control".
- Omgivande ocklusion: Detta är också relaterat till skuggor och är mer eller mindre knuten till samma grundläggande process. Ambient Occlusion använder Ray Tracing för att förutsäga skuggans vinkel och intensitet baserat på objektens placering och placering i en scen. När det är gjort rätt kan Ambient Occlusion lägga till några fantastiska detaljer och realism i ett spel.
- Global belysning: Förmodligen den mest beräkningsintensiva formen av Ray Tracing-implementering i moderna spel, använder Global Illumination Ray Tracing för att korrekt skildra världsbelysningen. Detta ger en mycket mer realistisk känsla av belysning när den slås på, men den har också en enorm träff för prestanda på grund av den stora mängden data som bearbetas. "Metro Exodus" använder Ray Tracing för att ge en mycket mer realistisk form av Global Illumination.
- Fullständig sökning: Slutligen ser vi också att några spel dyker upp som är helt spårade, vilket i huvudsak betyder att allt är Ray Traced. Nu beviljas är dessa spel något enklare och mindre än de andra spelen som var mer eller mindre AAA-titlar från stora företag, men det betyder inte att de inte ser imponerande ut. I själva verket kan vissa hävda att dessa spel med full spårning ser bättre ut än alla andra Ray Tracing-implementeringar. "Minecraft RTX" och "Quake RTX" är två av de titlar som är fullständigt spårade tillgängliga i skrivande stund.
Vad behöver jag för strålespårning?
Som tidigare nämnts är Ray Tracing en mycket beräkningsintensiv uppgift, så det kräver viss avancerad hårdvara för att prestera bra. I skrivande stund finns det flera grafikkort från både AMD och Nvidia som stöder hårdvaruaccelererad Ray Tracing. Även konsoler från Sony och Microsoft stöder den här funktionen. Det utvidgar listan över hårdvara som stöds lite:
- Nvidia GeForce RTX 2000-serien
- Nvidia GeForce RTX 3000-serien
- AMD Radeon RX 6000-serien
- Microsoft Xbox Series X
- Sony PlayStation 5
Tänk på att om AMD hanterar Ray Tracing lite annorlunda än Nvidia, så finns det ett något större prestationsstraff som observeras när du använder AMD-kort för Ray Tracing. Om du vill uppleva förbättrad prestanda med Deep Learning Super Sampling är den funktionen också endast tillgänglig på Nvidias RTX-kort. AMD arbetar förmodligen på en DLSS-liknande funktion för sina RX 6000-seriekort, men för närvarande är den fortfarande under utveckling i skrivande stund.
Nvidia har också myntat termen "Giga Rays" för att ge användarna en uppfattning om de relativa Ray Tracing-funktionerna i sina RTX-grafikkort. Nvidia säger att 5 Giga-strålar per sekund är den minsta mängd virtuellt ljus som helst behövs för att helt upplysa ett typiskt rum i en videospelmiljö. GeForce RTX 2070 erbjuder 5 Giga-strålar / sek, medan RTX 2080 erbjuder 8 Giga-strålar per sekund. RTX 2080Ti erbjuder en hel del 10 Giga-strålar / sek. Det är dock en något godtycklig enhet, så det bör endast användas generellt för att visa relativa prestationsförväntningar.
Prestandaförlust och DLSS
Som tydligt framgår nu är den största nackdelen med Ray Tracing träffet för prestanda på grund av den stora mängden dedikerad beräkning som behöver göras i processen. I vissa spel är prestationshiten så stor att den kan ta spelet till en framerate som inte längre anses vara spelbar. Prestationshiten är ännu större i spel som använder mer komplexa implementeringar av Ray Tracing som Reflections, Global Illumination eller Full Path Tracing.
Naturligtvis tänkte Nvidia på denna prestationsstraffssituation och utvecklade också en ny kompensationsteknik som kallas Deep Learning Super Sampling. Denna teknik som kallas DLSS släpptes tillsammans med Nvidias RTX 2000-serie redan 2018. Vi har redan utforskat DLSS i detalj i den här artikeln, men kärnan i denna teknik är att den gör bilden med en lägre upplösning och sedan smart och metodiskt uppskalar bilden för att matcha utgångsupplösningen för att ge mycket överlägsen prestanda jämfört med naturlig återgivning. DLSS är en utmärkt kompensationsmekanism för prestandaförlusten av Ray Tracing, men den kan också användas utan Ray Tracing för att ge ännu högre ramar och en mycket bättre upplevelse.
Den största fördelen med DLSS är att den använder Deep Learning och AI för att uppskalera bilden så att det finns liten eller ingen skillnad mellan visuell klarhet mellan den ursprungliga och den uppskalade bilden. Nvidia använder Tensor-kärnorna på sin RTX-kortserie för att påskynda DLSS-processen så att denna uppskalningsberäkning kan göras i takt med det spel som återges. Detta är en riktigt spännande teknik som vi vill se utvecklas vidare och bli bättre än den är nu.
Framtiden för Ray Tracing
Ray Tracing i spel har precis börjat och vi kan säga säkert att det är här för att stanna. AMD har precis släppt sina första sortiment av kort som stöder fullständig realtidsspårning i realtid med RX 6000-serien, och PlayStation 5 och Xbox Series X har också stöd för Ray Tracing. De nuvarande hindren som måste övervinnas inkluderar prestandaförlust och det låga antalet spel som stöder det. De aktuella spelen som stöder Ray Tracing i skrivande stund inkluderar:
- Amid Evil
- Battlefield V
- Ljus minne
- Call of Duty: Modern Warfare (2019)
- Call Of Duty: Black Ops Cold War
- Kontrollera
- Crysis Remastered
- Leverera oss månen
- Fortnite
- Ghostrunner
- Rättvisa
- Mechwarrior V: Legosoldater
- Metro Exodus
- Minecraft
- Moonlight Blade
- Pumpkin Jack
- Quake II RTX
- Shadow of the Tomb Raider
- Stanna i ljuset
- Watch Dogs Legion
- Wolfenstein: Youngblood
Under tiden har Nvidia bekräftat att följande titlar också kommer att stödja Ray Tracing när de kommer ut:
- Atomic Heart
- Cyberpunk 2077 (lansering)
- Döende ljus 2
- Doom Evig
- Anmäld (november stängd beta)
- JX3
- Mortal Shell (november)
- Observer: System Redux
- Ready or Not (tidig åtkomstlansering)
- Ring Of Elysium (lansering)
- Synkroniserad: Off-Planet
- The Witcher III
- Vampire: The Masquerade - Bloodlines 2
- World Of Warcraft: Shadowlands (november)
- Xuan-Yuan Sword VII (lansering)
Även om dessa kanske inte verkar som många spel, representerar det en start mot en riktning där den dominerande formen av rendering mycket väl kan vara Ray Tracing. När det gäller prestanda är det verkligen svårt att förutsäga om prestationshiten från Ray Tracing kommer att sänkas lite eller inte. Det som dock är rimligt att förvänta sig är att DLSS blir bättre och erbjuder tillräcklig kompensation för prestandaförlusten som uppstår genom att aktivera Ray Tracing. I skrivande stund är listan över spel som stöder DLSS inte expansiv på något sätt, men det är en bra början att komma ihåg att Nvidia har meddelat DLSS-stöd för flera kommande spel också. Här är alla spel som för närvarande stöder Deep Learning Super Sampling:
- Hymn
- Battlefield V
- Ljus minne
- Call Of Duty: Black Ops Cold War
- Kontrollera
- Death Stranding
- Leverera oss månen
- F1 2020
- Final Fantasy XV
- Fortnite
- Ghostrunner
- Rättvisa
- Marvels Avengers
- Mechwarrior V: Legosoldater
- Metro Exodus
- Minecraft
- Monster Hunter: World
- Shadow of the Tomb Raider
- Watch Dogs Legion
- Wolfenstein Youngblood
Som du kanske har märkt är de flesta spel som stöder DLSS titlar som också har någon form av Ray Tracing-stöd. Detta ger ytterligare bekräftelse på teorin att DLSS har utvecklats och släppts främst som en kompensationsteknik för att lindra den enorma prestandaförlusten i Ray Tracing. DLSS är dock en allvarligt imponerande teknik, eftersom Nvidia har förklarat att den använder en superdator för att utföra komplexa beräkningar som tränar algoritmen som Tensor-kärnorna i Nvidia GPU: er följer. Precis som Ray Tracing förväntas DLSS också komma till fler spel:
- Amid Evil
- Atomic Heart
- Gräns
- Cyberpunk 2077 (lansering)
- Edge Of Eternity (november)
- JX3
- Mortal Shell (november)
- Mount & Blade II Bannerlord (november)
- Ready or Not (tidig åtkomstlansering)
- Rensare
- Vampire: The Masquerade - Bloodlines 2
- Xuan-Yuan Sword VII (lansering)
DLSS, i kombination med Ray Tracing, verkar vara framtiden för spelbranschen från och med 2020.
Slutsats
Rasterisering är den teknik som har använts för att konvertera ett 2D-plan av polygoner till en 3D-bild på skärmen i spel under lång tid nu. År 2018 introducerade Nvidia RTX 2000-serien av grafikkort med fullt stöd för realtidsstråling i spel, en teknik som använder komplexa beräkningar för att spåra ljusstrålarna i en scen för att skapa exakta skildringar av hur ljuset skulle interagera med föremålen i en scen. Detta tog spelvärlden med en oväntad storm och hela branschen satte Ray Tracing som sitt främsta fokus framöver.
I skrivande stund har Nvidia släppt en ny generation grafikkort som ytterligare förbättrar deras Ray Tracing-prestanda medan både AMD och konsolerna också har meddelat fullt stöd för funktionen. Nvidia har också förbättrat sin Deep Learning Super Sampling-teknik som använder AI och Deep Learning för att smart uppskala bilden som gjordes med en lägre upplösning för att kompensera för prestandaförlusten på grund av Ray Tracing.
Det verkar som om Ray Tracing är här för att stanna, och även om det ursprungliga antalet titlar som stöder funktionen inte är expansivt, tillkännages fler och fler titlar som har fullständigt stöd för realtidsspårning i framtiden. Det är nu upp till utvecklarna att finjustera Ray Tracing-funktionerna i sina kommande spel, och också att öka antalet titlar som stöder den här funktionen. Nvidia och AMD har också ett ansvar att göra sin hårdvara optimerad för den här funktionen så att spelare inte behöver uppleva förödande prestandaförlust när de vill aktivera Ray Tracing.