Ray tracing: cos'è e perché cambia i videogiochi

Ray tracing: cos'è e perché cambia i videogiochi

Se ne fa un gran parlare, ma cos'è il ray tracing? La tecnologia di rendering che punta a migliorare la grafica dei videogiochi viene da lontano, ma solo di recente ha messo piede nel mondo del gaming su PC. Presto sarà integrata anche nei giochi per le nuove console PS5 e Xbox Series X, quindi proviamo a spiegare di cosa si tratta.

di pubblicato il nel canale Schede Video
NVIDIAAMDIntelGeForceRTX
 

Se siete professionisti della grafica 3D, il termine ray tracing non vi sarà affatto estraneo, in quanto si tratta di una tecnica di rendering grafico in circolazione da decenni.

Gli appassionati di videogiochi per PC hanno però iniziato a conoscerla dalla fine del 2018, quando Nvidia e alcune software house hanno iniziato a introdurre la tecnologia in alcuni titoli, creando il cosiddetto "hybrid rendering", rendering ibrido, dove ray tracing e rasterizzazione (rasterization) si uniscono per creare una grafica sempre più fedele alla realtà.

Nvidia ha portato sul mercato molteplici schede video (la famiglia GeForce RTX) dotate di unità di calcolo specializzate all'interno della GPU destinate all'accelerazione dei calcoli alla base del ray tracing. L'azienda ha poi permesso, tramite driver, anche ad alcune soluzioni GeForce GTX – prive di suddette unità - di gestire il ray tracing, ma con un impatto deleterio sulle prestazioni di calcolo complessive.

Quest'anno il ray tracing inizierà il suo percorso per diventare una tecnologia cardine del mondo dei videogiochi: l'hardware di Playstation 5 e Xbox Series X supporterà la nuova tecnica di rendering e allo stesso tempo anche AMD introdurrà schede video per PC in grado di offrire ciò che serve per una riproduzione fedele. Non dimentichiamo inoltre Intel, pronta a entrare nel mercato delle schede video dedicate e perciò interessata a implementare il ray tracing per non rimanere dietro ai concorrenti.

Di conseguenza quest'anno molte persone si chiederanno: cos'è il ray tracing? Che cosa fa nel concreto? Porta dei vantaggi? Com'è implementato nei videogiochi? A queste e altre domande cerchiamo di rispondere in questo articolo.

Che cos'è il ray tracing

La tecnica di rendering "ray tracing", lo dice anche la parola, si basa sul tracciamento dei raggi lungo il loro percorso e come interagiscono con gli oggetti circostanti. Raggi che possono partire da qualsiasi sorgente di luce: il sole, una stella, una lampadina, una candela.

Il ray tracing può quindi simulare l'illuminazione di una scena e dei suoi oggetti riproducendo riflessi, ombre, rifrazioni e luce indiretta in modo fisicamente accurato.

Nel caso dei videogiochi, il percorso della luce viene tracciato dalla videocamera principale (il vostro punto di vista della scena, per capirci gli occhi virtuali del vostro alter ego in un FPS) lungo il piano di visione 2D, il viaggio all'interno della scena 3D e il suo ritorno verso le sorgenti di luce.

Come avviene nella realtà, la luce che si propaga in una scena può incontrare i riflessi di un altro oggetto, può essere bloccata da altri oggetti generando ombre o passare attraverso oggetti trasparenti o semi trasparenti creando la cosiddetta rifrazione.

Tutte queste interazioni combinate producono il colore e l'illuminazione finale di un pixel visualizzato sullo schermo. Questo processo di tracciamento inverso dall'occhio/videocamera verso la sorgente di luce è stato scelto perché è molto più efficiente rispetto alla teoria del ray tracing, che prevede il tracciamento di tutti i raggi emessi dalle sorgenti di luce in tutte le direzioni.

Dalla teoria alla pratica, un processo inverso

