Ray Tracing: come decrementano le prestazioni con schede video senza implementazione in hardware

NVIDIA ci ha invitato a una conference call dove i suoi tecnici hanno spiegato come l'architettura Turing potenzia le prestazioni delle applicazioni in Ray Tracing
di Rosario Grasso pubblicata il 11 Aprile 2019, alle 15:01 nel canale Schede VideoNVIDIAGeForceRTXMicrosoftDirectX
Ray Tracing alla GDC è diventato l'argomento di analisi e discussione principale, con gli annunci, tra gli altri, dell'integrazione in Unreal e Unity Engine. L'implementazione di NVIDIA è basata sulle Microsoft DirectX Ray Tracing all'interno delle DX 12, le librerie grafiche che hanno aumentato la possibilità da parte degli sviluppatori di avere controllo sull'hardware e sulla pipeline di rendering. Le DXR, in particolare, hanno introdotto un nuovo workload, implementando la cosiddetta Bounding Volume Hierarchy, un algoritmo che valuta le intersezioni fra raggi di luce e triangoli per gestire il tracciamento della luce, fondamentale per l'applicazione della tecnica di Ray Tracing.
È dunque Microsoft (ma si ricordi che Ray Tracing è disponibile anche nelle API Vulkan), e non NVIDIA, a dettare il passo sulle nuove tecniche di rendering, e il Ray Tracing sarà sicuramente alla base della grafica tridimensionale dei giochi e delle applicazioni digitali del futuro, diventando un punto di riferimento come oggi lo sono pixel e vertex shader. Probabilmente NVIDIA è arrivata con troppo anticipo, introducendo subito le GeForce RTX basate su architettura Turing, quando ancora i giochi non implementano bene il Ray Tracing. Per questo motivo è chiamata a spiegare bene all'utenza quali sono i vantaggi, sui piani qualitativo e prestazionale, permesse dalla nuova architettura che ha debuttato con le GeForce RTX 2080.
Il Ray Tracing sarà utilizzato in maniera sempre più pervasiva da parte degli sviluppatori di videogiochi, e questo richiederà hardware adatto nei prossimi mesi/anni. Si consideri, da questo punto di vista, come anche Epic Games e Unity abbiano annunciato alla GDC che integreranno strumenti per gestire il Ray Tracing all'interno dei rispettivi motori grafici, oggi i punti di riferimento rispettivamente per le applicazioni desktop e mobile.
NVIDIA ha mostrato una slide con un confronto tra l'uso che viene fatto dell'hardware per elaborare un frame, differenziando fra tre casi. Innanzitutto si osservi come Pascal impieghi molto più tempo di Turing per elaborare il frame in Ray Tracing, mentre Turing impiega meno tempo quando sfrutta gli RT Core, ovvero la parte della GPU che corrisponde all'implementazione in hardware del Ray Tracing. Se non si usano gli RT Core si va a occupare un certo numero di INT32 Core, che invece possono essere lasciati ad altri calcoli se il Ray Tracing viene implementato tramite RT Core.
Però, specifica NVIDIA, questo vale solo per Metro Exodus, perché altri giochi usano l'hardware in maniera differente. Metro Exodus usa gli RT Core per processare l'illuminazione globale e l'occlusione ambientale. Battlefield V invece faceva un uso completamente differente del Ray Tracing (con migliori risultati per l'utente a nostro avviso) perché si concentrava sulle riflessioni. Guardando la slide successiva si capisce come funziona l'implementazione. Le parti in rosso, infatti, corrispondono alle parti della schermata che possono generare riflessioni: lo sviluppatore del gioco, in questo caso, può decidere la quantità di aree che generano riflessioni in funzione delle risorse di calcolo a sua disposizione.
Microsoft mette il Ray Tracing a disposizione di tutte le architetture al di là della disponibilità dell'implementazione in hardware, come già visto. Quindi, teoricamente questo è ottenibile anche con una GeForce GTX fino alla 1060: per il ragionamento che abbiamo fatto prima, però, il Ray Tracing in questi casi è calcolato tramite INT32 Core, il che compromette fortemente le prestazioni.
Ancora differente l'implementazione del Ray Tracing in Shadow of the Tomb Raider, perché va a interessare le ombre. In questo caso lo sviluppatore può andare a modificare il numero di fonti di luce che portano alla proiezione delle ombre per ottenere ombre più o meno dettagliate. Le prestazioni quindi cambiano in funzione della composizione della scena e il divario prestazionale fra scheda con architettura Turing e scheda con architettura Pascal può divergere in maniera consistente. Più ci sono elementi che innescano effetti in Ray Tracing e più tale divario aumenta in favore delle schede Turing.
Il vero Ray Tracing, d'altra parte, funziona in maniera ancora più approfondita rispetto all'implementazione fatta, ad esempio, in Battlefield V. In quest'ultimo caso si tratta di simulare il comportamento del raggio di luce dall'occhio fino all'oggetto, ma in altre implementazioni, come per la tech demo Atomic Heart, si tratta di calcolare il raggio anche oltre il primo rimbalzo della luce, quindi dall'oggetto a un secondo oggetto, dopo del passaggio dall'occhio al primo oggetto. Questo tipo di organizzazione del Ray Tracing fa un utilizzo ancora più consistente degli RT Core.
È stato spiegato anche come il Ray Tracing aiuta nell'elaborazione dell'occlusione ambientale. C'è una differenza importante rispetto ai casi precedenti, perché la Bounding Volume Hierarchy viene qui applicata solo su aree molto circostanziate della schermata di gioco, ovvero in prossimità delle aree di contatto (le uniche interessate dall'occlusione ambientale) fra due differenti poligoni.
Oltre Atomic Heart, NVIDIA ha rilasciato altre due demo delle tecnologie Ray Tracing, Justice e Reflections. I dettagli sulle nuove demo NVIDIA si trovano qui.
Le nostre analisi tecniche sul Ray Tracing si trovano qui e qui.
11 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoDa un lato fanno l'evento ad hoc sul dxr per tutti, dall'altro ti dicono che tanto è inutile perché ti gira a 20 fps
Quoto.... io sono propenso per entrambi i casi che hai riportato!!
Quoto Pienamente, le nuove tecnologie che si stanno affaciando ora nei giochi saranno implementate tra qualche anno al 100%.
Guarda le DX12, ci sono da un bel po' di tempo ma solo in questi ultimi mesi sembra essersi mosso qualche cosa di concreto e di "stabile" grazie soprattutto agli sviluppatori che finalemnte ne traggono buone cose.
dall'altra il fai twitting
dall'altra ancora il mai sobbing
il crosspost creato da suppongo qualche casino sul db, genera mostri
Da un lato fanno l'evento ad hoc sul dxr per tutti, dall'altro ti dicono che tanto è inutile perché ti gira a 20 fps
C'è da dire che la cosa buona delle schede nvidia Turing è che è aumentato il versante qualitativo e velocistico (%cpu occupata), nvenc, per i flussi multimediali. Qualitativamente parlando, ora l'encoder hw h264/h265 è avanti (anche a quicksync) a tutti nella fascia mainstream. Amd è purtroppo ancora piuttosto indietro su questo versante (e dovrebbero darsi una mossa perché fondamentale soprattutto nei notebook).
ah bo pensavo di essere impazzito io, ho pulito i commenti.
comunque un giorno lo proverò con la 590...in slow motion
visto che lo pubblicizzano tanto ma ammazza le loro VGA sarebbe giusto che nvidia ci dia a due spicci le 1080ti d'avanzo, tanto fanno schifo manco 30fps
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".