Hvordan Nvidias RTX sanntidsstrålesporing fungerer

Siden den ble oppfunnet for flere tiår siden, har strålesporing vært den hellige gral for å gjengi datagrafikk realistisk. Ved å spore individuelle lysstråler mens de spretter av flere flater, kan det trofast gjenskape refleksjoner, spredning av underflaten (når lys trenger inn gjennom litt av en overflate som menneskelig hud, men sprer seg tilbake når det går), gjennomsiktighet og andre nyanser som hjelper gjøre en scene overbevisende. Det brukes ofte i spillefilmer og reklame, men den store prosesseringstiden som er nødvendig har holdt den borte fra sanntidsapplikasjoner som spill.



Med sitt nye Turing GPU-familie , Nvidia tar sikte på å endre alt dette ved å lansere forbedret sanntidsstøtte for RTX, dets høyytelses strålesporingsbibliotek som kan kjøre detaljerte scener til spillverdige bildefrekvenser. Vi vil se nærmere på hva som gjør strålesporing vanskelig, hva som gjør Nvidias RTX spesiell, og hvordan Turing-arkitekturen ytterligere akselererer den.



Hvordan Ray Casting blir til Ray Tracing

Teoretisk sett innebærer strålesporing å kaste stråler fra hver lyskilde i en scene, generere (vanligvis tilfeldig) lysstråler fra den, og følge dem når de treffer og reflekteres av overflater. På hver overflate kombineres lysets egenskaper med egenskapene til materialet det slår, og selvfølgelig vinkelen det krysser. Lyset, som kan ha plukket opp en annen farge fra å reflektere av objektet, blir deretter sporet videre, ved hjelp av flere stråler som simulerer det reflekterte lyset - dermed begrepet strålesporing. Sporingsprosessen fortsetter til strålene forlater scenen.



Selv om denne prosessen er god i teorien, er den utrolig tidkrevende, siden de fleste stråler ikke treffer noe vi er interessert i, og andre stråler kan sprette rundt på ubestemt tid. Så virkelige løsninger gjør en smart optimalisering. De bruker et lysprinsipp som kalles gjensidighet, som sier det omvendte av en lysstråle fungerer på samme måte som originalen for å kaste stråler fra det virtuelle kameraet ut i scenen. Det betyr at bare stråler som vil bidra til den endelige scenen blir kastet, noe som øker effektiviteten. Disse strålene blir deretter fulgt (sporet) når de spretter rundt til de enten treffer en lyskilde eller forlater scenen. Selv når de forlater scenen, kan det være på et punkt som tilfører lys (som himmelen), så uansett blir mengden belysning lagt til hver overflate strålen treffer, lagt til scenen. Programvaren kan også begrense hvor mange refleksjoner den vil følge for en stråle hvis lysbidraget sannsynligvis er lite.

Nvidia-sjef Jen-Hsun Huang forklarer hvordan lettbaking har blitt brukt som et mer effektivt alternativ til strålesporing

Nvidia-sjef Jen-Hsun Huang forklarer hvordan lettbaking har blitt brukt som et mer effektivt alternativ til noen av funksjonene som er tilgjengelige med strålesporing.



Ray Casting er massivt prosessorintensivt

Det totale antall lysstråler som faller på en scene er utenfor det selv de kraftige datamaskinene som brukes til strålesporing kan modellere. Praktisk talt betyr det at sporstoffer må velge et kvalitetsnivå som bestemmer hvor mange stråler som kastes fra hver piksel i scenen i forskjellige retninger. Etter å ha beregnet hvor hver stråle krysser et objekt i scenen, må den følge et antall stråler fra hvert kryss for å modellere reflektert lys. Å beregne disse kryssene er relativt dyrt. Inntil nylig var det også begrenset til CPUer. Å flytte den til GPU, som noen moderne strålesporere er i stand til å gjøre, har gitt en betydelig forbedring i hastighet, men Hollywood-kvalitet krever fortsatt nesten 10 timer per ramme på en avansert multi-GPU mini-superdatamaskin.



Fordi strålesporing er så prosessorkrevende, har interaktive applikasjoner som spill ikke vært i stand til å bruke den bortsett fra å generere overbevisende scener på forhånd. For gjengivelse i sanntid er de avhengige av rasterisering, der overflatene til hvert objekt er skyggelagt basert på materialegenskapene og hvilke lys som faller på dem. Smarte optimaliseringer som lettbaking hjelper deg med å gjøre det mulig for spill å gjengi med høy bildefrekvens mens de fremdeles ser flotte ut. Men de kommer til kort når det gjelder subtile interaksjoner som spredning av undergrunnen. Så for det ultimate i å gjenskape realistiske scener, har målet alltid vært strålesporing i sanntid.

