Sammanfattning

Det som står på denna sida ska inte tas som någon absolut sanning, utan är tankar och intryck som är färgade av mina personliga preferenser. Krydda gärna med egna idéer i kommentarsfältet. Jag är övertygad om att förutsägelserna om ray tracings vara eller icke vara i spel kan se otroligt olika ut mellan personer som prioriterar lite olika.

Giga-flopp eller mega-ray-hit?

Under lanseringen av Geforce RTX 2000-korten tryckte Nvidias VD Jensen Huang hårt på hur revolutionerande de anser att tekniken i arkitekturen Turing är. Finns det någon substans i detta eller är det bara PR-snack?

Här får man försöka dra paralleller till tidigare större förändringar av grundläggande teknik. De två stora händelserna inom grafikutveckling jag kommer att tänka på är introduktionen av rastrering på GPU samt manipulering av 3D-koordinater på GPU (Hardware Transform & Lightning, HW T&L).

Rastrering på GPU var initialt en sorglig historia då det saknades ett standardgränssnitt som spel kunde använda för att utnyttja kraften i GPU:er. Vinsten att gå från att rastrera på CPU till att utföra detta på en GPU var så uppenbart stor, både sett till prestanda och kvalitet. DirectX 3D och till mindre del OpenGL blev därför snabbt populära.

Det fanns ändå en period på något år där titlar fortsatte komma med stöd för CPU-rendering och stöd för proprietära lösningar likt "Glide", som bara fungerade på GPU:er från 3dfx Interactive.

quake.jpg

Hardware Transform & Lightning påminner rätt mycket om DirectX Raytracing i att första versionen av DirectX som kunde utnyttja tekniken (version 7.0) lanserades i princip samtidigt som det första konsumentkortet med stöd för den – Geforce 256.

Under första året fanns därför nästan inget spel som drog nytta av HW T&L. Undantagen var Quake III Arena och spel baserade på samma motor, då OpenGL redan tidigare kunde stödja tekniken.

Till skillnad från GPU-rastrering gav de HW T&L inte något jätteknuff i prestanda då AMD något år tidigare hade lanserat 3DNow! och Intel precis hade lanserat SSE i sina respektive CPU:er. Både 3DNow! och SSE är väldigt effektiva på den typ av operation som frekvent används vid T&L, Transform & Lightning. Därutöver ökade CPU-prestanda betydligt snabbare under den här perioden än vad som är fallet nu.

För ray tracing ger RT-kärnorna en prestandaknuff i nivå med vad de tidigare GPU:erna gav över CPU i rastrering. Det handlar om 4–5 gånger högre prestanda.

Även om framtiden för ray-tracing i spel ännu inte är avgjord borde RT-kärnorna göra CPU-delen irrelevanta för rendering, på samma sätt som CPU blev irrelevant för rastrering och T&L när det kunde hanteras långt mer effektivt av en GPU.

Men likt alla tidigare teknikskiften kommer det ta tid för programvaran att anpassa sig. Ett hinder utöver att få ut kretsar med accelerering av ray tracing är ju kravet på spelmotorn att köra DirectX 12 eller Vulkan. Trots 3,5 år på nacken är DirectX 12 fortfarande långt ifrån en självklarhet i nya speltitlar.

Rendering har inte nått ändstation

Kvaliteten på spelgrafik ökar inte alls i samma takt som när 3D-grafikkorten låg i sin linda. All lågt hängande frukt i shader-trädet har sedan länge förbrukats. Att märkbart lyfta nivån kräver i många fall lösningar som är allt mer beräkningstunga och som kräver allt mer avancerade shaders.

Blender 2.8 ger en inblick i vad som trots allt är möjligt med rendering, givet tillräckligt med beräkningskraft. En ny renderings-motor, Eevee, har lagts till. Den kan ses som en spelmotor med reglaget väl förbi inställningen "Ultra". Eevee ger inte samma kvalitet på scenerna som ray tracing-motorn Cycles, men tiden att beräkna en scen är betydligt kortare.

classroom_cycles.jpg

Genererad med Cycles, det vill säga ray tracing.

classroom_eevee.jpg

Genererad med Eevee, det vill säga OpenGL-rastrerad.

Jag levde i villfarelsen att Pixar-filmer som Toy Story (1995) skapats med ray tracing. Här får de som vet mer om ämnet gärna rätt mig, men informationen jag snubblade över inför denna artikel nämner att Toy Story använde sig av en avancerad form av rendering, då ray tracing ansågs ha för hög datorkostnad.

Den första filmen som fullt ut använde ray tracing ska vara Monsters University (2013), medan Cars (2006) använde sig av hybrid-rendering.

Men bildfrekvensen ...

Som nämnts tidigare är det egentligen inte mängden beräkningar som är primär flaskhals för ray tracing. Sett till flyttalskapacitet finns mer än tillräckligt med kraft i tidigare GPU-modeller.

Problemet är att ray-tracing använder sig av "fel" typ av parallellism jämfört med vad GPU:er traditionellt optimerats för. Därtill behöver ray tracing tillgång till information från RAM-minnet på ett sätt som kräver låg latens, medan GPU:er är optimerade för hög bandbredd.

Jag tror ändå att DirectX Raytracing och Vulkans motsvarighet kommer slå igenom betydligt snabbare än vad DirectX 12 och Vulkan gjort. Hybrid-rendering är kodordet, det vill säga det mesta kommer fortsätta använda traditionell rendering medan vissa effekter hanteras med hjälp av ray tracing.

justice_rtx.jpg

Scen från spelet Justice. Likt Battlefield V är det reflektioner som hanteras med ray tracing.

Orsaken är mångbottnad. Dels ger samtidig rendering och ray tracing möjlighet för GPU:n att bättre utnyttja sina tillgängliga resurser, då de två teknikerna har olika flaskhalsar.

Dels är PC-marknaden väldigt heterogen. Spelmotorerna måste ha goda möjligheter att skala upp och ned grafiknivån för att passa många olika system. Ray tracing kan ge det med väldigt kraftiga extra ögongodis, vilket även är bra exponering för spelutvecklare då de flesta tester av spelet kommer köras på sådana system.

Slutligen, oavsett om nästa generation spelkonsoler får stöd för ray tracing eller inte är tekniken fullt rimlig att använda på PC, just då hybrid-rendering gör det enkelt att lägga till och ta bort enskilda ray tracing-effekter.

Det tar tid

Det pratas ofta om hur fort allt rör sig inom datorvärlden. Det är självklart sant, men alla större förändringar tar ofta långt mycket mer tid än man tror.

Klart är ändå; för att hitta de riktigt revolutionerna förändringarna måste man ha visioner och ta risker. Citat från två som slagit huvudet på spiken:

If I had asked people what they wanted, they would have said faster horses.
– Henry Ford

A lot of times, people don't know what they want until you show it to them.
– Steve Jobs

Det återstår att se om Nvidias hårdsatsning på ray tracing blir en start på något stort eller om det blir en snart bortglömd parentes i spelhistorien.