Approfondiamo il concetto. Teoricamente il ray tracing coinvolge la generazione di raggi da qualsiasi sorgente di luce in una scena. Tali raggi vengono poi seguiti nel loro percorso in cui colpiscono, riflettono o rifrangono sulle superfici. All'impatto con ogni superficie, le proprietà della luce sono combinate con quelle del materiale e ovviamente gioca un ruolo importante anche l'angolo d'impatto.

La luce, che nel processo potrebbe raccogliere dall'oggetto incontrato un colore diverso, viene quindi ritracciata ulteriormente, usando più raggi che simulano la luce riflessa - da qui il termine ray tracing. Il processo di tracciamento continua fino a quando i raggi lasciano la scena.

Come forse avrete intuito, si tratta di un processo che richiede molto tempo e risorse, in quanto la maggior parte dei raggi non colpisce nulla nella scena e gli altri raggi possono rimbalzare in modo indefinito.

Applicare il ray tracing come prevede la teoria non è oggi possibile e quindi sono necessari stratagemmi e ottimizzazioni affinché si possa introdurlo nei videogiochi in tempo reale, dove per il rendering dell'immagine finale si è nell'ordine dei millisecondi. Come scritto in precedenza, Nvidia ha applicato il concetto al contrario, per dirla in modo grossolano, sfruttando un principio chiamato reciprocità.

La reciprocità dice che l'inverso di un raggio di luce funziona allo stesso modo dell'originale per proiettare i raggi dalla videocamera virtuale nella scena. Ciò significa che vengono proiettati solo i raggi che contribuiscono alla scena finale, aumentando notevolmente l'efficienza. Quei raggi vengono quindi seguiti (tracciati) mentre rimbalzano fino a quando non colpiscono una fonte di luce o escono dalla scena.

E qualora uscissero dalla scena, potrebbe essere in un punto che aggiunge luce (come il cielo), quindi in entrambi i casi, la quantità di illuminazione aggiunta da ciascuna superficie colpita dal raggio viene aggiunta alla scena. A questo subentra poi la parte software, con gli sviluppatori che possono anche limitare il numero di riflessi seguiti per un raggio qualora il contributo finale sia contenuto.

Oltre il ray tracing c'è di più…

Finora abbiamo spiegato il ray tracing teorico e quello implementato finora in ambito gaming a grandi linee, ma ci sono altri termini e processi che non possono essere ignorati quando si tratta questo argomento.

Ray casting: si tratta del processo che all'interno di un algoritmo di ray tracing proietta uno o più raggi dalla videocamera principale (gli occhi del vostro personaggio negli FPS per esempio) lungo ogni pixel di un'immagine planare per verificare se i raggi intersecano primitive (i triangoli) in una scena.

Questo serve a determinare la distanza dalla sorgente del raggio alla primitiva e di conseguenza a comprendere l'informazione di colore della primitiva che andrà a comporre il colore finale del pixel. Qualora il raggio rimbalzi e colpisca altri oggetti, vengono raccolte le informazioni di colore e illuminazione da ogni primitiva su cui rimbalza.

Bounding Volume Hierarchy (BVH): si tratta di una tecnica di accelerazione del ray tracing piuttosto popolare che usa una struttura di accelerazione ad albero e si basa su box disposti in modo gerarchico e che racchiudono o circondano differenti quantità di geometria o primitive in una scena.

Il concetto di BVH parte da un semplice quanto importante assunto. Verificare ogni singola intersezione tra raggio e primitive in una scena è un processo tanto inefficiente quanto pesante dal punto di vista dei calcoli richiesti. BVH è una delle tecniche che possono essere usate per accelerare il tutto. Ogni raggio deve infatti essere verificato rispetto al BVH usando un processo di attraversamento trasversale legato alla profondità anziché per ogni singola primitiva della scena.

Affinché ciò avvenga, bisogna creare una struttura BVH da una sorgente geometrica prima di renderizzare una scena per la prima volta. L'immagine successiva richiederà altresì la creazione di una struttura BVH e un rinnovo in base ai cambiamenti della scena.

