Intervista scritta a quattro mani da Raffaele Fanizzi e Jacopo Cocchi
1. Ciao Francesco, per chi non ti conoscesse puoi spendere due parole per introdurti?
Ciao, mi chiamo Francesco Carucci, sono laureato in Ingegneria Informatica al Politecnico di Torino. Prima di lavorare in Crytek ho passato otto anni in Inghilterra, lavorando prima per Kuju e poi cinque anni per Lionhead con Peter Molyneux, dove ho partecipato alla realizzazione di Black&White 2 e Fable 2 in qualita’ di Ingegnere Grafico.
2. Di cosa ti occupi esattamente e che ruolo rivesti all’interno di Crytek?
In Crytek sono Tecnical Director, mi sono occupato in questa qualità del First Playable di Crysis 2, periodo nel quale ho gestito un gruppo di circa dieci programmatori. Nell’ultimo anno mi sono occupato di gestire l’implementazione dello Stereo-3D in CryEngine, implementazione usata in Crysis 2. Ora sono a capo di un nuovo progetto particolarmente interessante e, ovviamente, segretissimo. A parte gli scherzi, se ne saprà qualcosa fra qualche mese, ma gli indizi sono già in giro.
3. Sulla tecnologia 3D si sta puntando moltissimo in tutti i campi dell’intrattenimento. Se prima, però, c’erano solo i videogiochi 3D e i vari sistemi di audio posizionale sia in ambito gaming, che cinematografico, negli ultimissimi anni c’è stata una vera e propria accelerazione in questa direzione: l’introduzione della stereoscopia nel cinema ha dato vita non solo ai film in 3D, ma anche a console portatili come il Nintendo 3DS, alle TV 3D, ecc… Come vedi l’evoluzione della tecnologia in questa direzione? Ci troviamo di fronte ad un fuoco di paglia o a qualcosa che diventerà d’uso comune come la TV a colori o l’audio in stereofonia?
Dal punto di vista tecnologico abbiamo fatto moltissimo lavoro sulla stereoscopia negli ultimi due anni in Crytek. Questo sforzo ha portato all’implementazione più riuscita nel campo dei videogiochi. Mi piace dire che questo risultato è stato ottenuto mettendo in primo piano l’utente: abbiamo implementato la stereoscopia non con lo scopo di stupire, ma con lo scopo di proporre al giocatore un’esperienza piacevola, che il 3D fino ad ora, sia nel cinema sia nei videogiochi, non è sempre stato in grado di offrire. La fisiologia è un problema enorme che deriva dall’innaturalezza del procedimento di visione steroscopica: senza complicare troppo la spiegazione, durante la visione di un contenuto stereoscopico il piano di fuoco è sempre sullo schermo, mentre gli occhi cercano di convergere su punti nello spazio a distanze diverse dal piano di fuoco. Questo in natura non accade e porta ad affaticamento, ma anche, in taluni casi, a vero e proprio mal di testa e nausea. In Crysis 2 abbiamo tenuto al minimo questi problemi, cercando di focalizzare la nostra attenzione sulla naturalezza dell’esperienza di gioco.
4. AAA Stereo 3D è una tecnica per la generazione di un’immagine stereo. Prima di addentrarci nelle peculiarità di questa tecnica, puoi raccontarci quale è la soluzione attualmente più usata per il supporto del 3D nei videogiochi?
Esistono due soluzioni al momento: la prima consiste nel generare due immagini bidimensionali a partire dalla scena tridimensionale, un’immagine per occhio e poi proiettare le due immagini sugli schermi attraverso particolari tecnologie. Ogni occhio riceve l’immagine giusta, e questo crea l’illusione del 3D.
La seconda soluzione è quella di Crytek: a partire da una singola immagina bidimensionale, e dal depth buffer relativo che contiene per ogni punto l’informazione sulla distanza del pixel dall’osservatore, ricaviamo due immagini bidimensionali, una per occhio, che ricreano l’illusione del 3D. Questo procedimento e’ estremamente piu’ veloce delle tecniche precedenti, e non meno accurato.
5. La vostra tecnica consiste nel riproiettare l’immagine finale pixel per pixel in due immagini, una dedicata all’occhio destro e una all’occhio sinistro, il tutto mediante pixel shader. Quali sono i principali benefici utilizzando questa tecnica?
Velocità, innanzitutto. Possiamo con questa tecnica generare immagini tridimensionali su console senza sacrificare la qualitè visiva per la quale Crytek è conosciuta.
6. Dal punto di vista delle API, che versione di DirectX ed OpenGL sono in grado di fornire le funzionalità necessarie per un’implementazione sufficientemente efficiente di questa tecnica? Immagino che una “vecchia” GPU DirectX 9 compliant (diciamo Pixel Shader 3.0) può farcela se è possibile implementarla su PS3.
Si, sia OpenGL sia DirectX mettono a disposizione l’API necessaria all’implementazione della nostra tecnologia.
7. Quali sono le principali differenze nell’implementazione tra PS3 e XBox 360 e in che modo si ripercuoteranno sull’utente finale?
La principale differenza riguarda come le due immagini sono presentate al pannello televisivo: su PS3 usiamo l’API messa a disposizione da Sony, mentre su Xbox 360 usiamo un formato frame-compatible che degrada leggermente la risoluzione.
8. I processori grafici alla base delle più recenti schede video hanno caratteristiche tecniche notevolmente superiori a quelle che portano in dote le attuali console. La vostra tecnologia stereoscopica è in grado di sfruttarle? Se si, in quali aspetti?
Essendo la nostra tecnologia basata sul postprocessing è ortogonale ai nuovi chip grafici.
9. WiiMote, Move e Kinect sono interpretazioni di un medesimo concetto: coinvolgere ed immergere anche fisicamente il giocatore all’interno di uno scenario di gioco. Come interagiscono con l’uso dell’AAA Stereo 3D? Possono beneficiare l’una delle altre?
Sarebbe bello esplorare in futuro l’uso di Kinect e della nostra tecnologia stereoscopica: immagino l’utente che interagisce “fisicamente” con oggetti che escono dallo schermo attraverso gesti rilevati da Kinect. A questo punto mancherebbe solo il feedback tattile.
10. Si parla spesso di GPGPU computing, cioè della possibilità di sfruttare la potenza di calcolo delle GPU per fini diversi da quelli dell’elaborazione della grafica tridimensionale. Secondo te quanto siamo distanti dal vedere applicate massicciamente queste tecniche nel mondo dei videogiochi?
GPGPU è’ gia’ massicciamente usato ad esempio nella fisica, ma anche nell’elaborazione del suono tridimensionale.
11. A tal proposito, che idea ti sei fatto sul SDK CUDA di NVIDIA, specie se confrontato con DirectCompute e OpenCL? Da sviluppatore quale ritieni sia la strada da intraprendere se dovessi iniziare domani a progettare qualcosa che utilizzi GPGPU?
Guarderei sia OpenCL sia CUDA. CUDA è una tecnologia che puo’ sedere alla base di OpenGL quindi non sono mutuamente esclusive. Inoltre sia OpenCL sia CUDA potrebbero molto presto affacciarsi sul mobile.
12. In più di un’occasione si sono sentite in passato previsioni catastrofiche per il mercato dei videogiochi per PC: la pirateria è la motivazione spesso utilizzata come argomentazione per giustificare un probabile scenario in cui gli sviluppatori staccheranno la spina ai PC per concentrarsi sulle console. Secondo te gli appassionati che giocano su PC hanno realmente di che preoccuparsi?
Si. Sviluppare su Console costa meno e garantisce migliori ritorni. Ci sarà sempre qualcuno che svilupperà per PC (vedi Blizzard, Valve), ma con l’avvento delle piattaforme mobile che nel giro di pochissimi anni potranno offrire esperienze di giochi molto sofisticare, il mercato PC si andrà via via ridimensionando.