Ray Tracing vs Rasterized Rendering - Explicat

După lansarea familiei GPU-urilor Turing de la Nvidia în 2018, lumea jocurilor a cunoscut o creștere exponențială a discuției despre o caracteristică cunoscută sub numele de „Ray Tracing”. Noua serie de plăci grafice „RTX” de la Nvidia a oferit suport pentru ceva numit „Real-Time Ray Tracing” în jocuri. Cei mai mulți oameni nu erau siguri de ceea ce era această nouă caracteristică și de ce a fost împinsă atât de puternic de Nvidia, dar au fost simultan entuziasmați și interesați de tehnologie. Ray Tracing a fost un punct atât de important în conformitate cu Nvidia, încât au considerat că este necesar să îl introducă chiar în numele produselor pe care le lansau. Noua serie de carduri GeForce „RTX” a înlocuit vechea varietate „GTX” atunci când a ajuns la SKU-urile de top, cum ar fi SKU-urile 60,70,80 și -80Ti pe care Nvidia le lansează de obicei.



Nvidia GeForce RTX 3080 este una dintre cele mai rapide plăci grafice care acceptă Ray Tracing - Imagine: Nvidia

Seria de plăci grafice RTX 2000 de la Nvidia a adus mai multe modificări hardware care au permis suportul Ray Tracing în jocuri. Noile plăci grafice bazate pe Turing conțineau nuclee speciale dedicate acestui proces și erau cunoscute sub numele de RT Cores. Scopul nucleelor ​​RT a fost de a gestiona în mod specific toate calculele grafice necesare pentru a face posibilă urmărirea în timp real a Ray Ray în jocuri. Nvidia a completat, de asemenea, cardurile cu nuclee CUDA suplimentare pentru a crește puterea brută a cardurilor, adăugând în același timp un nou set de nuclee cunoscut sub numele de Tensor Cores. Aceste nuclee au fost menite să ajute la învățarea profundă și aplicații de AI, cum ar fi o nouă formă de tehnică de upscaling cunoscută sub numele de Deep Learning Super Sampling. Am discutat deja în detaliu Deep Learning Super Sampling sau DLSS în Acest articol , unde puteți afla mai multe despre tehnica de upscaling alimentată de AI.



Ray Tracing nu este nou

Deși la prima vedere s-ar putea părea că Ray Tracing este o nouă tehnologie pionierată de Nvidia, adevărul este de fapt departe de el. Da, Nvidia a fost prima companie care a implementat suport pentru Ray Tracing în timp real în jocuri, dar asta nu înseamnă că Ray Tracing nu a existat înainte de seria RTX. Probabil te-ai bucurat de ea fără să știi de ani de zile dacă ai urmărit vreun film recent care prezintă Efecte CGI.



Ray Tracing este deja utilizat în alte domenii, cum ar fi filmele - Imagine: Nvidia



Implementarea în filme este, desigur, puțin diferită și mult mai intensă decât versiunea pentru jocuri. Producțiile cu buget mare au luxul de a putea cheltui o sumă mare de bani și timp pentru redarea acestor scene. S-a raportat că filmele animate populare au folosit aproximativ 1000 de supercalculatoare pentru a reda întregul film cu efecte Ray Tracing pe o perioadă de o lună. Astfel de procese de redare la scară largă nu sunt, desigur, fezabile sau posibile pentru jucătorii obișnuiți care doresc să joace unele jocuri cu unele imagini actualizate, astfel versiunea Ray Tracing care este prezentă în jocurile moderne este destul de diferită ca aplicație. Totuși, Ray Tracing este o caracteristică care este prezentă în multe domenii de producție în afara jocurilor, filmele fiind una dintre cele mai proeminente.

Softurile de productivitate utilizate de profesioniști pentru a lucra pe scene cu intensitate grafică, cum ar fi Blender, acceptă și funcțiile Ray Tracing. Aceste programe de grafică pe computer și software de redare utilizează diferite niveluri ale aplicației de urmărire a razelor pentru a produce imagini fotorealiste în redări statice și animații 3D.

Ce este Rasterizarea?

Deci, de ce a fost considerat necesar de Nvidia să implementeze un proces atât de complex în jocurile tradiționale? Există vreo diferență în procesul de Ray Tracing în jocuri pentru a-l face mai optimizat pentru volumul de lucru? Pentru a înțelege mecanismul din spatele Ray Tracing, mai întâi, trebuie să înțelegem mecanismul prin care jocurile sunt redate în mod tradițional. Acest lucru ne va ajuta să înțelegem de ce Ray Tracing este considerat o îmbunătățire și un mare salt înainte în fidelitatea grafică.



