Basics of global illumination/es

From Kraytracing Wiki

Jump to: navigation, search

GI (Iluminación Global) es un nombre general para un grupo de algoritmos usados en gráficos 3D que se supone para añadir una iluminación mas realista a las escenas 3D. Estos algoritmos no tienen en cuenta solo la luz que procede directamente de una fuente de luz (iluminación directa), sino también los casos en que los rayos de luz de la misma fuente son reflejados por otras superficies en la escena (iluminacion indirecta).

Las imágenes renderizadas usando algoritmos de iluminación global suelen ser más realistas que las imágenes renderisadas usando solo algoritmos de iluminación directa. Sin embargo, estas imágenes suponen cáculos más costosos y en consecuensia, más lentas de generar. Un enfoque commun es calcular la iluminación global de la escena, y almacenar esta información con la geometría, por ejemplo, la radiosidad. Estos datos almacenados pueden utilizarse luego para generar imagenes desde diferentes puntos de vista para crear paseos virtuales de una escena sin tener que volver a realizar costosos calculos de iluminación.

Radiosity, ray tracing, beam tracing, cone tracing, path tracing, metropolis light transport, ambient occlusion, custom essays, y photon mapping son todos ejemplos de algoritmos usados en iluminación global, algunos de los cuales pueden ser usados conjuntamente para obtener resultados rapidos, pero precisos.

Técnicas de Iluminación Global en Kray

Kray puede usar muchas de estas técnicas – Raytracing, Photon/Light mapping y Path tracing. Raytracing computa solo la iluminación directa. Con Photon mapping, Light mapping y Path tracing se calcula la iluminacion global completa de la escena.


Photon mapping

Photon mapping es una de las técnicas que ayudan a acelerar el cálculo de la GI drásticamente. Consiste en dos pasos: disparo de fotones y recolección final(Final Gathering). En el primer paso, un numero específico de paquetes de luz llamado fotones son disparados desde una fuente de luz y rebotados por la escena. Siempre que un fotón choque con una superficie, el punto de intersección, la direccion entrante, y la energía del fotón son almacenadas en una caché llamada mapa de fotones (photon map).

En Kray puedes ver los fotones usando la opción Photon estimate mode Global unfiltered.


Global unfiltered


El Mapeado de Fotones es sólo una aproximación de una luz en cualquier punto. Por lo tanto, necesitamos un paso más para conseguir resultados más precisos.

Final Gathering

El paso final en el renderizado que Kray hace es llamado Final Gathering (o FG).

Esta técnia calcula una iluminación más precisa en un punto de muestreo. Usa el mapeado de fotones que fué calculado en el paso anterior para acelerar el proceso. El cálculo de irradiación para cada punto en el espacio puede ser lento, por lo que se usa otra técnica llama irradiance caching para acelerar el proceso. Lo que hace irradiance caching es sólo calcular la irradiación en los puntos donde la luz es más probable que cambie - por ejemplo las esquinas, sitios de sombras, donde dos superficies están muy cerca una de la otra, etc.). Cuando la superficie es grande y plana, usa menos puntos para ahorrar tiempo. Kray encuentra estos puntos haciendo un barrido previo llamado prerender antes del render final.

Puedes visualizar dónde está Kray calculando FG seleccionando Photon mapping modo con cache irradiance y encender show samples en la pestaña FG.


También puedes apagar la irradiance caching en la pestaña principal deseleccionando el boton cache irradiance. Esto puede ser util en condiciones de iluminación complejas donde la cached irradiance da muchos errores (splotches) que no desaparecen ni aumentando el numero de rayos de FG.

Photon mapping e irradiance caching se pueden guardar en un archivo y reutilizarlo para otro fotograma. Así, en una animación solo tiene que calcular FG para aquellos puntos que no han sido calculado (aquellos que no ve la camara en fotogramas anteriores).


Enlaces para profundizar en el tema:

http://en.wikipedia.org/wiki/Photon_mappinghttp://web.cs.wpi.edu/~emmanuel/courses/cs563/write_ups/zackw/photon_mapping/PhotonMapping.html

Powered by MediaWiki