2011-12-12 12 views
5

Ho cercato di trovare una tecnica di illuminazione globale adatta, preferibilmente basata su OpenGL o GPGPU, per illuminare una scena esterna che ha oggetti statici e sorgenti di luce dinamiche (è un modello di città). Non è necessario che sia molto dettagliato o accurato, ma dovrebbe essere piuttosto semplice e, se possibile, iterativo e raffinato (in modo da poter visualizzare i risultati intermedi).Illuminazione globale per la geometria statica

Le migliori corrispondenze che ho trovato su Internet sono Ray tracing, PRT (Precomputed Radiance Transfer) e Radiosity.

Il tracciamento del raggio sarà troppo lento per la mia applicazione. Il PRT sembra essere troppo complesso e ha un enorme passo di precomputazione, e la radiosity sembra troppo lenta e non sono sicuro che possa essere implementata multi-thread.

Qualcuno conosce una tecnica migliore o una soluzione alternativa ai suddetti problemi?

+1

Qualcosa di simile? http://www.vis.uni-stuttgart.de/~dachsbcn/download/sii.pdf – Damon

+0

Grazie per il link! Ma sembra orientato verso le caustiche e gli effetti speculari. Sono principalmente interessato all'illuminazione diffusa e all'interazione dell'oggetto (come in Radiosity). Immagino che l'hardware grafico non sia ancora in grado di leggere in tempo reale ... –

+0

Prova i volumi di propagazione della luce (google). È la tecnica utilizzata nel gioco Crysis. È piuttosto difficile da implementare però. Se la tua geometria è statica, potresti anche utilizzare il trasferimento radiante precompilato. –

risposta

1

Sì, questa domanda è vecchia, ma la gente potrebbe ancora inciampare su di essa.
E a proposito di "Voxel Cone Tracing"?
Unreal Engine 4 lo implementa e descrive anche l'algoritmo in una presentazione.
http://www.unrealengine.com/files/misc/The_Technology_Behind_the_Elemental_Demo_16x9_%282%29.pdf

+1

troverai un'implementazione di questo metodo qui: http://www.naixela.com/alex/ – Necrolis

+0

Da questo penso che manchi l'intero aspetto "semplice". Inoltre, questa tecnica è abbastanza computazionalmente costosa e si basa sulla comprensione avanzata della GPGPU. Avrete anche bisogno (se ricordo bene) di estensioni OpenCL attualmente supportate solo sull'hardware Nvidia ... piuttosto restrittive se me lo chiedete. –

+0

Woops. Hai ragione. Ho dimenticato l'aspetto "semplice" ... Ma ha detto che potrebbe essere basato su GPGPU. Ma siamo onesti, non c'è niente di semplice nell'illuminazione globale. – Tara

2

In termini di un approccio più realistico e usabile rispetto svoGI (tecnica voxel di Crassin), si potrebbe prendere in considerazione i volumi di irraggiamento anticipate, v'è un grande WebGL demo con sorgente completo disponibile here, la sua base intorno usando spherical harmonics.

Esistono anche tecniche precedenti come LPV, che è possibile controllare here, here e here.

Problemi correlati