Tehnica utilizată în prezent pentru redare este cunoscută sub numele de „Rasterizare”. În această tehnică, codul jocului direcționează GPU-ul să deseneze o scenă 3D folosind poligoane. Aceste forme 2D (în principal triunghiuri) alcătuiesc majoritatea elementelor vizuale care sunt afișate pe ecran. După ce o scenă este desenată, aceasta este tradusă sau „rasterizată” în pixeli individuali, care apoi sunt prelucrate de un shader dedicat. Shaderul adaugă culori, texturi și efecte de iluminare pe bază de pixel pentru a produce un cadru complet redat. Această tehnică trebuie repetată de aproximativ 30-60 de ori pe secundă pentru a produce imagini 30FPS sau 60FPS în jocuri.

Detalii despre mecanismul de rasterizare - Imagine: Medium.com

Limitări ale rasterizării

În timp ce rasterizarea a fost modul implicit de redare în jocuri de ceva vreme, procesul inerent din spatele rasterizării are unele limitări. Principala problemă cu rasterizarea este că această tehnică are un timp dificil de urmărire exact a modului în care lumina dintr-o scenă ar trebui să călătorească și să interacționeze cu alte elemente ale scenei. Redarea rasterizată nu produce aceleași rezultate ca redarea Ray Traced atunci când vine vorba de efectele de iluminare și de iluminarea generală a unei anumite scene. Redarea rasterizată poate produce, uneori, imagini oarecum inexacte în raport cu iluminarea, ceea ce poate deteriora cu adevărat imersiunea într-un anumit joc. Acesta este motivul pentru care Ray Tracing este considerat o formă superioară de redare atunci când vine vorba de fidelitatea grafică, în special în ceea ce privește iluminarea.

Ce este mai exact Ray Tracing?

Acum, că am discutat despre forma tradițională de redare rasterizată, să discutăm despre noua aplicație a Ray Tracing în timp real în jocurile moderne. Ray Tracing este o tehnică de redare care creează o imagine bazată pe lumina virtuală și modul în care acea sursă de lumină interacționează cu toate obiectele din interiorul scenei virtuale. Ray Tracing poate crea o descriere mult mai realistă a scenelor care profită de interacțiunea luminii cu obiectele din interiorul scenei pentru a da un sentiment de realism. În cuvinte simple, Ray Tracing este o tehnică care face ca lumina să se comporte în jocuri video așa cum se întâmplă în viața reală.

Ray Tracing promite să revizuiască complet imaginile în jocuri - Imagine: Nvidia

Mecanismul din spatele Ray Tracing

Mecanismul din spatele Ray Tracing în jocuri este inerent diferit de celelalte forme de Ray Tracing deja întâlnite în alte industrii, cum ar fi filmele. În loc să urmărească toate milioanele de raze care provin din fiecare sursă de lumină, trasarea razelor de nivel consumator reduce sarcina de calcul, urmărind în schimb o cale de la camera care reprezintă perspectiva utilizatorului, printr-un singur pixel, apoi către orice obiect se află în spatele aceluiași pixel și apoi înapoi înapoi la sursa de lumină a scenei în cauză. Această tehnică de urmărire a razelor poate produce, de asemenea, efecte multiple, cum ar fi absorbția, reflexia, refracția și difuzia luminii, determinate de obiectul care interacționa cu lumina din scenă. Algoritmul Ray Tracing poate lua în considerare și razele rezultate, astfel încât orice efect de reflexie sau umbră să fie afișate cu precizie.

În Ray Tracing, lumina se comportă în joc așa cum ar fi în viața reală - Imagine: Nvidia

Diferite forme de Ray Tracing

