San Base e la Dynamic Painting, continua
Tom's Hardware: cosa rende la Dynamic Painting unica quando confrontata con le altre forme di arte generativa?
San Base: la Dynamic Paintings che applico è un esempio di arte generativa - un'arte che viene generate algoritmicamente da un computer. Ci sono stati molti tentativi di produrre arte generativa; la storia risale ai primi anni dei computer. Molti lavori utilizzavano i frattali (forme geometriche che si ripetevano secondo una determinata scala e gradi di inclinazione) e nessuno di questi andava oltre alcuni principi artistici basilari. Con la Dynamic Paintings è diverso. Sostengono che l'innovazione è spesso il frutto dell'unione di differenti discipline, e penso che l'essere nel contempo un artista e un programmatore mi abbia dato un buon vantaggio.
Un'altra grande sfida che ho affrontato ha riguardato l'utilizzato di una potenza computazionale inadeguata dei personal computer per gestire avanzati algoritmi che descrivono i principi artistici applicati in una pittura generata automaticamente. La mia tecnologia utilizza schede video potenti per generare immagini in tempo reale che possono raffrontarsi con dipinti contemporanei dal costo di migliaia di dollari. Tutto ciò non è mai stato tentato prima. Inoltre, essere in grado di generare immagini in tempo reale mi ha permesso di mettere in movimento le pitture e creare una nuova esperienza visiva mai vista prima.
Cortesia di: San Base
Tom's Hardware: lei utilizza spesso le schede grafiche nel suo lavoro. Può dirci quali schede usa e perché?
San Base: molte CPU moderne non sono abbastanza potenti per generare queste immagini in tempo reale; solo gli ultimi sviluppi nella programmazione delle schede video (GPU) hanno reso questa tecnologia possibile. Anziché utilizzare le schede video per renderizzare immagini 3D come accade per i videogiochi, la mia tecnologia si basa sulla potenza di calcolo delle schede. Gli algoritmi di pittura, tradotti nei pixel shader - programmi utilizzati dalle GPU - costruiscono con precisione le immagini pixel per pixel alla desiderata risoluzione con un livello di dettaglio senza precedenti. Questo è un esempio su come utilizzare le schede video per il cosiddetto "general purpose computing su GPU" (GPGPU). Il motore di rendering è costruito in maniera tale da non essere limitato dalla risoluzione nativa delle schede video, così sono in grado di produrre immagini anche da 80 o 100 Mpixel, come se fossero una vera tela.
Tom's Hardware: che API grafiche utilizza, e perchè ha deciso di offrire screensaver tramite il vostro sito web con la versione DirectX 9 del suo motore?
San Base: al momento utilizzo le DirectX 9 per gli screensaver, ma ho cercato di rimanere agnostico in termini di API. Infatti, il mio motore Dynamic Picture supporta anche le OpenGL. Originariamente ho sviluppato il motore utilizzando le OpenGL, tuttavia ho incontrato diversi problemi di compatibilità con molte schede video. Prima di tutto, il linguaggio shading delle OpenGL (GLSL) è implementato in maniera abbastanza differente sulle schede Nvidia e ATI (AMD), quindi il risultato finale non sarebbe stato ugualmente buono nei vari casi.
Il problema più grosso è stato l'utilizzo dei programmi shader con le vecchie schede shader model 2.x. In molti casi l'OpenGL passava al rendering software anziché utilizzare le potenzialità dei processori. Per quanto riguarda le DirectX 9 questi problemi non ci sono, motivo per la scelta è ricaduta principalmente su queste librerie. Tuttavia, non ho abbandonato le OpenGL.
Tom's Hardware: ha affermato che l'approccio GPGPU è il cuore della sua tecnologia. Sta utilizzando un linguaggio GPGPU speciale, come Brook o CUDA, o altri kit di sviluppo (SDK)?
San Base: no, non utilizzo nulla di specifico per l'implementazione GPGPU. Il "GPGPU" è il trend che consiste di utilizzare le GPU per tutti i tipi di calcoli, e può essere implementato con qualsiasi API che gestisce gli shader, senza dover utilizzare un kit di sviluppo particolare. Siccome il mio problema è praticamente unico, nessuna delle soluzioni GPGPU è perfetta al 100%, motivo per cui ho deciso di crearmi il mio motore personale.