Denoising Filtering: si tratta di una tecnica di filtro che può migliorare le prestazioni e la qualità dell'immagine senza richiedere di proiettare ulteriori raggi. Il denoising può migliorare nettamente la qualità visiva delle immagini rumorose che potrebbero essere ottenute con dati occasionali, forieri di artefatti casuali e altri tipi di rumore. Questo filtro è di particolare efficacia nel ridurre il tempo in cui i raggi in un'immagine vengono tracciati e può produrre immagini con un'elevata fedeltà.

Il ray tracing abbinato alla rasterizzazione? Rendering ibrido

La rasterizzazione è una tecnica usata per visualizzare oggetti tridimensionali su uno schermo bidimensionale. Praticamente è la tecnica di rendering usata da tutti i videogiochi 3D moderni, in cui gli oggetti a schermo sono il risultato di una rete di triangoli virtuali, detti poligoni, di differenti forme e dimensioni.

I vertici dei triangoli contengono informazioni sulla posizione dello stesso poligono nello spazio, il colore e molto altro. I computer convertono i triangoli dei modelli 3D in pixel, o punti, su uno schermo 2D.

A ogni pixel si può assegnare un valore di colore iniziale in base ai dati immagazzinati nei vertici del triangolo, dopodiché interviene un processo chiamato shading, che include il cambio del colore in base a come le luci nella scena colpiscono il pixel, e si applica a una o più texture per generare il colore finale applicato a un pixel.

La rasterizzazione è un processo pesante da gestire per le GPU, in quanto avviene in tempo reale, ed è per questo che un chip grafico di fascia alta è in grado di renderizzare giochi più velocemente di uno di fascia bassa. Vi è tuttavia da dire che è molto meno pesante rispetto al ray tracing.

Applicare un rendering puramente in ray tracing a un videogioco, oggi come oggi, è sostanzialmente impossibile, i giochi risulterebbero troppo pesanti per le GPU, anche se dotate di unità di accelerazione specializzate. Ecco quindi che oggi bisogna parlare di rendering ibrido, in cui la rasterizzazione e il ray tracing lavorano di concerto per restituirci giochi graficamente migliori ma prestazionalmente "giocabili", o fluidi se preferite.

La rasterizzazione può determinare gli oggetti visibili e renderizzare molte aree di una scena e farlo con prestazioni elevate. Il ray tracing invece è usato per renderizzare riflessi, rifrazioni e ombre fisicamente accurate.

Accelerare il ray tracing con le GPU, la soluzione di Nvidia

Ancora non sappiamo come il ray tracing sarà implementato da AMD e sulle console in arrivo entro fine anno, quindi possiamo parlare dell'implementazione vista finora, quella di Nvidia.

Abbiamo detto che il ray tracing è una tecnica molto pesante dal punto di vista dei calcoli richiesti in tempo reale. La sua implementazione nei film e in altri settori avviene tramite i calcoli fatti da moltissimi server che sfruttano le loro CPU per renderizzare quelli che poi definiamo "effetti speciali".

Mentre le CPU impiegano diversi giorni per svolgere il compito richiesto, le GPU possono renderizzare scene con ray tracing di qualità cinematografica molto più velocemente, ma c'è un problema: la memoria che accompagna le GPU è limitata e di conseguenza mette dei paletti alla complessità della scena.

L'architettura Turing di Nvidia ha introdotto in ambito consumer due ulteriori unità specializzate, che si affiancano ai CUDA core e alle altre unità preesistenti, per gestire proprio il ray tracing: RT Core e Tensor Core. RT Core sta per Ray Tracing Core e si tratta di unità di accelerazione che sono dedicate allo svolgimento delle operazioni legate al ray tracing, come il già citato BVH, che non possono essere svolte in modo efficiente dalle altre unità dedicate al rendering 3D.

I Tensor Core nascono invece per compiti di intelligenza artificiale, ma nel caso dei videogiochi e in particolare del ray tracing si occupano di accelerare in tempo reale le operazioni di "denoising", cosa che riduce drasticamente la quantità di raggi che devono essere generati.