Nu toate implementările Ray Tracing sunt la fel. Varietatea de jocuri care acceptă Ray Tracing implementează fiecare caracteristică într-un mod oarecum diferit. Acest lucru revine dezvoltatorului jocului să crească sau să micșoreze complexitatea Ray Tracing în joc, astfel încât jocul să ofere echilibrul perfect de performanță și calitate vizuală. Începând cu 2020, majoritatea jocurilor care acceptă Ray Tracing folosesc de obicei Ray Tracing doar pentru un aspect al unei scene, spre deosebire de redarea întregii scene folosind Ray Tracing în sine. Este posibil, dar costurile de calcul ale trasării pe raze cu scenă completă sunt astronomice în comparație cu celelalte abordări și, prin urmare, nu merită efortul cel puțin chiar acum. În momentul scrierii, diferitele implementări ale Ray Tracing utilizate în prezent în jocuri sunt:

  • Umbre: Cea mai simplă și cea mai puțin intensă implementare Ray Tracing este, fără îndoială, legată de umbre. Aici, Ray Tracing este folosit pentru a reda perfect umbrele dintr-o scenă bazată pe originea luminii din sursa de lumină și pe poziția obiectului în sine. Această tehnică este folosită în special în „Shadow of the Tomb Raider” pentru a produce o hartă mai detaliată a umbrelor care răspunde schimbărilor din mediul din jurul obiectelor care produc umbrele. În special, mișcarea și unghiul sursei de lumină pot suporta acum aceleași schimbări în umbrele rezultate, pe care le observăm în viața reală.
  • Reflecții: Reflecțiile sunt destul de mult mai intense din punct de vedere al calculului pentru a fi redate folosind Ray Tracing, cu toate acestea, reflecțiile Ray Traced arată fenomenal în jocurile moderne și sunt probabil cea mai notabilă îmbunătățire grafică care poate fi obținută folosind Ray Tracing. Reflecțiile folosesc sursa de lumină dintr-o scenă pentru a reda cu precizie reflexele de la obiecte reflectorizante precum sticla și apa. Unul dintre cele mai populare jocuri care folosesc reflexii Ray Traced este „Control”.
  • Ocluzie ambientală: Acest lucru este, de asemenea, legat de umbre și este mai mult sau mai puțin legat de același proces de bază. Ocluzia ambientală folosește Ray Tracing pentru a prezice unghiul și intensitatea umbrelor pe baza poziției și a plasării obiectelor într-o scenă. Când este făcut corect, Ocluzia ambientală poate adăuga detalii uimitoare și realism unui joc.
  • Iluminare globală: Probabil cea mai intensă formă de punere în aplicare a Ray Tracing în jocurile moderne, Global Illumination folosește Ray Tracing pentru a descrie cu exactitate lumina lumii. Acest lucru oferă un sentiment mult mai realist de iluminare atunci când este pornit, dar are și un impact masiv asupra performanței datorită cantității mari de date procesate. „Metro Exodus” folosește Ray Tracing pentru a oferi o formă mult mai realistă de iluminare globală.
  • Urmărirea completă a căii: În cele din urmă, vedem, de asemenea, să apară unele jocuri care sunt pe deplin trasee, ceea ce înseamnă în esență că totul este Ray Traced. Acum acordate, aceste jocuri sunt oarecum mai simple și mai mici decât celelalte jocuri care erau mai mult sau mai puțin titluri AAA de la companii mari, dar acest lucru nu înseamnă că nu arată impresionant. De fapt, unii ar putea susține că aceste jocuri cu urmărire completă a traseului arată mai bine decât toate celelalte implementări Ray Tracing. „Minecraft RTX” și „Quake RTX” sunt două dintre titlurile care sunt complet urmărite, disponibile în momentul scrierii.

Reflecțiile Ray Traced pot fi cea mai plăcută aplicație a Ray Tracing în jocuri - Imagine: Nvidia

De ce am nevoie pentru Ray Tracing?

Așa cum am menționat anterior, Ray Tracing este o sarcină foarte intensă din punct de vedere al calculului, astfel încât necesită un hardware decisiv de înaltă performanță pentru a funcționa bine. În momentul scrierii, există mai multe plăci grafice de la AMD și Nvidia, care acceptă Ray Tracing accelerat de hardware. Chiar și consolele de la Sony și Microsoft acceptă această caracteristică. Aceasta extinde puțin lista hardware-ului acceptat:

  • Seria Nvidia GeForce RTX 2000
  • Seria Nvidia GeForce RTX 3000
  • Seria AMD Radeon RX 6000
  • Microsoft Xbox Series X
  • Sony PlayStation 5

Rețineți că, dacă AMD gestionează Ray Tracing un pic diferit față de Nvidia, atunci există o penalizare de performanță ceva mai mare care se observă atunci când utilizați carduri AMD pentru Ray Tracing. De asemenea, dacă doriți să experimentați performanțe îmbunătățite folosind Deep Learning Super Sampling, această caracteristică este disponibilă și pe cardurile RTX ale Nvidia. Se presupune că AMD lucrează la o caracteristică asemănătoare DLSS pentru cardurile lor din seria RX 6000, dar în prezent este încă în curs de dezvoltare la momentul scrierii.

