Ce este ray tracing? De ce e asa important?

Ce este ray tracing? Pe scurt: este o metoda mult mai avansata si realista de a randa lumina si umbrele in cadrul unei scene. Un algoritm urmareste directia luminii si apoi simuleaza modul in care …

ray tracing in timp real - tot ce trebuie sa stii

Ce este ray tracing?

Pe scurt: este o metoda mult mai avansata si realista de a randa lumina si umbrele in cadrul unei scene. Un algoritm urmareste directia luminii si apoi simuleaza modul in care lumina interactioneaza cu obiectele virtuale pe care le atinge in lumea generata virtual.

Ray tracing ne permite sa ne ‘clatim’ ochii cu umbre si reflexii mult mai realiste, pe langa imbunatatirile majore ale translucentei obiectelor si risipirea umbrelor si a luminii in peisajul virtual.

Cu destula putere de procesare, putem produce imagini generate incredibil de realiste, care se apropie mult mai mult de realitate.

Jocurile de azi, arata destul de bine, dar nu am mai vazut diferente majore intre cele mai aspectuoase jocuri lansate in paralel cu ultimele serii de chipuri grafice lansate.

Ray tracing pare sa fie un feature nou modest, dar trebuie sa ne gandim ca odata ce avem niste texturi calitative, o rezolutie ridicata si efecte realistice, o lumina si niste umbre procesate cat mai realist posibil pentru ochiul uman pot schimba dramatic un joc sau o scena din cadrul acestuia.

De ce s-a introdus ray tracing de-abia pe seria RTX 2000 si de ce costa atat?

Pentru a intelege exact despre evolutia facuta de cei de la Nvidia, trebuie sa ne uitam putin in trecutul nu prea indepartat, la doua aspecte:

  1. Tehnologia ray tracing este folosita foarte mult in filme, show-uri TV si etc. Pentru efecte, scene suprarealiste si etc. Pentru a produce aceste scene si efecte, sunt folosite asa numitele ‘ferme’ de servere. Adica multe servere, care pre-proceseaza o scena, ce poate fi apoi vizualizata ca un film. (sau cloud computing) Unele scene durau chiar si zile intregi, fiind extrem de greu de procesat de catre hardware-ul disponibil. Nici nu intra in discutie hardware-ul de gaming, sa o faca in timp real.
  2. Jocurile fara ray tracing, folosesc un proces numit rasterizare (un algoritm ce se ocupa de afisarea unor modele 3D pe ecran), proces mult mai rapid pentru a randa o scena 3D. Practic grafica 3D e convertita in pixeli 2D pentru a fi afisati pe ecran. Dar rasterizarea necesita shadere pentru a afisa efecte de lumina si umbre cat de cat realiste.

Uite un exemplu de duble CGI pentru actori din filmul The Matrix Reloaded din 2003. Discutam despre MULT timp pentru a randa si procesa acele scene (ex: bataia din scena cu 120 de agenti Smith care avea niste greseli in ea daca anaizam atent). Departe de a randa in timp real la macar 24 FPS asa ceva vreo placa video chiar si mai recente de 2003.

Astfel, am stabilit ca ray tracing mananca mult hardware. Practic ‘rupe-n doua’ procesorul unui sistem. Ca exemplu de calcul, cel mai taxant pentru hardware este calcularea intersectiilor dintre diverse obiecte. Pentru fiecare raza de lumina emisa de un punct luminos (e nevoie de o raza pentru fiecare pixel din fiecare frame), software-ul trebuie sa gaseasca obiectul cu care aceasta se intersecteaza.

Ce face noua serie de placi video, este sa accelereze calculele necesare (preiau acest task). Si practic avem ray tracing in timp real. E o chestie destul de greu de facut/procesat oricum ai privi situatia.

Video/demo cu ray tracing in timp real:

Battlefield V:

Si Shadow of the Tomb Raider:

Si aceasta procesare realizata aditional de placa video, este facuta prin niste core-uri denumite RT Cores. Aceste core-uri, pe langa ca pot calcula mult mai rapid astfel de algoritmi, aduc si un modul de denoising, care va reduce din zgomotul de imagine provocat de randarea prin ray tracing.

Daca ne uitam la modul in care este randat folosing ray tracing un obiect intr-un program de modelare 3D, vom observa ca pana nu este ‘plina’ scena si complet randata, exista un zgomot in imagine, ca si cum ar fi neclara. Modulul de denoising ajuta in procesarea in timp real a graficii, nemaifiind necesara atatea raze si implicit reducand zgomotul de imagine din timpul procesarii.

Niste screenshot-uri de cu si fara RTX:

Uite si un video ce arata cum arata anumite scene dintr-un joc cu Ray Tracing si fara Ray Tracing:

Battlefield  V:

Si un test de la Gamescom:

Si totusi, preturi atat de mari?

Si eu as vrea un RTX 2080 ieftin. Dar, nu putem fi ignoranti si trebuie sa respectam progresul facut in directia asta in ceeea ce priveste randarea graficii intr-un mod cat mai realist de catre Nvidia.

Ca sa ne facem o idee, performanta ray-tracing se masoara in Giga Rays/secunda.

Astfel, performanta sta cam asa:

  • GTX 1080 Ti – 1.2 GigaRays/sec
  • RTX 2070 – 6 GigaRays/sec
  • RTX 2080 – 8 GigaRays/sec
  • RTX 2080 Ti – 10 GigaRays/sec

Deci RTX 2070, are mult mai multa forta versus GTX 1080 Ti. Astaray tracing - placa video rtx 2080 e. Tehnologii noi… core-urile RT probabil fac greul in comparatia asta… si efectiv asta e versiunea noua.

Deci…

Eu cred si sper sa prinda si la dezvoltatorii de jocuri tehnologia, deoarece are un potential urias si vom putea vedea jocuri mult mai aspectuoase si cu o grafica mai realista. Cel putin Battlefield V si Shadow of the Tomb Raider arata superb. Le-as juca doar ca sa ma bucur de grafica :-))

Merita cumparata noua serie?

Ca s-o zic direct: nu-s ieftine. Si probabil generatia 2 de placi video cu suport ray tracing in timp real va fi mult mai ok dpdv al performantei.

Dar eu cred ca merita, mai ales dupa ce vedem ce scoate si AMD pe partea asta si mai ales dupa ce avem mai multe jocuri ce pot beneficia de tehnologie.

In orice caz, nu vad sensul sa cumparam pana nu vedem niste benchmark-uri de la surse neutre. (review-eri, blogger, etc.)

Concluzii

Real time ray tracing e uimitor. Si are un potential urias. Traim vremuri interesante si asistam la lansarea unor tehnologii interesante.

Are de suferit portofelul, ca la orice tehnologie noua si scumpa. Dar, dupa o anumita perioada de timp astfel de tehnologii vor fi mult mai accesibile si le vom vedea la un moment dat pe placi video mai ieftine/slabe.

Desi… GT 1030 suporta DirectX 12. Chiar crezi ca poti juca la detalii maxime un joc recent lansat cu DirectX 12 pe FullHD si sa ai 60 FPS? N-ai ce sa faci performanta si tehnologiile noi costa. Se intampla in toate nisele (telefoane mobile, industria auto, etc.).

Eu ma bucur ca sunt martor la lansarea a astfel de tehnologii si de-abia astept sa prind pe mana un sistem cu o placa video ce suporta Ray Tracing in timp real. 🙂

Inca tin minte ce uimit eram de grafica jocurilor din 2004.

Photo of author

Sorin

Scriu, citesc si invat despre diverse lucruri - hardware, software, orice. Fiind oarecum un "Jack of all trades", pur si simplu ador sa stiu câte ceva despre orice.