Le applicazioni del ray tracing

Il ray tracing può essere applicato per renderizzare in modo più fedele numerosi aspetti all'interno dei videogiochi. Nel corso degli ultimi due anni abbiamo visto diverse implementazioni, a partire da Battlefield 5 che ha applicato la tecnologia al rendering dei riflessi. Gli sviluppatori di DICE hanno scelto un approccio "semplice" (si fa per dire ovviamente…), in grado di garantire miglioramenti qualitativi in alcune parti di gioco senza pesare troppo sulle prestazioni.

In teoria la software house avrebbe dovuto creare un raggio per pixel per determinare i riflessi visibili, ma siccome molte superfici non riflettono il processo avrebbe portato a una quantità di calcoli eccessiva. L'algoritmo messo a punto invece calcolo solo i raggi per pixel legati alle superfici riflettive e quelle che riflettono parzialmente usano un raggio ogni due pixel.

In Shadow of the Tomb Raider il ray tracing è stato usato per una migliore simulazione delle ombre che porta a ottenere ombre più morbide e accurate con penombre complesse e amorfe. Sempre in tema di ombre, si può applicare il ray tracing anche all'ambient occlusion, una categoria molto specifica di rendering delle ombre, un tentativo di duplicare le ombre grigiastre che vediamo negli angoli, nelle fessure e nei piccoli spazi dentro e intorno agli oggetti.

Funziona tracciando un numero di raggi molto corti all'interno di un'area, in una sorta di nuvola attorno ad essa, e determinando se i raggi si intersecano con gli oggetti vicini. Più incroci ci sono, più scura è l'area. In realtà è una tecnica abbastanza economica proprio perché i raggi devono essere verificati solo rispetto a oggetti locali, quindi gli alberi BVH sono molto più piccoli e facili da elaborare.

Un'altra applicazione riguarda le caustiche, ossia "entità geometriche formate dalla concentrazione singolare di curve", o più semplicemente il risultato della luce che viene riflessa o rifratta da superfici curve (come le onde nell'acqua).

Le caustiche sono calcolate in modo simile ai riflessi in ray tracing. I raggi generati vengono collocati dove interagiscono con una superficie, in modo da riprodurre di conseguenza riflessi e rifrazioni. Le caustiche vengono poi accumulate in un buffer e ripulite prima di combinarle con l'illuminazione della scena.

Laddove le caustiche di una superficie non sono particolarmente esigenti in termini di calcoli, diverso è il discorso per le cosiddette caustiche volumetriche, ad esempio quando la luce solare viene riflessa dalla superficie di un corpo nel liquido in cui si trova e poi viene ulteriormente riflessa o refratta dalla spiaggia sottostante o altri oggetti.

Metro Exodus applica il ray tracing all'illuminazione globale, ed è probabilmente l'implementazione della tecnologia più pesante vista finora. Nel caso dell'illuminazione globale i raggi vengono generati su una base per pixel lungo l'intera scena e aggiornati dinamicamente per rispondere anche ai più sottili cambiamenti di illuminazione.

A seconda della scena l'effetto può essere evidente oppure no. In una stanza scarsamente illuminata con una finestra da cui penetra la luce esterna l'effetto diventa molto più evidente rispetto alle scene all'aperto. Tuttavia, anche quando non cambia necessariamente l'aspetto di una scena, è in genere più pesante rispetto ad altre applicazioni del ray tracing.

Path Tracing, cos'è?

Se siete appassionati di videogiochi, forse avrete sentito che Nvidia ha rifatto Quake 2 in "path tracing" chiamandolo Quake 2 RTX. Che cos'è il path tracing? È diverso dal ray tracing? Domande più che lecite. Il path tracing non è altro che una forma più intensa di ray tracing, nella quale si tracciano centinaia o migliaia di raggi lungo ogni pixel e che segue i raggi lungo i numerosi rimbalzi o passaggi attraverso gli oggetti prima che raggiungano la sorgente luminosa al fine di ottenere l'informazione di colore e luce.

