Android

PowerVR Wizard per il ray tracing in tempo reale su mobile

Imagination Technologies ha presentato una nuova famiglia di GPU mobile, nome in codice Wizard, che punta tutto sul ray tracing. L'azienda sta lavorando da diversi anni su questa tecnica di rendering che finora non è stata implementata in modo completo ed efficiente. Ne abbiamo parlato qualche mese fa nell'articolo "Videogiochi fotorealistici: un cammino pieno di ostacoli".

Il ray tracing è un algoritmo che riproduce la scena con una tecnica che segue i raggi (rays) partendo dal punto di vista della telecamera anziché dalle sorgenti di luce. L'algoritmo calcola la posizione in tempo reale di milioni di raggi luce e crea, ombre, sfumature e texture. Il ray tracing è già usato in film e pubblicità, ma non in contenuti in tempo reale come i videogiochi moderni, in quanto richiede molta potenza di calcolo.

Con Wizard l'azienda britannica pensa di avere la soluzione per portare il ray tracing nel mondo mobile. La prima soluzione introdotta si chiama GR6500, ed è una variante dell'attuale Series6XT GX6450. Di base, infatti, ci troviamo davanti a una GPU PowerVR Series6XT Rogue a cui sono stati aggiunti i blocchi necessari per il ray tracing. Il risultato finale è una GPU potente quanto le soluzioni Rogue nel rendering tradizionale (rasterizzazione), ma capace anche di occuparsi del ray-tracing. Insomma ci troviamo davanti a una soluzione che consente un rendering ibrido e che non si fa mancare il supporto alle API OpenGL ES 3.1/2.0/1.1, OpenGL 3.x, Direct3D 11 Level 10_0, OpenCL 1.2 e OpenRL 1.x.

Abbiamo quindi hardware a funzione fissa non programmabile solo per il ray-tracing composto da quattro blocchi chiamati Ray Tracing Data Master, Ray Tracing Unit, Scene Hierarchy Generator e Frame Accumulation Cache. Il tutto è collegato direttamente all'USC Array con 128 ALU. Il Ray Tracing Data Master si occupa di restituire i dati relativi al ray tracing al blocco per la rasterizzazione.

Senza Ray Tracing

Il sito Anandtech spiega che "la Ray Tracing Unit calcola i dati ray e le intersezioni, e poi il data master passa quel dato all'hardware di rasterizzazione per la risoluzione finale dei pixel, in quanto i dati ray sono usati per calcolare tali valori". Il fulcro di tutto è la Ray Tracing Unit (RTU), dove si svolgono effettivamente i calcoli del ray tracing. Al suo interno ci sono due sottoblocchi chiamati Ray Interaction Processor e Coherency Engine. Nel primo risiedono le ALU responsabili del ray tracing, mentre il secondo si occupa di mantenere i ray organizzati e coerenti per una maggiore efficienza di calcolo. Infine ci sono lo Scene Hierarchy Generator, usato per aggiornamenti di oggetti dinamici, e la Frame Accumulation Cache, capace di gestire gli accessi al frame buffer.

Con Ray Tracing

Per quanto riguarda le specifiche tecniche, il GR6500 ha una frequenza di 600 MHz che permette di offrire fino a 300 milioni di ray al secondo e 100 milioni di triangoli dinamici al secondo. Ovviamente, dato che stiamo parlando di unità separate, l'USC Array garantisce una potenza di 150 GFLOPs con calcoli FP32.

Non sono al momento note le dimensioni e i consumi del chip, ma siccome stiamo parlando di una soluzione rivolta al mondo mobile, c'è da sperare in valori non troppo dissimili da un classico chip Rogue. Per quanto concerne la data di uscita, non ci sono ancora dettagli certi, ma è plausibile che lo vedremo in alcuni prodotti non prima della seconda metà inoltrata del 2015, o forse nel 2016. Ciò dipenderà però se l'industria del gaming supporterà la nuova proposta di Imagination, iniziando a lavorare seriamente sul ray tracing. In tal senso la compatibilità con Unity 5 è una buona notizia.