410 likes | 641 Views
Ray-Tracing. Cristian Caroli José Dunia. Motivacion. Motivacion. Agrega realismo a las imágenes. Conceptos.
E N D
Ray-Tracing Cristian Caroli José Dunia
Motivacion • Agrega realismo a las imágenes.
Conceptos • Iluminación Global: es un concepto general usado en la computación gráfica aplicado a algoritmos que simulan una iluminación más realista en una escena. Dichos algoritmos consideran la luz no sólo en los puntos de emisión y choque sino que consideran el comportamiento de los rayos de luz tomando en cuenta el resto de la escena • Refracción: es el cambio de dirección que experimenta una onda al pasar de un medio material a otro. Sólo se produce si la onda incide oblicuamente sobre la superficie de separación de los dos medios y si éstos tienen índices de refracción distintos • Reflexión: es el cambio de dirección de un rayo o una onda que ocurre en la superficie de separación entre dos medios, de tal forma que regresa al medio inicial • Rasterización es el proceso por el cual una imagen descrita en un formato gráfico vectorial se convierte en un conjunto de pixeles o puntos para ser desplegados en un medio de salida digital, como una pantalla de computadora, una impresora electrónica o una imagen de mapa de bits(bitmap)
Ray Tracing: Algoritmo (Whitted) • Integra en un sólo modelo: • Reflexión • Refracción • Sombras • Superficies escondidas • Es un algoritmo recursivo • Se trazan rayos desde el observador hacia los objetos y luego de éstos hacia las fuentes luminosas (“backwards”)
Ray Tracing: Algoritmo (Whitted) El rayo es lanzado y comienza a panear la escena
Ray Tracing: Algoritmo (Whitted) A veces impacta un objeto
Ray Tracing: Algoritmo (Whitted) Si golpea un objeto se castea un rayo secundario llamado sombra disparado contra la fuente de luz
Ray Tracing: Algoritmo (Whitted) Si la sombra choca contra otro objeto antes de golpear la fuente de luz entonces la primera interseccion está en la sombra del segundo objeto
Ray Tracing: Algoritmo (Whitted) La primera intersección en la sombra del segundo objeto
Ray Tracing: Algoritmo (Whitted) A parte cuando un rayo golpea un objeto, una reflexión es generada que se compara contra cada objeto en la escena
Algoritmo Si el reflejo golpea un objeto entonces el modelo de iluminación local es aplicado al punto de intersección y utilizado en el primer punto de interseccíón
Ray Tracing: Algoritmo (Whitted) Si el objeto intercectado es transparente, entonces el rayo transmitodo generado es chequeado contra todos los objetos en la escenag
Ray Tracing: Algoritmo (Whitted) De la misma manera si el rayo transmitido choca un objeto entonces el modelo de iluminación local es aplicado de vuelta al primer punto de intersección
Ray Tracing: Algoritmo (Whitted) Los rayos reflejados pueden reflejar otros rayos que generen otros rayos, etc.
Desventajas • La iluminación indirecta es muy costosa de calcular. • Es dependiente de la vista, cuando el observador cambia de lugar se deben rehacer todos los calculos. • En general, el principal problema es de eficiencia
Implementacioneseficientes • Adaptar la profundidad (pruning del arbol de recursi[on), por ejemplo dependiendo del material, etc. • Volumenes acotados • Acelerar el cálculo del primer rayo que choca con un objeto (usando z-buffer o algun otro algoritmo de calculo de superficies escondidas) • Existen otras tecnicas que sacrifican la eficacia del ray tracing por eficiencia
Otrastecnicasusadas • Coherencia de rayo • Coherencia de espacio • Particionamiento binario del espacio • Octrees
Ray Tracing Bidireccional • Hasta ahora hemos dicho que los rayos son lanzados desde el observador. Esto se conoce como “backward”raytracing. • Existe el “forward”ray tracing, es el mismo principio con la diferencia de que los rayos son lanzados desde las fuentes de luz hacia el observador. • Los resultados obtenidos son similares. • Lo que se usa para lograr mas realismo es una combinación de ambos métodos.
Metodo de Monte Carlo El método de Monte Carlo es un método no determinístico o estadístico numérico usado para aproximar expresiones matemáticas complejas y costosas de evaluar con exactitud. ¿Qué expresión matemática necesitamos evaluar con exactitud? Ecuación de generación:
Ecuación de Iluminación Global (usada en Monte Carlo) • En realidad para el cálculo de la iluminación global Monte Carlo usa otra formula basada en la radiancia (se deriva de la formula anterior). • Donde fr se refiere a una función de distribución (mas adelante la vamos a ver como BRDF). V vale 1 o 0 dependiendo si xk-1 es visible o no desde xk. G se refiere al factor de forma. • La radiancia es una medida que describe la cantidad de luz que pasa a través o es emitida desde un área en particular y que se corresponde con un determinado ángulo en una dirección específica
Metodo de Monte Carlo • Para evaluar la integral El método de Monte-Carlo convierte este problema en un valor esperado equivalente: Donde p(x) es una función de probabilidad arbitraria. Por otro lado el valor esperado se puede calcular a partir de M muestras generadas arbitrariamente a partir de la funcion de probabilidad p.
RayTracing de Monte Carlo (pathtracing) • Los rayos se trazan siguiendo una distribución de probabilidad (al momento de intersectar una superficie). • Luego el valor de esos rayos, para un punto, se promedia • Tanto las superficies especulares como las difusas reflejan los rayos. • Los rayos pueden ser lanzados desde el observador o desde las fuentes de luz (lo mejor es hacer los dos). • Tambien existe el metodo de Quasi Montecarlo (el muestreo no es completamente al azar)
BRDF :Bidirectionalreflectancedistributionfunction • BRDF es una funcion de distribucion de probabilidad que describe la probabilidad de que un rayo de luz de entrada se disperse en una dirección de salida (esta es la función de distribución que corresponde con el término fr en la ecuación de generación). • Esta es la distribución de probabilidad mas usadas en el ray tracing Monte Carlo w ’ x
Problemas de montecarlo • Puede introducir ruido en la imagen renderizada. • El error introducido en la imagen tiene que ver con la desviación estándar, la cual es proporcional a: • Por lo que podemos decir que a mayor número de muestras menor es el error. • (obviamente esto influye en la eficiencia) • También esto se resuelve aplicando filtros sobre la imagen renderizada.
¿Por qué usar monte carlo? • Se pueden lograr imágenes muy reales. • Se calcula la iluminación indirecta. • Se puede lograr una gran variedad de efectos especiales (depth of field, motion blur, dispersión, etc) sólo cambiando el tipo de muestra. Ray Tracing VS. Monte Carlo Path Tracing
Estado del Arte El raytracingsiempre ha sido un métodomuyutilizadoparagenerarcontenidoestático, sin embargo los gráficosinteractivossiemprehancedido un segundoplano. Con los nuevosavances en hardware el raytracinginteractivoestá al alcance, sin embargo el realtimeofrecenuevosretosque no marcan un hito en la generación de contenidoestático. Motion blur, depth of field y demásefectosinteractivos son nuevosefectosquellevan el raytracing a un nivel de realismo mayor peroindudablementerequierenunainmensacantidad de cálculos. Este cuello de botella ha llevado a los investigadores a buscarnuevasoptimizaciones, estructuras de datos y algoritmosparamejorar el rendimiento del raytracing y poderaprovechar la tecnologia actual parahacer el raytracing un estandar en la generación de gráficosdinámicos.
Estado del Arte NVIDIA: CUDA (Compute UnifiedDeviceArchitecture) Es unainterfaz de desarrolloparaque el programadorpuedateneracceso al menejo de memoria y procesamiento del GPU
Software que lo implementa • 3Delight • Anim8or • Aqsis • ASAP • Blender • Brazil r/s • BRL-CAD • Bryce • Cinema 4D • IndigoRenderer • Kerkythea • LuxRender • Mental ray • Picogen • POV-Ray • V-Ray • YafRay
Uso en los Videojuegos Proyecto Quake 4: Raytraced
UsoCinematográfico Detective ray tracy