Avatar di Danilo Iaccio

a cura di Danilo Iaccio

Microsoft ha presentato due nuove tecnologie pensate per facilitare lo sviluppo dei videogiochi e migliorarne la qualità grafica. Stiamo parlando di WinML e DirectX Raytracing. L'annuncio è arrivato in occasione della GDC 2018 di San Francisco, palcoscenico ideale per questo tipo di tematiche tecniche.

Il raytracing è una tecnologia di rendering molto usata nella computer grafica, finora mai usata nei giochi - se non in modalità ibride e minime - per via della grande potenza di calcolo richiesta alle GPU.

Tutti i giochi o quasi da 30 anni a questa parte si sono avvalsi della stessa tecnica generale, nota come rasterizzazione (rasterization) per mostrare le immagini sullo schermo. Anche se il mondo di gioco vi appare in 3D dimensioni, la rasterizzazione opera in realtà in due dimensioni - il piano dello schermo - con primitive 3D mappate tramite matrici di trasformazione e altri "trucchetti".

L'evoluzione dei giochi ha reso i contenuti sempre più realistici, ma le nuove tecniche (come screen-space reflection e global illumination) che si stanno affacciando sulla scena si stanno scontrando sempre di più con i limiti della rasterizzazione e quindi è necessario trovare nuovi modi per creare titoli sempre più fotorealistici. Così, da molti anni a questa parte, sviluppatori e produttori di hardware hanno rivolto la loro attenzione verso il raytracing.

Raytracing DXR

Il raytracing calcola il colore dei pixel tracciando il percorso della luce e simulando le interazioni del raggio di luce con gli oggetti nel mondo virtuale. Quindi Raytracing calcola come apparirebbe un pixel se il mondo virtuale avesse una luce reale. La cosa bella del raytracing è che preserva il mondo 3D e gli effetti visivi come ombre, riflessi e illuminazione indiretta sono una conseguenza naturale dell'algoritmo di raytracing, non effetti speciali.

Questa tecnica può essere usata per calcolare il colore di ogni singolo pixel sullo schermo, oppure solo per alcuni pixel - come quelli delle superfici riflettenti.

DirectX Raytracing è un'espansione delle API Microsoft DirectX 12 che sarà supportata nei futuri giochi mossi dai motori grafici quali Unreal Engine, Unity 3D, Frostbite, 3D Mark, Seed e Northlight Engine - altri se ne aggiungeranno.

Sfruttando le API DXR gli sviluppatori potranno applicare questa tecnica su alcuni effetti in tempo reale come riflessi, ombre e l'occlusione ambientale, ottenendo un aumento generale della qualità grafica.

Nei prossimi anni, a detta di Microsoft, questa tecnologia molto dispendiosa dal punto di vista delle risorse di calcolo, potrebbe arrivare a sostituire la rasterizzazione come algoritmo di base per il rendering della scena 3D.

Più nell'immediato, invece, questa funzionalità delle DirectX 12 colmerà il divario che c'è tra le tecniche di rasterizzazione usate nei giochi odierni e gli effetti 3D futuri. Insomma, avremo giochi renderizzati in modo "ibrido", con la possibilità di avere in futuro nuove tecniche in tempo reale che non sono mai state inserite in un gioco.

Project PICA Seed   DXR

Microsoft non ha chiaramente lavorato da sola su questa tecnologia. Nvidia ha annunciato che supporterà l'accelerazione hardware di DXR tramite la nuova RTX Technology integrata all'interno del pacchetto proprietario Gameworks.

RTX combina caratteristiche di raytracing presenti nell'architettura Volta con routine software ottimizzate in modo da fornire un backend completo a supporto di DXR. Le schede "pre-Volta" garantiranno invece supporto tramite software. Per quanto riguarda AMD, l'azienda sta collaborando con Microsoft per mettere a punto un driver dedicato nel prossimo futuro.

Epic, Remedy, Unity e 4A Games stanno già lavorando con strumenti dedicati per integrare questa tecnologia nei loro titoli. Di seguito potete vedere questa tecnologia in azione e i suoi risultati applicati alla generazione di luci, ombre e riflessi nella tech demo di Remedy Entertainment creata con l'engine proprietario Northlight.

Infine WinML: un framework per i network neurali che in futuro sarà applicato anche ai giochi per migliorare la velocità nella creazione di asset con l'aiuto dell'intelligenza artificiale. Ne avevamo anticipato l'arrivo qualche settimana fa, dato che sarà integrato in Windows 10 e servirà anche per le applicazioni comuni.

L'uso del machine learning potrebbe trovare spazio in questo campo anche per migliorare in tempo reale la qualità di texture e altri asset. Un discorso prematuro ma potenzialmente interessante per gli sviluppatori e per le future applicazioni.


Tom's Consiglia

La GeForce GTX 1080 Ti rimane la scheda da battere quanto a prestazioni con i videogiochi.