DLSS di NVIDIA: cos’è e come funziona

DLSS di NVIDIA: cos’è e come funziona

DLSS nVIDIA Upscaling

Negli ultimi anni, l’industria videoludica ha puntato sempre di più su grafica fotorealistica e tecniche di rendering avanzate come il ray tracing. Tuttavia, queste tecnologie sono estremamente pesanti per le GPU.
Per affrontare questa sfida, NVIDIA ha introdotto DLSS (Deep Learning Super Sampling), una tecnologia basata sull’intelligenza artificiale che consente di aumentare le prestazioni senza sacrificare la qualità visiva, anzi, in molti casi migliorandola rispetto al rendering nativo.


Cos’è DLSS

DLSS è una tecnica di upscaling intelligente che sfrutta l’IA e i Tensor Core presenti nelle GPU NVIDIA RTX per ricostruire un’immagine ad alta risoluzione a partire da un rendering interno a risoluzione più bassa.
L’obiettivo è semplice: ottenere la qualità visiva del 4K (o superiore) con il costo computazionale di un rendering molto più leggero, come il 1440p o addirittura il 1080p.

In sostanza, la GPU calcola meno pixel e lascia che una rete neurale li “ricostruisca” con dettagli e nitidezza extra.


Come funziona tecnicamente

DLSS si basa su reti neurali convoluzionali (CNN) addestrate da NVIDIA usando il supercomputer SaturnV. Il training funziona così:

  1. NVIDIA raccoglie frame ad altissima risoluzione (ground truth) generati offline con tecniche di rendering estremamente pesanti e precisi, spesso superiori a quelli ottenibili in tempo reale.
  2. In parallelo, la stessa scena viene renderizzata a risoluzione più bassa.
  3. La rete neurale viene addestrata a trasformare i frame a bassa risoluzione in immagini che corrispondano il più possibile alla versione “perfetta” (ground truth).
  4. Una volta addestrato, il modello viene integrato nei driver e nelle librerie RTX, pronto per essere eseguito in tempo reale sui Tensor Core.

Input che il modello riceve in tempo reale

Il processo di inferenza di DLSS non lavora solo sul frame grezzo a bassa risoluzione, ma utilizza vari segnali per garantire stabilità e fedeltà:

  • Frame corrente a bassa risoluzione: il rendering tradizionale del gioco, calcolato a una risoluzione ridotta.
  • Motion vectors: vettori di movimento per ogni pixel, che permettono al modello di capire come gli oggetti si spostano da un frame all’altro, riducendo ghosting e blur.
  • Depth buffer: informazioni sulla profondità dei pixel, utili a distinguere meglio oggetti vicini e lontani.
  • History buffer (frame precedenti): DLSS sfrutta il temporale, accumulando dati dai frame passati per ricostruire dettagli che non sono visibili in un singolo frame.

Grazie a questi input, DLSS può ricostruire dettagli che non esistono nel frame corrente, sfruttando informazioni accumulate nel tempo.


Evoluzione delle versioni

  • DLSS 1.0 (2019): funzionava con un modello addestrato per ogni singolo gioco. La qualità era discontinua, con artefatti visibili.
  • DLSS 2.0 (2020): ha introdotto un modello generalizzato, utilizzabile in più titoli senza addestramento specifico. Usa il temporale per migliorare stabilità e nitidezza.
  • DLSS 3.0 (2022): introduce il Frame Generation, ovvero la capacità di generare interi frame aggiuntivi tramite AI (non solo upscaling). Questo raddoppia virtualmente il framerate, anche se può introdurre latenza.
  • DLSS 3.5 (2023): aggiunge il Ray Reconstruction, un modello di AI che sostituisce i tradizionali denoiser dei raggi, migliorando drasticamente la qualità del ray tracing.

Come gli sviluppatori usano DLSS

Per gli sviluppatori di videogiochi, integrare DLSS significa bilanciare qualità e prestazioni senza dover riscrivere il motore grafico. NVIDIA fornisce diversi strumenti:

  1. NVIDIA NGX SDK: libreria che permette di inserire DLSS nei motori grafici tramite API.
  2. Plugin per Unreal Engine e Unity: riducono il lavoro manuale, offrendo una integrazione “quasi plug-and-play”.
  3. Supporto nei motori custom: per i giochi con motori proprietari (es. CD Projekt RED con REDengine, o id Software con id Tech), gli sviluppatori devono gestire l’output dei buffer (motion vectors, depth, jitter) in modo coerente, così che DLSS abbia dati corretti.

Passaggi tipici di integrazione

  • Il motore invia a DLSS i buffer richiesti (immagine a bassa risoluzione, motion vectors, depth, frame precedente).
  • DLSS elabora il frame tramite i Tensor Core.
  • L’immagine finale viene restituita al motore e visualizzata.

Gli sviluppatori possono anche esporre al giocatore impostazioni come Qualità, Bilanciato, Prestazioni, Ultra Prestazioni, che definiscono il fattore di scaling interno (es. 1440p → 4K).


Perché DLSS è importante

  • Prestazioni: permette di giocare con ray tracing altrimenti impossibile a framerate elevati.
  • Qualità: spesso un 4K con DLSS appare più nitido del 4K nativo, grazie all’upscaling con AI.
  • Efficienza: gli sviluppatori non devono ottimizzare eccessivamente per ogni GPU, poiché DLSS compensa parte del carico.

Conclusione

DLSS rappresenta una delle innovazioni più significative degli ultimi anni nel rendering in tempo reale.
Non è solo un “trucco” per guadagnare FPS, ma una nuova filosofia: usare l’AI non per disegnare la scena, ma per ricostruirla in modo intelligente.
Con l’arrivo di DLSS 3.5 e il ray reconstruction, la direzione è chiara: l’IA diventerà parte integrante del processo di rendering, andando oltre l’upscaling e contribuendo direttamente alla creazione del fotorealismo.

Condividere è aMMore!