Il termine "ray tracing distribuito" è stato originariamente coniato da Robert Cook in questo articolo del 1984. La sua osservazione è stata che, al fine di eseguire l'antialiasing in un ray-tracer, il renderer deve eseguire il sovracampionamento spaziale, ovvero per prelevare più campioni (ovvero scattare più raggi) rispetto al numero di pixel nell'immagine e combinare i risultati . Un modo per farlo è quello di sparare più raggi all'interno di un pixel e fare la media dei loro valori di colore, ad esempio. Tuttavia, se il renderer sta già tracciando più raggi per pixel in ogni caso per ottenere un'immagine anti-alias, questi raggi possono anche essere "distribuiti" tra dimensioni aggiuntive rispetto alla sola posizione dei pixel per campionare effetti che non possono essere catturati da un singolo raggio . L'importante è che ciò avvenga senza alcun costo aggiuntivo oltre al sovracampionamento spaziale, dal momento che stai già rintracciando quei raggi aggiuntivi comunque. Per esempio,
Il ray tracing Monte Carlo è un termine leggermente ambiguo. Nella maggior parte dei casi, si riferisce a tecniche di rendering che risolvono l' equazione di rendering, introdotto da Jim Kajiya nel 1986, usando l'integrazione di Monte Carlo. Praticamente tutte le moderne tecniche di rendering che risolvono l'equazione di rendering, come traccia traccia, traccia traccia bidirezionale, mappatura fotonica progressiva e VCM, possono essere classificate come tecniche di tracciatura dei raggi Monte Carlo. L'idea dell'integrazione di Monte Carlo è che possiamo calcolare l'integrale di qualsiasi funzione scegliendo casualmente i punti nel dominio di integrazione e calcolando la media del valore della funzione in questi punti. Ad un livello elevato, nel ray tracing Monte Carlo possiamo usare questa tecnica per integrare la quantità di luce che arriva alla telecamera in un pixel al fine di calcolare il valore del pixel. Ad esempio, un tracciatore di tracciati lo fa selezionando in modo casuale un punto all'interno del pixel per sparare al primo raggio, quindi continua a scegliere in modo casuale una direzione per continuare sulla superficie su cui atterra, e così via. Potremmo anche scegliere casualmente una posizione sull'asse del tempo se vogliamo fare motion blur, o scegliere casualmente un punto sull'apertura se vogliamo fare profondità di campo, o ...
Se questo suona molto simile al ray tracing distribuito, è perché lo è! Possiamo pensare al ray tracing distribuito come una descrizione molto informale di un algoritmo Monte Carlo che campiona determinati effetti come le ombre morbide. Il documento di Cook manca del quadro matematico per ragionare davvero su di esso in modo appropriato, ma potresti certamente implementare il ray tracing distribuito usando un semplice renderer Monte Carlo. Vale la pena notare che il ray tracing distribuito non ha alcuna descrizione degli effetti di illuminazione globale, che sono naturalmente modellati nell'equazione di rendering (va menzionato che il documento di Kajiya è stato pubblicato due anni dopo quello di Cook).
È possibile pensare al ray tracing Monte Carlo come a una versione più generale del ray tracing distribuito. Il ray tracing Monte Carlo contiene un quadro matematico generale che consente di gestire praticamente qualsiasi effetto, compresi quelli citati nel documento di ray tracing distribuito.
In questi giorni, "ray tracing distribuito" non è in realtà un termine utilizzato per fare riferimento all'algoritmo originale. Più spesso lo sentirai insieme agli "effetti di distribuzione", che sono semplicemente effetti come motion blur, profondità di campo o ombre morbide che non possono essere gestiti con un raytracer a campione singolo.