Quake 2 RTX è il primo gioco completamente in path tracing e non è un caso che Nvidia abbia "sperimentato" con questa tecnica di rendering partendo da un gioco semplice, vecchio di oltre vent'anni. Si tratta di un singolo algoritmo unificato che simula in modo accurato il comportamento della luce in quasi tutte le circostanze.

Il path tracing supporta un'ampia varietà di tipi di sorgenti luminose: dal sole e lucernario, ai faretti, alle luci volumetriche come il fuoco, alle sorgenti luminose che si diffondono su una vasta area. Tutte queste hanno aspetti visivi molto diversi, ma sono gestite allo stesso modo usando il path tracing.

Il path tracing supporta inoltre un'ampia gamma di tipi di riflessi dalle superfici, dalle superfici lucide come il metallo, alle superfici diffuse come la vernice opaca, alle superfici speculari come l'acqua e il vetro. Questa flessibilità significa che questa tecnica di rendering si adatta bene a contenuti altamente complessi.

Ora molti di voi si staranno chiedendo: quando vedremo un gioco moderno in path tracing? Ebbene, non è dato saperlo al momento, c'è infatti un problema. Nei moderni giochi che supportano il ray tracing, per ogni fotogramma generato – stiamo parlando millisecondi – viene proiettata una manciata di raggi, ma per un rendering di alta qualità in path tracing ne servirebbero molti, molti di più.

Con un numero basso di raggi, il path tracing produce immagini tipicamente granulose, poco definite. In breve, ogni pixel ha una diversa porzione di informazione sull'illuminazione della scena. I giochi in ray tracing usano sofisticati denoiser (filtri per il rumore) per rimuovere questa granulosità, ma la complessa dinamica di un contenuto in path tracing con un ridotto numero di raggi fa emergere ulteriori sfide per quanto concerne la soppressione del rumore.

Nvidia ha spiegato che ci sono due sfide importanti da affrontare affinché il path tracing trovi spazio in contenuti più complessi. La prima è quella di "tracciare i raggi corretti", ossia scegliere ogni raggio attentamente, in modo che tale raggio restituisca quanta più informazione possibile sull'illuminazione della scena. La seconda è quella di rendere "meno rumorosa" (denoising) l'immagine. Infatti, persino scegliendo i raggi in modo corretto, l'immagine risultante sarà rumorosa.

È inoltre necessario riutilizzare le informazioni di illuminazione dalle immagini precedenti e applicare algoritmi di elaborazione delle immagini per eliminare il rumore residuo. C'è ancora del lavoro da fare, nonché il "piccolo problema" di realizzare architetture di calcolo sempre più potenti.

Insomma, il path tracing è un tipo di ray tracing, ma quest'ultimo è più efficiente e più veloce da implementare, seppur in modo parziale, nei videogiochi in tempo reale. Il tempo di rendering per quanto riguarda il ray tracing è legato al numero di poligoni nella scena. Più poligoni ci sono, più tempo è necessario. Per quanto riguarda il path tracing invece, non è tanto legato ai poligoni quanto alla situazione della luce: se aggiungete una luce, trasparenza, translucenza o altri effetti shader, il path tracing impatterà molto sulle prestazioni.

Non ci sono dubbi, il ray tracing è qui per restare

Al momento il ray tracing è una tecnologia non molto diffusa e finora non abbiamo ancora visto una "killer application" che la sfrutti. Ciononostante, una cosa è chiara: nella corsa al cosiddetto "fotorealismo", il ray tracing è qui per restare e tra qualche anno diventerà la normalità.

Come ogni novità - nel senso di introduzione in un determinato contesto - bisognava pur iniziare a introdurla e di questo bisogna dare atto a Nvidia, che si è fatta carico degli oneri e degli onori legati a questo passo.

Quest'anno arriveranno le nuove console di Microsoft e Sony con supporto al ray tracing e ciò non farà altro che spingere gli sviluppatori a implementare la tecnologia in molti videogiochi.

