Últimos Comentarios

Newsflash

ya hemos creado la lista codepixel en googlegroups.com para los que quieran formar parte de la comunidad de la web.

 

 

Polls

Que API tiene más futuro?
 

Login Form






Lost Password?
No account yet? Register

Quién está online?

Syndicate

Inicio
Multidimensional Adaptive Sampling and Reconstruction for Ray Tracing PDF Print E-mail
Written by Javier Loureiro   
Tuesday, 20 May 2008

Voy a seguir leyendo los papers que se presentarán este verano en el SIGGRAPH 2008. Esta vez le toca a uno de raytracing: Multidimensional Adaptive Sampling and Reconstruction for Ray Tracing .

 Todo lo que es "multidimensional" siempre trata sobre muestras má alla de la pantalla (rebotes, rayos de sombra, etc). El sampleo adaptativo tradicional intenta buscar zonas que cambien mucho en la pantalla, y lanza más rayos ahí donde los cambios son grandes, y lanza menos donde los pixeles cambian poco. Es una técnica discutida, porque no funciona muy bien con motion blur y  efectos de lente como la profundidad de campo.

 Este paper trata sobre el sampleo "multidimensional", esto es, saliendo del espacio de pantalla. Si tenemos varios rayos para la cámara, varios para el primer rebote, varios para el segundo, y varios para las luces de area, el algoritmo trata de mandar más muestras en la zona que más cambia en la imagen.

 El algoritmo crea una estructura tipo kdtree para meter muestras en varias dimensiones (x,y, el tiempo, etc) y la rellenamos con una primera distribucion de muestras.

Una vez rellenado, se crea una cola con los nodos que contienen un error más grande. El error es la diferencia entre el valor actual de las muestras del nodo y la reconstrucción de las muestras filtradas. Por ejemplo, un filtro es la media de todos. El error total seria la suma para todas las muestras del valor de la muestra i menos la media de todas las muestras.

 Los nodos con más error total, dividimos el nodo (típìco split de un kdtree), metemos más muestras, y volvemos a calcular su error. Hacemos esto hasta llegar a un número definido de muestras.

 Una vez que tenemos esta estructura creada, tenemos una especie de funcion continua de valores para realizar cálculos. Podemos pedir el valor de cualquier punto dentro de nuestra escena, y usando los valores almacenadas, interpolarlos para tener un valor. La interpolaciónno es simplemente leer los puntos más cercanos e interpolarlos, ya que los valores en n dimensiones son "anisotrópicos". Por ejemplo, no podemos interpolar un valor porque en el tiempo puede ir cambiando su posición, y demás. Asi que usa una técnica común para anisotrópicos, que es calcular los gradientes de las muestras, que nos ayudarán a calcular mejor las muestras.

 Con esa información, podemos calcular mucho más facilmente la iluminación global en general, ya que para integrar la radiancia tenemos una estructura donde podemos buscar información de forma rápida. El paper muestra imágenes de ejemplo, y casos donde podemos encontrar ruido o saltarnos información importante.

 Creo que es una forma muy interesante de cachear el GI, y que con un repaso, podría aplicarse a la tarjeta para un precalculo de iluminación global.

 

 

 

Comentarios
AgregarnuevoBuscar
- winden - heaven 7     | 87.198.128.xxx | 2008-05-20 23:26:26
La archifamosa intro heaven 7 de exceed hacia esto mismo a la hora de decidir donde aplicar subsampling: en principio usaba un sample cada 4x4 pixels, pero si detectaba cambio del valor de sombra, forzaba a generar mas samples hasta llegar a 1 sample por pixel.
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el codigo anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
Last Updated ( Tuesday, 20 May 2008 )
 
< Prev   Next >

Lista de Correo

visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.

 

Visita la antigua página

Image