fbpx
Wikipedia

Mapeado de fotones

El concepto de Mapeado de fotones (en inglés Photon mapping), fue introducido por en junio de 1996. Él, al igual que los que se dedican a la informática gráfica, tuvo la necesidad de un algoritmo que fuera capaz de renderizar imágenes de geometría compleja con iluminación global; un algoritmo que fuera capaz de manejar cualquier tipo de geometría y de BRDF (Bidirectional reflectance distribution function).

Una bola de cristal con refracción de luz.
Mapeado de fotones

Mapeado de Fotones (Photon Mapping)

En aquella época, estaba de moda el cálculo de radiosidad basado en elementos finitos (irradiance maps).

Los métodos de radiosidad tienen problemas con los BRDF especulares y son demasiado costosos cuando la geometría se complica demasiado.

Aparecieron alternativas a los elementos finitos en forma de técnicas multipaso, illumination maps y las técnicas de ray tracing basadas enteramente en Monte Carlo.

La mejor alternativa sin duda fue la última de ellas, pero provocaba cierto ruido en la imagen debido a la varianza de los resultados. Eliminar este ruido presenta un sobrecoste demasiado grande.

El mapeado de fotones fue desarrollado por Jensen como una alternativa a las técnicas de trazado de rayos basadas enteramente en Monte Carlo. El fin era obtener las mismas ventajas pero con un método más eficiente que no sufriera complicaciones por el ruido.

Para ello parece correcto pensar que hay que usar el mismo algoritmo basado en el trazado de rayos y además hay que procurar un algoritmo eficiente de transporte de la luz en la escena ya que tanto las luces como el observador son parte primordial de la síntesis de imágenes. También queremos utilizar técnicas de Monte Carlo vistas anteriormente pero con la certidumbre de que la componente de radiación se mantiene suave a lo largo de grandes regiones para la mayoría de los modelos. Para estas regiones parece razonable pues, almacenar y reutilizar la información extraída sobre su iluminación. Y todo ello sin dividir las superficies en trozos finitos, queremos que nuestro modelo maneje cualquier tipo de objeto.

La primera idea para solucionar el problema es pues, la de desacoplar la representación de la iluminación de la geometría. Esto nos permite tanto manejar geometría arbitraria como modelos complejos.

La segunda idea es que la iluminación en la escena puede ser almacenada como puntos en una estructura de datos global, el mapa de fotones, en inglés photon map. Muchas alternativas a los puntos fueron consideradas pero todas fallaban en una de las tres condiciones: capacidad de representar cualquier tipo de iluminación, estar desacoplado frente a la geometría y ser compacto. Por eso los puntos son la manera más flexible posible de manejar superficies de cualquier tipo de BRDF. Estos puntos además de su posición almacenarán también información sobre la dirección de incidencia de la luz y otros factores que nos facilitarán los cálculos.

El mapa de fotones puede entenderse como una caché de caminos de luces en un trazado de caminos (path tracing) direccional y podría ser utilizado ciertamente para tal método. Pero también puede usarse en un método diferente de estimación de la iluminación basada en la estimación de densidad. Esta estimación de densidad tiene la ventaja que su error es de una frecuencia mucho más baja que el que se da en los tradicionales métodos de Monte Carlo.

El método de estimación de densidad es mucho más rápido que un trazador puro basado en Monte Carlo. Sin embargo pagamos el precio de utilizar una estimación de densidad y por tanto un método que no nos dará siempre un rendimiento correcto, y que siempre dependerá de que para que converja más a la solución correcta se deberán almacenar y utilizar cuantos más fotones mejor.

Usaremos el nombre 'Mapeado de fotones' para designar el algoritmo que genera, almacena y usa la iluminación como puntos, y el 'Mapa de fotones' como la estructura usada para procesar estos puntos. Así mismo,, el 'Trazado de fotones' será la técnica usada para generar los puntos que representan la iluminación en el modelo.

El método del mapeado de fotones es un método de dos pasos donde los pasos son:

  1. Trazado Fotónico (Photon Tracing), construir el mapa de fotones trazando fotones desde las luces y a través de la escena.
  2. Radiación estimada (Radiance Estimate), estimar la radiación producida en un punto de la escena mediante estimación de densidad.