A dispetto delle schede video tradizionali, le console sono però "scatole chiuse", con hardware definito. E questo ci incuriosisce: da una parte l'arrivo sulle console diffonderà la tecnologia e darà modo a nuove tecniche di implementazione di emergere; dall'altra non vorremmo ritrovarci con implementazioni al "ribasso". Non ci resta che attendere gli sviluppi futuri per soddisfare la nostra curiosità.

28 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Manolo De Agostini21 Marzo 2020, 15:25 #1
Originariamente inviato da: mally
perchè scomodare video di 3 anni fa quando AMD e Microsoft hanno da poco presentato video sull'implementazione delle DXR 1.1 e DirectX 12 Ultimate?

https://www.youtube.com/watch?v=eqXeM4712ps


1. li abbiamo riportati https://www.hwupgrade.it/news/skvid...es-x_87908.html
2. Si tratta di video che comunque riguardano un'implementazione concreta
3. Non erano il focus del pezzo
4. Il pezzo è stato fatto prima della presentazione.
aldo87mi21 Marzo 2020, 17:29 #2
articolo fatto molto bene, complimenti. Bel lavoro.

Personalmente seguo con interesse la tecnologia del ray tracing, soprattutto in ambito videoludico. Trovo però molto scorretta la pratica di molte software house che già da mesi prima annunciano che il loro gioco avrà il ray tracing, invece poi una volta uscito il gioco è senza ray tracing (vedi Doom Eternal o Assetto Corsa) e passano altri 6 mesi per aggiungere il ray tracing al gioco (vedi Tomb Raider e Wolfenstein Youngblood) o non lo aggiungono affatto. Finora questa tecnologia è stata molto trascurata in ambito videoludico, è passata un pò in sordina se si esclude un manipolo di veri appassionati. Spero che le cose cambino in futuro. Ci hanno preso un pò in giro finora, facendoci comprare queste schede Rtx con un marketing aggressivo e gli stessi pre-orders di giochi importanti AAA fatti da molti videogiocatori con la promessa di avere il ray tracing al day one...promessa quasi mai mantenuta. Si può dire che l'unico vero gioco ray tracing decente è oggi Control, dove la tecnologia è implementata in maniera capillare ed egregia. Per il resto...la luce non si vede ancora in fondo al tunnel. E di certo questa emergenza coronavirus non aiuterà, con gran parte della silicon valley in chiusura
Gnubbolo21 Marzo 2020, 18:18 #3
Quake 2 RTX è il migliore.
tompix21 Marzo 2020, 18:38 #4
carissimo, che ci fai da queste parti
lucusta21 Marzo 2020, 22:02 #5
articolo decisamente incompleto e forviante, in cui tutte le immagini sono prese dal marketing nvidia e probabilmente per motivi precisi...

forviante perchè, ad esempio, nell'immagine che illustra l'esecuzione di un frame di Metro sarebbe stato bello mettere a confronto anche una semplice GTX della serie 16xx, che pur non avendo RT core e Tensor core guadagna sensibilmente in framerate, e quindi in esecuzione del singolo frame, abilitando l'opzione "RTX ON".
dai numeri si sà che MEtro eseguito con RTX ON su una RTX 20 ottiene un 20% in più di prestazioni, mentre eseguito su una GTX 16 ottiene il 10% in più;
significa che il lavoro che fanno queste parti "specializzate" può essere fatto anche in assenza di quese usando algoritmi che sfruttano l'HW che già oggi è a disposizione ai giocatori...
ma dirlo sarebbe antieconomico.

l'articolo sarebbe stato molto più interessante se ci si focalizzava essenzialmente sul RT ibrido, situazione che sarà persente per almeno le prossime tre generazioni di GPU, spiegando sì la natura della tecnologia ray tracing e le sue derivazioni, ma concentrandosi su quelle che il mercato effettivamente offre ai giocatori.
sarebbe stato interessante leggere dei tre effetti principali, quali riflessione, illuminazione globale e ombreggiatura realistica portata da più fonti di luce in contemporanea e come questi vengono implementati nei videogiochi, che prestazioni richiedono e su chè tipologia di HW gravano.

