Per richiedere la registrazione usate il form integrato e scrivete una breve presentazione ad
Indirizzo e-mail protetto dal bots spam , deve abilitare Javascript per vederlo
(0)
Ci sono varie tecniche che consentono di limitare il numero dei raggi come le Irradiance/Radiance Cache, l'Importance Sampling, Multiple-Importance Sampling, Metropolis Sampling, Light-cuts etc... Certo la complessita' non diventa costante, pero' riesci ad avercela sublineare nel numero di luci.
In un engine basato su raycasting basta lanciare piu' raggi usando il campionamento statistico e ottieni ombre soft, riflessioni glossy, global illumination. Pixar ha una soluzione ibrida in Photorealistic Renderman, c'e' un engine di raycasting che e' stato utilizzato in "Cars" per le autoriflessioni delle automobili.
SSAO/SSGI sono trucchi che falliscono appena hai un secondo rimbalzo e/o occlusioni non visibili nel depth buffer. Per simulare bene il trasporto dei fotoni ti servono almeno 4-5 rimbalzi. Queste soluzioni vanno bene per ora ma non troppo. Una soluzione ibrida resta la cosa piu' auspicabile, rasterizzazione (o micropoligoni) per il first hit, e se hai bisogno di lanciare dei raggi, perche' devi campionare l'ambiente attorno, li lanci.
Spostando la conversazione dalla rasterizzazione al raytracing, ho provato Optix giocandoci un po'.
Ho usato una Quadro non super fantastica (64 core CUDA), però le performance non sono eccezionali, comparabili con il motore di rendering che abbiamo sviluppato all'università di warwick che gira in tempo reale su un Intel 8 core usando BVH.
Il lato positivo è sicuramente la flessibilità di Optix, ci si deve preoccupare solo di definire le luci, del trasporto dei fotoni, come i raggi vengono creati, i materiali, etc... Mentre il core di ray-casting (costruzione, aggiornamento, e attraversamento dei vari alberi, BVH e KD-tree) è programmato nella libreria.
Probabilmente ci vorra una generazione o due di schede video per poter utilizzare main stream questi sistemi flessibili (sia Reyes che Raytracing) visto che le performance non sono ancora ottimali. Lo stesso è successo con le prime GPU che facevano shader, potevi fare il per pixel lighting in hardware per alcuni oggetti o piccole demo, ma non scalava molto per l'intero gioco.
Concordo che l'uso di editor tradizionali sono troppo gimmicky per avere feedback. E parlo da una prospettiva dove non c'e' gameplay ma semplice real-time GI per visualizzazioni architettoniche quando si cambiano materiali od oggetti nella scena. In questo caso il problema e' che gli editor Rhino3D/Max/Maya non salvano la geometria direttamente in alberi per il casting di raggi. Quindi l'efficienza viene a mancare con abbasamento drastico delle performance.
John Carmack e' famoso per essere contro i brevetti software ed a favore dell'open source. Ogni nuova IdTech rilascia la versione precedente open source. A me pare una cosa notevole, non ci sono molti giochi commerciali che hanno avuto successo di cui e' disponibile il sorgente.