Nvidia a inventat, de asemenea, termenul „Raze Giga” pentru a oferi utilizatorilor o idee despre capacitățile relative de urmărire a razelor ale plăcilor sale grafice RTX. Nvidia spune că 5 Giga Rays pe secundă este cantitatea minimă de lumină virtuală necesară ideal pentru a ilumina complet o cameră tipică într-un mediu de jocuri video. GeForce RTX 2070 oferă 5 raze Giga / sec, în timp ce RTX 2080 oferă 8 raze Giga pe secundă. RTX 2080Ti oferă o rază de 10 Giga / sec. Este o unitate oarecum arbitrară, deci ar trebui utilizată în general numai pentru a arăta așteptări relative de performanță.

Pierderea performanței și DLSS

După cum este evident până acum, cel mai mare dezavantaj al Ray Tracing este rezultatul performanței datorită cantității mari de calcule dedicate care trebuie făcute în acest proces. În unele jocuri, performanța este atât de mare încât poate duce jocul la o frecvență framerică care nu mai este considerată redabilă. Performanța este chiar mai mare în jocurile care utilizează implementări mai complexe ale Ray Tracing, cum ar fi Reflections, Global Illumination sau Full Path Tracing.

Desigur, Nvidia s-a gândit la această situație de penalizare a performanței și a dezvoltat, de asemenea, o nouă tehnică de compensare cunoscută sub numele de Deep Learning Super Sampling. Această tehnică numită DLSS a fost lansată alături de seria RTX 2000 a Nvidia în 2018. Am explorat deja DLSS în detaliu în Acest articol , dar esența acestei tehnologii este că redă imaginea la o rezoluție mai mică și apoi modernizează inteligent și metodic imaginea pentru a se potrivi cu rezoluția de ieșire pentru a oferi o performanță extrem de superioară randării native. DLSS este un mecanism de compensare excelent pentru pierderea de performanță a Ray Tracing, dar poate fi folosit și fără Ray Tracing pentru a oferi cadre mai mari și o experiență mult mai bună.

Performanță semnificativă câștigă în control atunci când DLSS este pornit - Imagine: Nvidia

Cel mai mare avantaj al DLSS este că folosește Deep Learning și AI pentru a îmbunătăți imaginea, astfel încât să existe o diferență de claritate vizuală mică sau nulă între imaginea nativă și cea upscaled. Nvidia folosește nucleele Tensor de pe seria sa de carduri RTX pentru a accelera procesul DLSS, astfel încât acest calcul upscaling să poată fi făcut în ritmul jocului care este redat. Aceasta este o tehnologie cu adevărat captivantă pe care am dori să o vedem dezvoltată în continuare și să devină mai bună decât este acum.

Viitorul Ray Tracing

Ray Tracing în jocuri abia începe și putem spune cu siguranță că este aici pentru a rămâne. AMD tocmai le-a lansat prima gamă de cărți care acceptă Ray Tracing complet în timp real cu seria RX 6000 , iar PlayStation 5 și Xbox Series X au, de asemenea, suport pentru Ray Tracing. Obstacolele actuale care trebuie depășite includ pierderea performanței și numărul redus de jocuri care o susțin. Jocurile actuale care acceptă Ray Tracing în momentul scrierii includ:

  • În mijlocul răului
  • Battlefield V
  • Memorie strălucitoare
  • Call of Duty: Modern Warfare (2019)
  • Call Of Duty: Black Ops Războiul Rece
  • Control
  • Crysis Remastered
  • Livrează-ne Luna
  • Fortnite
  • Ghostrunner
  • Justiţie
  • Mechwarrior V: Mercenari
  • Exodul Metro
  • Minecraft
  • Lamă de lună
  • Pumpkin Jack
  • Quake II RTX
  • Shadow of the Tomb Raider
  • Rămâi în lumină
  • Watch Dogs Legion
  • Wolfenstein: Youngblood

Între timp, Nvidia a confirmat că următoarele titluri vor sprijini și Ray Tracing odată ce vor ieși:

  • Inima atomică
  • Cyberpunk 2077 (lansare)
  • Lumina muribunda 2
  • Doom Eternal
  • Înrolat (beta închis noiembrie)
  • JX3
  • Mortal Shell (noiembrie)
  • Observator: System Redux
  • Gata sau nu (lansare cu acces anticipat)
  • Ring Of Elysium (lansare)
  • Sincronizat: Off-Planet
  • Vrăjitorul III
  • Vampire: Masquerade - Bloodlines 2
  • World Of Warcraft: Shadowlands (noiembrie)
  • Xuan-Yuan Sword VII (lansare)

Jocuri viitoare care acceptă atât RTX, cât și DLSS - Imagine: Nvidia