ma questi articoli servono più a spingere i brand che a dare informazioni reali, vero?
Ryoga8522 Marzo 2020, 06:36 #6
Originariamente inviato da: lucusta
articolo decisamente incompleto e forviante, in cui tutte le immagini sono prese dal marketing nvidia e probabilmente per motivi precisi...

forviante perchè, ad esempio, nell'immagine che illustra l'esecuzione di un frame di Metro sarebbe stato bello mettere a confronto anche una semplice GTX della serie 16xx, che pur non avendo RT core e Tensor core guadagna sensibilmente in framerate, e quindi in esecuzione del singolo frame, abilitando l'opzione "RTX ON".
dai numeri si sà che MEtro eseguito con RTX ON su una RTX 20 ottiene un 20% in più di prestazioni, mentre eseguito su una GTX 16 ottiene il 10% in più;
significa che il lavoro che fanno queste parti "specializzate" può essere fatto anche in assenza di quese usando algoritmi che sfruttano l'HW che già oggi è a disposizione ai giocatori...
ma dirlo sarebbe antieconomico.

l'articolo sarebbe stato molto più interessante se ci si focalizzava essenzialmente sul RT ibrido, situazione che sarà persente per almeno le prossime tre generazioni di GPU, spiegando sì la natura della tecnologia ray tracing e le sue derivazioni, ma concentrandosi su quelle che il mercato effettivamente offre ai giocatori.
sarebbe stato interessante leggere dei tre effetti principali, quali riflessione, illuminazione globale e ombreggiatura realistica portata da più fonti di luce in contemporanea e come questi vengono implementati nei videogiochi, che prestazioni richiedono e su chè tipologia di HW gravano.

ma questi articoli servono più a spingere i brand che a dare informazioni reali, vero?


Attivando il ray tracing si aumenta di frame?
Io ho visto video la cui differenza non riesco a vederla apparte il calo drastico di framerate
Esempio su metro e 1070 100fps contro 30 (circa)
zappy22 Marzo 2020, 16:41 #7
interessante articolo, anche se con qualche imprecisione lessicale, imho
demon7722 Marzo 2020, 19:06 #8
In linea generale la tecnologia ray tracing è il "punto di arrivo" in fatto di qualità visiva in quanto va a ricalcare la realtà nel miglior modo possibile, quindi è chiaro che è qui per restare, immagino che da qui in poi la sfida sarà quella di aumentare le prestazioni velocistiche..
ramses7722 Marzo 2020, 19:10 #9
Originariamente inviato da: Ryoga85
Attivando il ray tracing si aumenta di frame?
Io ho visto video la cui differenza non riesco a vederla apparte il calo drastico di framerate
Esempio su metro e 1070 100fps contro 30 (circa)


Quando si dice: poche idee... ma confuse.

Io invece ringrazio per l'articolo, ne sapevo poco e ora ho le idee più chiare.
lucusta22 Marzo 2020, 21:21 #10
Originariamente inviato da: Ryoga85
Attivando il ray tracing si aumenta di frame?
Io ho visto video la cui differenza non riesco a vederla apparte il calo drastico di framerate
Esempio su metro e 1070 100fps contro 30 (circa)


RTX è una tecnologia che non si basa esclusivamente sugli RT core o Tensor core, anzi, tutt'altro.
RTX sono algoritimi molto più raffinati per fare quello che si faceva prima, in modo un po' più sofisiticato, ma comunque sempre allo stesso modo, ossia calcolando dei vettori.
si deve poi distinguere il rendering path tracing da quello RT ibrido.
il path tracing è la tecnologia più sfruttata oggi per fare rendering professionale; è in quell'occasione che il connubio algoritmi e HW si legano meglio, ma anche con le più potenti schede RTX, le 8000, la potenza è ancora limitata.
nell'RT ibrido usi altre caratteristiche di quegli algoritmi e logicamente parte dell'HW, ma non solo quello della scheda video, e sono, di per se, dei layer messi sopra a quello che fa già il rendering di rasterizzazione, e spesso richiede prestazioni superiori in rasterizzazione proprio perchè tratti intere immagini, non vettori.
sono dul ele caratteristiche più importanti delle RTX: la gerarchia collisionale (BVH) e di filtri denoise.