Así el mapa de fotones será construido usando 'Trazado fotónico' donde los fotones son emitidos desde las luces y almacenados al interactuar con las superficies del modelo. Una vez construido el mapa de fotones lo utilizaremos para calcular la luz radiada.

Trazado Fotónico (Photon Tracing)

El trazado fotónico es el proceso de emitir fotones desde las fuentes de luz y trazarlos a través de la escena. Esta será la técnica usada para construir el mapa fotónico. Vamos a ver cómo los fotones son generados en las fuentes de luz y cómo podemos seguir su recorrido en la escena de forma eficiente. Siendo esto la base para construir un buen mapa de fotones.

Emisión Fotónica (Photon Emission)

Las luces pueden ser de muchos tipos y en este apartado veremos como emitir fotones de forma eficiente desde cada una de ellas ya que el mapeado fotónico admite cualquier tipo de luz.

Así como pasa en la realidad, un enorme número de fotones son emitidos desde cada fuente de luz. La potencia de la luz será dividida entre todos los fotones emitidos por igual, y por eso cada fotón transportará una fracción de la potencia de la fuente de luz inicial. Es importante remarcar aquí que la potencia de los fotones será proporcional al número de fotones emitidos y no al número de fotones almacenados en el mapa de fotones.

La emisión desde una luz puntual será aleatoria en todas las direcciones esféricas alrededor del punto de luz. La emisión en una luz direccional será aleatoria en posición pero con la dirección de la luz. Y la emisión desde luces con formas, por ejemplo esféricas y planares, aleatoria sobre su superficie.

Dispersión y Reflexión de Fotones (Photon Reflection and Scattering)

Cuando un fotón colisiona con un objeto, este puede ser con las mismas probabilidades reflejado, transmitido por refracción o absorbido. Que pase una cosa u otra se decide probabilísticamente basándonos en los parámetros del material de la superficie en colisión. La técnica para decidir el tipo de interacción se conoce como ruleta rusa.

El método de la ruleta rusa es una técnica estadística que nos servirá para desestimar fotones que no sean importantes a fin de concentrarnos sólo en los que si lo sean. También se usa para asegurarse de que los fotones almacenados en el mapa fotónico tengan aproximadamente la misma potencia de luz. Esto será necesario para una buena estimación de radiación.

La idea básica de la ruleta rusa es que podemos tomar muestras aleatorias para eliminar trabajo y aun así obtener un resultado correcto. Es por ello una de las técnicas estándar Monte Carlo. Con la ruleta rusa decidiremos si un fotón en colisión es reflejado o absorbido. Dado un material con reflectividad d, y un fotón que colisiona con él con potencia sigma:

if (random()<d) reflejar el fotón con potencia sigma else el fotón es absorbido 

La idea intuitiva que hay debajo de esto es que si lanzamos 1000 fotones contra una superficie con reflectividad 0.5, podemos bien reflejar los 1000 fotones con la mitad de potencia que tenían antes o reflejar solo 500 con la potencia intacta. La ruleta rusa nos seleccionará esos 500 fotones, reduciéndonos el cómputo requerido por el trazado fotónico.

Por tanto a partir de la colisión de un fotón y gracias a la probabilidad lanzaremos otros que le siguen en direcciones de reflexión, refracción o simplemente desecharemos el fotón porque es absorbido por el material. Sin embargo cada colisión de un fotón provoca que lo almacenemos en el mapa fotónico como veremos a continuación.

Almacenamiento Fotónico (Photon Storing)

Como hemos mencionado ya, los fotones son almacenados a medida que colisionan contra superficies difusas o más bien no especulares. La razón de esto es que almacenar fotones que colisionan contra superficies especulares o reflectantes, no nos aportan información pues la probabilidad de que un fotón incida por la dirección especular es muy pequeña o cero. Por tanto si queremos simular reflexiones lo mejor será simularlas mediante el rayotrazado, en inglés raytracing. Para todas las otras interacciones fotón-superficie, el mapa fotónico deberá tener información sobre ellas.

Es importante observar que los fotones representan la iluminación (flujo) que llega a las superficies. Esto es una optimización notable que nos da la llave para aproximar la iluminación reflectada en muchos puntos de la superficie.