Deși este posibil să nu pară multe jocuri, acesta reprezintă un început spre o direcție în care forma predominantă de redare ar putea fi foarte bine Ray Tracing. Acum, în ceea ce privește performanța, este foarte greu de prezis dacă performanța de la Ray Tracing va fi sau nu redusă puțin. Ceea ce este rezonabil să ne așteptăm, totuși, este ca DLSS să se îmbunătățească și să ofere o compensare suficientă pentru pierderea de performanță suferită prin activarea Ray Tracing. În momentul scrierii, lista jocurilor care acceptă DLSS nu este deloc extinsă, dar este un bun început ținând cont de faptul că Nvidia a anunțat suport DLSS și pentru mai multe jocuri viitoare. Iată toate jocurile care acceptă în prezent Deep Learning Super Sampling:

  • Imn
  • Battlefield V
  • Memorie strălucitoare
  • Call Of Duty: Black Ops Războiul Rece
  • Control
  • Death Stranding
  • Livrează-ne Luna
  • F1 2020
  • Final Fantasy XV
  • Fortnite
  • Ghostrunner
  • Justiţie
  • Răzbunătorii Marvel
  • Mechwarrior V: Mercenari
  • Exodul Metro
  • Minecraft
  • Monster Hunter: World
  • Shadow of the Tomb Raider
  • Watch Dogs Legion
  • Wolfenstein Youngblood

Așa cum ați fi observat, majoritatea jocurilor care acceptă DLSS sunt titluri care au și o anumită formă de suport Ray Tracing. Aceasta oferă o confirmare suplimentară a teoriei că DLSS a fost dezvoltat și lansat în principal ca o tehnologie de compensare pentru a atenua imensa pierdere de performanță în Ray Tracing. DLSS este totuși o tehnologie serios impresionantă, deoarece Nvidia a explicat că folosește un supercomputer pentru a efectua calcule complexe care antrenează algoritmul pe care îl urmează nucleele Tensor din GPU-urile Nvidia. La fel ca Ray Tracing, se așteaptă ca DLSS să vină și la mai multe jocuri:

  • În mijlocul răului
  • Inima atomică
  • Limite
  • Cyberpunk 2077 (lansare)
  • Edge of Eternity (noiembrie)
  • JX3
  • Mortal Shell (noiembrie)
  • Mount & Blade II Bannerlord (noiembrie)
  • Gata sau nu (lansare cu acces anticipat)
  • Scavengers
  • Vampire: Masquerade - Bloodlines 2
  • Xuan-Yuan Sword VII (lansare)

DLSS, combinat cu Ray Tracing pare a fi viitorul industriei jocurilor începând cu 2020.

Lista jocurilor care acceptă DLSS 2.0 continuă să crească - Imagine: Nvidia

Concluzie

Rasterizarea este tehnica utilizată de mult timp pentru a converti un plan 2D de poligoane într-o imagine 3D pe ecran în jocuri. În 2018, Nvidia a introdus seria de plăci grafice RTX 2000 cu suport complet pentru Ray Tracing în timp real în jocuri, o tehnică care folosește calcule complexe pentru a urmări razele de lumină într-o scenă pentru a crea reprezentări exacte ale modului în care lumina ar interacționa cu obiectele dintr-o scenă. Acest lucru a luat lumea jocurilor printr-o furtună neașteptată și întreaga industrie a plasat Ray Tracing ca obiectiv principal pentru viitor.

În momentul scrierii, Nvidia a lansat o altă generație de plăci grafice care își îmbunătățesc și mai mult performanța Ray Tracing, în timp ce atât AMD, cât și consolele au anunțat, de asemenea, suport complet pentru această funcție. Nvidia și-a îmbunătățit tehnica Deep Sampling Super Learning, care folosește AI și Deep Learning pentru a îmbunătăți inteligent imaginea redată la o rezoluție mai mică, pentru a compensa pierderea de performanță datorată Ray Tracing.

Se pare că Ray Tracing este aici pentru a rămâne și, deși numărul inițial de titluri care acceptă funcția nu este expansiv, se anunță tot mai multe titluri care au suport complet pentru Ray Tracing în timp real în viitor. Acum revine dezvoltatorilor să regleze funcțiile Ray Tracing în jocurile viitoare și, de asemenea, să mărească numărul de titluri care acceptă această caracteristică. Nvidia și AMD au, de asemenea, responsabilitatea de a-și optimiza hardware-ul pentru această caracteristică, astfel încât jucătorii să nu aibă de suferit pierderi devastatoare de performanță ori de câte ori vor să activeze Ray Tracing.