per alcune cose vengono sfruttati gli RT core ed i Tensor core, per altre anche la FPU e le SIMD del processore.
per ora hano mostrato ombre tracciate su più punti di luce, illuminazione globale e riflessi.
sui primi due entrano in gioco sia RT core che tensor core, ma anche le SIMD AVX dei processori, mentre sui riflessi entrano in gioco questi (in maniera inferiore) e i normali shader della scheda video, perchè non devono far altro che creare un ulteriore rendering della visuale riflessa e poi stenderlo sulla superficie riflettente;
abbiamo visto, per ora, due tipi di effetti di riflessione: su superfici grandi e su quelle piccole.
su quelle grandi , generalmente piane per diminuire la consistenza dei calcoli, e su quelle piccole le superfici curve, che per effetto lente prendono una porzione di visuale molto elevata, ma fortunatamente la concentrano, perciò il rendering può essere fatto in maniera più grossolana a risoluzioni e qualità inferiori.
in tutte e due la visuale viene presa e deformata secondo la proiezione di raggi sulla superficie riflettente, che partono dalla visuale principale.
altri effetti di riflessione, in effetti sono essenzialmente ombre calcolate al contrario, ossia aumenti di luminosità, e si ottengono con la stessa tecnica con cui si ottengono le ombre da più fonti di luce.

in tutto questo partecipa attivamente la CPU, con le sue SIMD;
se il gioco, quando non è su RTX ON, ha comunque attiva l'illiminazione globale, non usa gli algoritmi specifici di RTX o DXR, e tutto viene affidato alla massima compatibilità, ossia sulle FPU del processore, rendendo l'elaborazione assai dispendiosa.
quando viene abilitato RTX si usano istruzioni che sfruttano le peculiarità dei processori, ossia le AVX, che nel caso di schede senza RT core e tensor core si devono sobbarbare anche il loro lavoro di gerarchia collisionale, per la quale ci vuole un dialogo con la RAM assai intenso (in presenza di RT core si fa sulla caches della scheda video, ed i filtri denoise, che le AVX fanno egregiamente e per cui Intel ha speso diverso tempo per proporre dei filtri open souce; logico che più le carichi di roba, meno possono produrre...
quindi sulle schede GTX 16xx hai anche giovamenti ad usare RTX, perchè usi algoritmi che sfruttano le AVX, mentre sulle RTX 20xx hai giovamento sia dalle SIMD AVX che da RT core e tensor core.
sulle Pascal hai un calo prestazionale per il semplice fatto che non sono DX12,
ma anche questo non giustifica l'infinito calo prestazionale attivando RTX, perchè probabilmente non sfruttano allo stesso modo quegli algoritmi; d'altra parte devono spingere il prodotto nuovo, non quello vecchio...

quindi, per fare un buon articolo si sarebbe dovuto analizzare non il ray tracing, che ben poco c'entra sui giochi se non su quelli di 20 anni fa e assai leggeri (e li vedi quale sia la vera consistenza computazionale che servirebbe per giocare con RAY TRACING, con il framerate che passa da 2000fps a 60fps, con un calo di 30 volte per le scarse risorse che oggi si ha per produrre realmente in real time questo tipo di rendering), ma si doveva analizzare, dopo 18 mesi dal suo esordio nel mercato, RTX e DXR usato come RT ibrido, casistica per casistica e analizzando effettivamente cosa e come venisse usato.

leggere le stesse, misere, cose di 18 mesi fa è... deludente.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^