THG: Abbiamo sentito che il ray tracing è una tecnologia è estremamente scalabile. Quanto?
Daniel Pohl: La cosa bella del ray tracing è che ogni raggio può essere calcolato individualmente. Ciò significa che puoi calcolare i pixel indipendentemente gli uni dagli altri e questa cosa è davvero buona per il parallelismo. Abbiamo creato un demo con quattro PC, dotati di processori Core 2 Quad connessi grazie a una Gigabit Ethernet. Poi abbiamo misurato la potenza di ogni singolo sistema con un core abilitato contro una macchina virtuale con 16 core: il fattore di accelerazione è stato di 15.2 volte, il che significa che questa macchina virtuale è stata oltre 15 volte più veloce di un sistema single-core.
THG: Questo risultato include il ritardo causato dalla connessione su Gigabit Ethernet?
Daniel Pohl: Sì, sapevamo che la Gigabit Ethernet avrebbe aggiunto molta latenza, ciò nonostante il ray tracer è stato in grado di raggiungere un'accelerazione di 15,2 volte.
THG: 10 anni fa il ray tracing in tempo reale era fantascienza, perfino utilizzando centinaia di processori a frequenze di lavoro vicine a quelle odierne. Qual è il progresso che hai visto in questo settore?
Daniel Pohl: Il ray tracing in passato è stato utilizzato solamente nella produzione cinematografica, per via dei requisiti molto elevati richiesti. Terminator 2 ne è un esempio, con luccicanti effetti cromati che si riflettevano su differenti superfici. Nel 2001, venne mostrato il primo ray tracer in tempo reale, che sfruttava un enorme cluster di sistemi, e centinaia di CPU, collegate su rete Ethernet. Oggi, invece, possiamo realizzare effetti di ray tracing decenti con un singolo sistema a otto core.
THG: Quali tecnologie hanno portato il ray tracing verso i computer desktop?
Daniel Pohl: Innanzitutto l'hardware, che si è evoluto, diventando sempre più veloce, ma come potete immaginare questa non è stata la chiave. Abbiamo fatto grandi passi avanti nell'uso delle istruzioni SSE. Abbiamo migliorato anche gli algoritmi, il che ha reso possibile l'uso delle nuove funzionalità dell'hardware: possiamo avere un numero illimitato di raggi nello stesso tempo. Stiamo utilizzando strutture di accelerazione come kd-tree e BSP-tree per migliorare la velocità, il che rende la realizzazione di un raggio più proporzionata.