2011-12-12 11 views
5

He intentado encontrar una técnica de iluminación global adecuada, preferiblemente basada en OpenGL o GPGPU, para iluminar una escena al aire libre que tiene objetos estáticos y fuentes de luz dinámicas (es un modelo de ciudad). No necesita ser muy detallado o preciso, pero debería ser bastante simple y, si es posible, iterativo y refinado (para que pueda mostrar los resultados intermedios).Iluminación global para geometría estática

Las mejores coincidencias que encontré en Internet son el trazado de Rayos, la Transferencia de Radiación Precalculada (PRT) y la Radiosidad.

El trazado de rayos será demasiado lento para mi aplicación. PRT parece ser demasiado complejo y tiene un gran paso de precomputación, y la radiosidad parece demasiado lenta y no estoy seguro de si se puede implementar en múltiples hilos.

¿Alguien conoce una mejor técnica o una solución alternativa a los problemas anteriores?

+1

¿Algo como esto? http://www.vis.uni-stuttgart.de/~dachsbcn/download/sii.pdf – Damon

+0

¡Gracias por el enlace! Pero parece estar orientado hacia cáusticos y efectos especulares. Estoy interesado principalmente en la iluminación difusa y la interacción de objetos (como en Radiosity). Supongo que el hardware de gráficos aún no tiene capacidad de GI en tiempo real ... –

+0

Pruebe los volúmenes de propagación de luz (google). Es la técnica utilizada en el juego Crysis. Sin embargo, es bastante difícil de implementar. Si su geometría es estática, tal vez también podría usar una transferencia de radiancia precalculada. –

Respuesta

1

Sí, esta pregunta es antigua, pero las personas aún pueden tropezar con ella.
¿Qué hay de "Voxel Cone Tracing"?
Unreal Engine 4 lo implementa y también describieron el algoritmo en una presentación.
http://www.unrealengine.com/files/misc/The_Technology_Behind_the_Elemental_Demo_16x9_%282%29.pdf

+1

encontrará una implementación de ese método aquí: http://www.naixela.com/alex/ – Necrolis

+0

Me falta todo el aspecto "simple" de esto. Además, esta técnica es bastante computacionalmente cara y se basa en la comprensión avanzada de GPGPU. También necesitarás (si no recuerdo mal) las extensiones de OpenCL actualmente compatibles solo con el hardware de Nvidia ... bastante restrictivas si me preguntas. –

+0

Woops. Tienes razón. Me olvidé del aspecto "simple" ... Pero dijo que podría basarse en GPGPU. Pero seamos honestos, no hay nada simple acerca de la iluminación global. – Tara

2

En términos de un enfoque más realista y útil que svoGI (técnica de voxel de Crassin), es posible considerar los volúmenes de irradiación diferidos, hay una gran demostración WebGL con código fuente completo disponible here, su basada en torno al uso spherical harmonics.

También hay técnicas más antiguas como LPV, que puede consultar here, here y here.

Cuestiones relacionadas