Nvidia RTX bruker GPUene sine til å akselerere strålesporing

NvidiaBortsett fra det åpenbare svaret fra mange års optimalisering av kode, er det noen spesifikke nye elementer som hjelper til med å gjøre RTX mulig. For det første, for å få maksimal ytelse, må skyggelegger for alle objektene i scenen lastes inn i GPU-minnet og klar til bruk når kryss må beregnes. Nvidias utviklerinnlegg gir ikke spesifikke krav til minnestørrelse, men det kan godt være at grunn til at RTX bare kjører på GPUer fra Volta og Turing-familien. Star Wars-demoen Nvidia viste opprinnelig at den kjørte på en fire-volta DGX-1, for eksempel, mens Nvidia nå har vist frem enda mer imponerende innsats på deres nye Turing profesjonelle karakter og forbruker-GPUer.



RTX er også avhengig av en fancy ny denoising-modul. Denoising er veldig viktig i strålesporing fordi du bare kan kaste et begrenset antall stråler fra hver piksel i det virtuelle kameraet. Så med mindre du lar strålesporeren gå lenge nok til å fylle ut scenen, har du mange 'ubehagelige' skallede flekker eller 'støy'. Det er noen flotte forskningsprosjekter som hjelper til med å optimalisere hvilke stråler som kastes, men du kommer fremdeles med mye støy. Hvis denne støyen kan reduseres separat, kan du produsere kvalitetsutgang mye raskere enn hvis du trenger å løse problemet ved å sende ut så mange flere stråler. Nvidia bruker denne teknikken for å hjelpe den med å lage rammer raskere. Det er sannsynlig at denne muligheten bygger på AI-drevet arbeid Nvidia presenterte på SIGGRAPH i fjor, når du utfører det i sanntid, er det sterkt avhengig av Tensor 'AI' -kjernene i sine Turing-GPUer.

Tilpassede RT-kjerner letter stråling i sanntid

Tungløftingen i alle typer fysisk basert strålesporing er beregningen av kryssene. For hver lysstråle fra kameraet (hvorav minst en er nødvendig for hver piksel i hver ramme - og mange flere hvis optikk også blir simulert), må programvaren finne objektet den krysser. Flere pågående stråler må deretter sendes fra det objektet, og de kryssene beregnes, og så videre til strålen enten forlater scenen (og tildeles en verdi basert på miljøbelysningskartet) eller treffer en strålende lyskilde. Denoising reduserer antall stråler som trengs, men antallet er fortsatt svimlende.



For å løse dette problemet har Nvidia utviklet spesialbygde RT-kjerner som en del av Turing-arkitekturen. Det er ikke mye informasjon om dem, men spesielt tillater de mye raskere beregning av skjæringspunktet mellom en stråle og objekter lagret i et Bounding Volume Hierarchy (BVH), en populær datastruktur for å representere objekter i strålesporere .



RTX kommer til forbruker-GPUer med nye Turing 20xx-kort

Nvidia har introdusert tre forskjellige versjoner av sine forbrukermålrettede Turing GPU-kort, som alle har vesentlig bedre strålesporingsytelse enn de nåværende omtrent 1.2Giga strålene per sekund av GTX 1080 Ti:

GeForce GPU Ray Tracing Opptreden* Hukommelse Starter på Founders Edition
RTX 2080 Ti10 GigaRays / sek78T RTX-OPS11 GB$ 9991199 dollar
RTX 20808 GigaRays / sek60T RTX-OPS8 GB$ 699$ 799
RTX 20706 GigaRays / sek45T RTX-OPS8 GB$ 499$ 599

Du kan se hva Nvidia forventer av utviklere i følgende demoklipp bygget av Battlefield V-teamet. Den viser refleksjoner fra objekter utenfor skjermen, inkludert flammer og eksplosjoner, som ikke ville være mulig å bruke bare gjengivelse basert på det som er på skjermen. Refleksjonene modellerer også tett de fysiske egenskapene til overflater, en annen stor fordel med strålesporing:

Opprinnelig er det sannsynlig at strålesporede elementer eller spesifikke scener vil vises som funksjoner blandet i spill, i stedet for å bli brukt til å lage hele spill, siden de aller fleste spillere ikke vil kunne kjøre RTX på en god stund. Noen spillutviklere har også sagt at det ville være en massiv oppgave, og et stort ytelseshit, å omarkitekturere titlene for å støtte strålesporing - uansett hvor rask selve strålesporeren er. Nvidia klarer absolutt vannet, med en solid liste over titler som de hevder jobber aktivt med å implementere strålesporing i sanntid ved hjelp av RTX, men vi må vente og se hva de faktisk leverer og når