Nvidia, il mesh shading mostrato in una demo che ha dell'incredibile

Nvidia ha mostrato il mesh shading, una nuova tecnica usata dalle GPU Turing per offrire una notevole qualità d'immagine mantenendo ottime prestazioni.

Avatar di Marco Pedrani

a cura di Marco Pedrani

Managing Editor

Negli ultimi mesi abbiamo imparato a conoscere le nuove Nvidia GeForce RTX, analizzandone le prestazioni e osservando come gestiscono il ray tracing in tempo reale. Nvidia non ha però mostrato tutte le novità delle sue nuove GPU Turing e ha ancora qualche asso nella manica: uno di questi prende il nome di mesh shader, ed è in grado di migliorare notevolmente la qualità dell'immagine garantendo allo stesso tempo ottime prestazioni.

Nel dettaglio, il mesh shading consiste in una pipeline grafica di shading geometrico programmabile, che usa ciò che Nvidia definisce "gruppi di thread cooperativi" per creare dei mesh compatti sul chip. Con mesh s'intendono i mesh poligonali, reticoli che definiscono un oggetto nello spazio, composto da vertici, spigoli e facce. L'obiettivo principale del mesh shading è di alleggerire la CPU facendosi carico di alcune delle operazioni di calcolo più complesse e pesanti, in modo da sfruttare al massimo le grandi capacità di calcolo parallelo delle GPU.

Per mostrare il funzionamento di questo shading, Nvidia ha creato una demo in cui un'astronave vola in un campo d'asteroidi. Nella demo in questione ci sono 350mila asteroidi, ciascuno composto da un massimo di 10 milioni di poligoni. In totale ci sono quindi 3,5 milioni di poligoni da processare. La demo è scaricabile, ma per eseguirla vi servirà una scheda con architettura Turing.

Per ridurre ulteriormente le risorse necessarie al calcolo, i mesh shader ignorano tutto ciò che non si vede, agendo solamente sui pixel visibili. Partendo da qui Nvidia ha poi deciso di agire sul livello di dettaglio (LOD) per aumentare il numero di poligoni (e, di conseguenza, il dettaglio) in base alla distanza dell'astronave da un certo asteroide. Questo sistema usa una scala di 10 valori e aggiunge dai 20 (LOD 0) ai quasi 6 milioni (LOD 9) di poligoni.

"Combinando tecniche di culling (cioè determinare se un poligono è visibile) della GPU e LOD abbiamo ridotto il numero di poligoni disegnati di diversi ordini di grandezza, mantenendo solo quelli necessari per avere la massima fedeltà d'immagine possibile" ha dichiarato Manuel Kraemer, ingegnere di Nvidia. "In basso a sinistra è possibile vedere un contatore dei poligoni disegnati che si aggiorna in tempo reale. I mesh shader permettono di implementare soluzioni estremamente efficienti che possono essere indirizzate esattamente verso ciò che si sta renderizzando".

Nvidia ha dichiarato che l'utilizzo del mesh shading migliora di molto l'efficienza del rendering, ed è lecito aspettarsi che gli sviluppatori lo implementino nei loro videogiochi per migliorare prestazioni e fedeltà visiva.