Para cada interacción fotón-superficie, serán almacenados la posición del fotón, la potencia del mismo y la dirección incidente.

Dese el momento que queremos que nuestra estructura de mapa fotónico sea útil para el algoritmo del mapeado fotónico, esta deberá ser muy rápida en encontrar los fotones vecinos más cercanos en 3 dimensiones a una posición dada. Para ello Jensen se basó en la estructura que vamos a utiliza nosotros también, los Kd-Tree balanceados.

Kd-Tree balanceados

La complejidad por encontrar un fotón en un Kd-Tree balanceado es de O(log N), donde N es el número de fotones en el mapa de fotones.

La eficiencia para encontrar los fotones más cercanos a una posición dada es un punto crítico dentro del mapeado fotónico. Afortunadamente, la simplicidad de los Kd-Trees permite implementar un algoritmo sencillo y eficiente de búsqueda para tal fin. Este algoritmo será una extensión directa de los algoritmos de búsqueda binaria estándar.

Para encontrar los vecinos más cercanos en un Kd-Tree balanceado, empezaremos por la raíz y añadiremos fotones a la lista de resultados si estos están dentro de una cierta distancia. Para encontrar los n fotones más cercanos, la lista de resultados será ordenada como si el que está más lejos pudiera ser eliminado si otro fotón más cercano fuera encontrado. Y así sucederá iterativamente sobre el Kd-Tree hasta que encontremos los fotones más cercanos.

Para el algoritmo de búsqueda será necesario que un radio máximo inicial le sea definido con tal de limitar la búsqueda. Un buen radio de búsqueda permitirá al algoritmo realizar una búsqueda óptima reduciendo el número de fotones testeados.

Con el Kd-Tree y un algoritmo de búsqueda eficaz y rápido sobre él, obtendremos la lista de los n fotones más cercanos a una posición en 3d dada. Ello nos permitirá pasar a calcular la estimación de radiación sobre ese mismo punto de la forma que veremos a continuación.

Radiación Estimada (Radiance Estimate)

La información en el mapa fotónico puede ser usada para calcular la radiación que sale desde una superficie en una dirección dada. Desde el momento que la dirección de llegada es almacenada con cada fotón, podremos integrar la información con cualquier BRDF.

Para calcular la radiación  , que sale de un punto de intersección   en una superficie con BRDF  , buscaremos primero los   fotones con menor distancia a  . Basándonos en la suposición de que cada fotón   representa el flujo  , que llega a   desde la dirección  , podremos integrar toda esta información dentro de la ecuación del rendering como sigue:

 

Aquí se usa una aproximación a   donde una esfera centrada en   es expandida hasta que contenga a   fotones y tenga radio  . Luego   será aproximada como  . El resultado es una ecuación que nos permite computar una estimación sobre la radiación reflejada en cualquier posición de cualquier superficie usando el mapa de fotones.

 

Esta será la base de la técnica del mapeado fotónico y aunque tanto Jensen como otros han hecho pequeñas aportaciones para mejorar el resultado en ciertos casos especiales, la base del método sigue intacta. Por tanto, el mapeado fotónico es una forma sencilla, rápida y ajustable de calcular cual es la parte de iluminación global que recae sobre una situación dada en 3 dimensiones.

Y aunque esto también nos lo podía solucionar la técnica de la radiosidad, el mapeado fotónico funcionará con cualquier tipo de material y de fuente de luz, y en un tiempo mucho mejor que en la anterior técnica.

Véase también

  •   Datos: Q1659515

mapeado, fotones, concepto, inglés, photon, mapping, introducido, henrik, wann, jensen, junio, 1996, igual, dedican, informática, gráfica, tuvo, necesidad, algoritmo, fuera, capaz, renderizar, imágenes, geometría, compleja, iluminación, global, algoritmo, fuer. El concepto de Mapeado de fotones en ingles Photon mapping fue introducido por Henrik Wann Jensen en junio de 1996 El al igual que los que se dedican a la informatica grafica tuvo la necesidad de un algoritmo que fuera capaz de renderizar imagenes de geometria compleja con iluminacion global un algoritmo que fuera capaz de manejar cualquier tipo de geometria y de BRDF Bidirectional reflectance distribution function Una bola de cristal con refraccion de luz Mapeado de fotones Indice 1 Mapeado de Fotones Photon Mapping 2 Trazado Fotonico Photon Tracing 3 Emision Fotonica Photon Emission 4 Dispersion y Reflexion de Fotones Photon Reflection and Scattering 5 Almacenamiento Fotonico Photon Storing 5 1 Kd Tree balanceados 6 Radiacion Estimada Radiance Estimate 7 Vease tambienMapeado de Fotones Photon Mapping EditarEn aquella epoca estaba de moda el calculo de radiosidad basado en elementos finitos irradiance maps Los metodos de radiosidad tienen problemas con los BRDF especulares y son demasiado costosos cuando la geometria se complica demasiado Aparecieron alternativas a los elementos finitos en forma de tecnicas multipaso illumination maps y las tecnicas de ray tracing basadas enteramente en Monte Carlo La mejor alternativa sin duda fue la ultima de ellas pero provocaba cierto ruido en la imagen debido a la varianza de los resultados Eliminar este ruido presenta un sobrecoste demasiado grande El mapeado de fotones fue desarrollado por Jensen como una alternativa a las tecnicas de trazado de rayos basadas enteramente en Monte Carlo El fin era obtener las mismas ventajas pero con un metodo mas eficiente que no sufriera complicaciones por el ruido Para ello parece correcto pensar que hay que usar el mismo algoritmo basado en el trazado de rayos y ademas hay que procurar un algoritmo eficiente de transporte de la luz en la escena ya que tanto las luces como el observador son parte primordial de la sintesis de imagenes Tambien queremos utilizar tecnicas de Monte Carlo vistas anteriormente pero con la certidumbre de que la componente de radiacion se mantiene suave a lo largo de grandes regiones para la mayoria de los modelos Para estas regiones parece razonable pues almacenar y reutilizar la informacion extraida sobre su iluminacion Y todo ello sin dividir las superficies en trozos finitos queremos que nuestro modelo maneje cualquier tipo de objeto La primera idea para solucionar el problema es pues la de desacoplar la representacion de la iluminacion de la geometria Esto nos permite tanto manejar geometria arbitraria como modelos complejos La segunda idea es que la iluminacion en la escena puede ser almacenada como puntos en una estructura de datos global el mapa de fotones en ingles photon map Muchas alternativas a los puntos fueron consideradas pero todas fallaban en una de las tres condiciones capacidad de representar cualquier tipo de iluminacion estar desacoplado frente a la geometria y ser compacto Por eso los puntos son la manera mas flexible posible de manejar superficies de cualquier tipo de BRDF Estos puntos ademas de su posicion almacenaran tambien informacion sobre la direccion de incidencia de la luz y otros factores que nos facilitaran los calculos El mapa de fotones puede entenderse como una cache de caminos de luces en un trazado de caminos path tracing direccional y podria ser utilizado ciertamente para tal metodo Pero tambien puede usarse en un metodo diferente de estimacion de la iluminacion basada en la estimacion de densidad Esta estimacion de densidad tiene la ventaja que su error es de una frecuencia mucho mas baja que el que se da en los tradicionales metodos de Monte Carlo El metodo de estimacion de densidad es mucho mas rapido que un trazador puro basado en Monte Carlo Sin embargo pagamos el precio de utilizar una estimacion de densidad y por tanto un metodo que no nos dara siempre un rendimiento correcto y que siempre dependera de que para que converja mas a la solucion correcta se deberan almacenar y utilizar cuantos mas fotones mejor Usaremos el nombre Mapeado de fotones para designar el algoritmo que genera almacena y usa la iluminacion como puntos y el Mapa de fotones como la estructura usada para procesar estos puntos Asi mismo el Trazado de fotones sera la tecnica usada para generar los puntos que representan la iluminacion en el modelo El metodo del mapeado de fotones es un metodo de dos pasos donde los pasos son Trazado Fotonico Photon Tracing construir el mapa de fotones trazando fotones desde las luces y a traves de la escena Radiacion estimada Radiance Estimate estimar la radiacion producida en un punto de la escena mediante estimacion de densidad Asi el mapa de fotones sera construido usando Trazado fotonico donde los fotones son emitidos desde las luces y almacenados al interactuar con las superficies del modelo Una vez construido el mapa de fotones lo utilizaremos para calcular la luz radiada Trazado Fotonico Photon Tracing EditarEl trazado fotonico es el proceso de emitir fotones desde las fuentes de luz y trazarlos a traves de la escena Esta sera la tecnica usada para construir el mapa fotonico Vamos a ver como los fotones son generados en las fuentes de luz y como podemos seguir su recorrido en la escena de forma eficiente Siendo esto la base para construir un buen mapa de fotones Emision Fotonica Photon Emission EditarLas luces pueden ser de muchos tipos y en este apartado veremos como emitir fotones de forma eficiente desde cada una de ellas ya que el mapeado fotonico admite cualquier tipo de luz Asi como pasa en la realidad un enorme numero de fotones son emitidos desde cada fuente de luz La potencia de la luz sera dividida entre todos los fotones emitidos por igual y por eso cada foton transportara una fraccion de la potencia de la fuente de luz inicial Es importante remarcar aqui que la potencia de los fotones sera proporcional al numero de fotones emitidos y no al numero de fotones almacenados en el mapa de fotones La emision desde una luz puntual sera aleatoria en todas las direcciones esfericas alrededor del punto de luz La emision en una luz direccional sera aleatoria en posicion pero con la direccion de la luz Y la emision desde luces con formas por ejemplo esfericas y planares aleatoria sobre su superficie Dispersion y Reflexion de Fotones Photon Reflection and Scattering EditarCuando un foton colisiona con un objeto este puede ser con las mismas probabilidades reflejado transmitido por refraccion o absorbido Que pase una cosa u otra se decide probabilisticamente basandonos en los parametros del material de la superficie en colision La tecnica para decidir el tipo de interaccion se conoce como ruleta rusa El metodo de la ruleta rusa es una tecnica estadistica que nos servira para desestimar fotones que no sean importantes a fin de concentrarnos solo en los que si lo sean Tambien se usa para asegurarse de que los fotones almacenados en el mapa fotonico tengan aproximadamente la misma potencia de luz Esto sera necesario para una buena estimacion de radiacion La idea basica de la ruleta rusa es que podemos tomar muestras aleatorias para eliminar trabajo y aun asi obtener un resultado correcto Es por ello una de las tecnicas estandar Monte Carlo Con la ruleta rusa decidiremos si un foton en colision es reflejado o absorbido Dado un material con reflectividad d y un foton que colisiona con el con potencia sigma if random lt d reflejar el foton con potencia sigma else el foton es absorbido La idea intuitiva que hay debajo de esto es que si lanzamos 1000 fotones contra una superficie con reflectividad 0 5 podemos bien reflejar los 1000 fotones con la mitad de potencia que tenian antes o reflejar solo 500 con la potencia intacta La ruleta rusa nos seleccionara esos 500 fotones reduciendonos el computo requerido por el trazado fotonico Por tanto a partir de la colision de un foton y gracias a la probabilidad lanzaremos otros que le siguen en direcciones de reflexion refraccion o simplemente desecharemos el foton porque es absorbido por el material Sin embargo cada colision de un foton provoca que lo almacenemos en el mapa fotonico como veremos a continuacion Almacenamiento Fotonico Photon Storing EditarComo hemos mencionado ya los fotones son almacenados a medida que colisionan contra superficies difusas o mas bien no especulares La razon de esto es que almacenar fotones que colisionan contra superficies especulares o reflectantes no nos aportan informacion pues la probabilidad de que un foton incida por la direccion especular es muy pequena o cero Por tanto si queremos simular reflexiones lo mejor sera simularlas mediante el rayotrazado en ingles raytracing Para todas las otras interacciones foton superficie el mapa fotonico debera tener informacion sobre ellas Es importante observar que los fotones representan la iluminacion flujo que llega a las superficies Esto es una optimizacion notable que nos da la llave para aproximar la iluminacion reflectada en muchos puntos de la superficie Para cada interaccion foton superficie seran almacenados la posicion del foton la potencia del mismo y la direccion incidente Dese el momento que queremos que nuestra estructura de mapa fotonico sea util para el algoritmo del mapeado fotonico esta debera ser muy rapida en encontrar los fotones vecinos mas cercanos en 3 dimensiones a una posicion dada Para ello Jensen se baso en la estructura que vamos a utiliza nosotros tambien los Kd Tree balanceados Kd Tree balanceados Editar La complejidad por encontrar un foton en un Kd Tree balanceado es de O log N donde N es el numero de fotones en el mapa de fotones La eficiencia para encontrar los fotones mas cercanos a una posicion dada es un punto critico dentro del mapeado fotonico Afortunadamente la simplicidad de los Kd Trees permite implementar un algoritmo sencillo y eficiente de busqueda para tal fin Este algoritmo sera una extension directa de los algoritmos de busqueda binaria estandar Para encontrar los vecinos mas cercanos en un Kd Tree balanceado empezaremos por la raiz y anadiremos fotones a la lista de resultados si estos estan dentro de una cierta distancia Para encontrar los n fotones mas cercanos la lista de resultados sera ordenada como si el que esta mas lejos pudiera ser eliminado si otro foton mas cercano fuera encontrado Y asi sucedera iterativamente sobre el Kd Tree hasta que encontremos los fotones mas cercanos Para el algoritmo de busqueda sera necesario que un radio maximo inicial le sea definido con tal de limitar la busqueda Un buen radio de busqueda permitira al algoritmo realizar una busqueda optima reduciendo el numero de fotones testeados Con el Kd Tree y un algoritmo de busqueda eficaz y rapido sobre el obtendremos la lista de los n fotones mas cercanos a una posicion en 3d dada Ello nos permitira pasar a calcular la estimacion de radiacion sobre ese mismo punto de la forma que veremos a continuacion Radiacion Estimada Radiance Estimate EditarLa informacion en el mapa fotonico puede ser usada para calcular la radiacion que sale desde una superficie en una direccion dada Desde el momento que la direccion de llegada es almacenada con cada foton podremos integrar la informacion con cualquier BRDF Para calcular la radiacion L r displaystyle L r que sale de un punto de interseccion x displaystyle x en una superficie con BRDF f r displaystyle f r buscaremos primero los N displaystyle N fotones con menor distancia a x displaystyle x Basandonos en la suposicion de que cada foton p displaystyle p representa el flujo D F p displaystyle Delta Phi p que llega a x displaystyle x desde la direccion PS i p displaystyle Psi i p podremos integrar toda esta informacion dentro de la ecuacion del rendering como sigue L r x PS r W f r x PS r PS i d 2 F i x PS i d A d w i d w i p 1 N f r x PS r PS i p D F p x PS i p P r 2 displaystyle L r x Psi r int Omega f r x Psi r Psi i frac d 2 Phi i x Psi i dA dw i dw i approx sum p 1 N f r x Psi r Psi i p frac Delta Phi p x Psi i p Pi r 2 Aqui se usa una aproximacion a D A displaystyle Delta A donde una esfera centrada en x displaystyle x es expandida hasta que contenga a N displaystyle N fotones y tenga radio r displaystyle r Luego D A displaystyle Delta A sera aproximada como P r 2 displaystyle Pi r 2 El resultado es una ecuacion que nos permite computar una estimacion sobre la radiacion reflejada en cualquier posicion de cualquier superficie usando el mapa de fotones L r x w 1 P r 2 p 1 N f r x w p w D F p x w p displaystyle L r x vec w approx frac 1 Pi r 2 sum p 1 N f r x vec w p vec w Delta Phi p x vec w p Esta sera la base de la tecnica del mapeado fotonico y aunque tanto Jensen como otros han hecho pequenas aportaciones para mejorar el resultado en ciertos casos especiales la base del metodo sigue intacta Por tanto el mapeado fotonico es una forma sencilla rapida y ajustable de calcular cual es la parte de iluminacion global que recae sobre una situacion dada en 3 dimensiones Y aunque esto tambien nos lo podia solucionar la tecnica de la radiosidad el mapeado fotonico funcionara con cualquier tipo de material y de fuente de luz y en un tiempo mucho mejor que en la anterior tecnica Vease tambien EditarRealistic Image Synthesis Using Photon Mapping Mapeado de texturas Mapeado normal Mapeado topologico Mapeado por paralaje Mapeado por desplazamiento Mapeado de texturas Datos Q1659515Obtenido de https es wikipedia org w index php title Mapeado de fotones amp oldid 133358462, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos