Story Transcript
Iluminación Global
Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina
Simulación de la Apariencia – Iluminación Global
Iluminación Global Consiste en evaluar toda la luz que ingresa en una escena, calculando donde y cuanto de ella es absorbido, reflejado, o refractado y todos aquellos lugares donde ella eventualmente termina.
Existen tres enfoques básicos: Raytracing, Radiosity, Image Based Rendering.
El primer enfoque: Ray-tracing. Turner-Whitted, 1980.
Rio 14
−
es moderadamente costoso de calcular.
−
es “embarrassingly parallel”— se pueden utilizar capacidades de estaciones de trabajo y paralelismo..
−
Modela una ecuación de iluminación simple (luz ambiental, difusa y especular) para iluminación directa pero solamente considera la reflexión especular para la iluminación indirecta (global).
- Roberto Guerrero @ 2014
2
Simulación de la Apariencia – Iluminación Global
Revisión sobre Iluminación Óptica Geométrica
Rio 14
Las teorías modernas consideran a la luz como onda y como partícula.
Se puede considerar una versión simplificada y combinada del concepto – la versión de la Óptica Geométrica.
Algunas reglas de la óptica geométrica: La luz es un flujo de fotones con longitud de onda que denominaremos “rayos de luz”. Los rayos de luz viajan en línea recta en el espacio. Los rayos de luz no interfieren entre ellos cuando se cruzan. Los rayos de luz obedecen a las leyes de reflexión y refracción. Los rayos de luz viajan desde las fuentes de luz hacia el ojo, y la física es invariante en el sentido inverso (reciprocidad).
- Roberto Guerrero @ 2014
3
Simulación de la Apariencia – Iluminación Global
Revisión sobre Iluminación Conceptos clave
Los modelos de iluminación basados en la física y la iluminación Global describen el transporte de energía y radiación. - sujeto a las propiedades de la luz y los materiales. - sujeto a la geometría de la luz, de los objetos y del observador.
Para cada superficie existe una distribución que caracteriza su absorción y reflexión en cada longitud de onda. - y algunas otras propiedades.....
Todos los modelos de iluminación son por definición aproximados. - basados en el muestreo de la geometría, la distribución de la luz y las propiedades de los materiales y algunos trucos de rendering.
Rio 14
Actualmente existen dos modelos que son utilizados comunmente uno orientado a un pipeline de hardware y otro hacia un trazado de rayos por software.
- Roberto Guerrero @ 2014
4
Simulación de la Apariencia – Iluminación Global
Revisión sobre Iluminación Modelos de Iluminación
Pipeline de Hardware – rápido de computar y simple de implementar. - utiliza el algoritmo del Z-buffer para la determinación de las superficies visibles. - sólo iluminación local, sin sombreados. - luz ambiental como un truco para aproximar la iluminación global. - reflexión difusa Lambertiana. - reflexión especular de Phong. - fórmula de reflexión local: n I λ= I aλ k a O dλ +∑1≤i≤ m f att I pλ [ k d O dλ ⃗ N⋅⃗ Li +k s O sλ ( ⃗ Ri⋅⃗ V) ]
⏟ ambiental
i
i
⏟⏟ difuso
especular
Trazado de rayos por Software - determinación de superficies visibles. - calcula la iluminación local al igual que el modelo de hardware (ambiental, difusa, especular). - algunas características globales: sombras, reflexión especular recursiva (no difusa), transmisión refractiva.
Rio 14
- Roberto Guerrero @ 2014
5
Simulación de la Apariencia – Iluminación Global
Revisión sobre Iluminación Ojo vs. Trazado de rayos Dónde se origina el rayo de luz?
Rio 14
En la fuente de luz: trazado del rayo de luz (trazado de rayo o fotón hacia adelante)
En el ojo: trazado del rayo del ojo (trazado de rayo hacia atrás)
- Roberto Guerrero @ 2014
6
Simulación de la Apariencia – Iluminación Global
Trazado de Rayos (Raytracing) Una idea simple: En lugar de disparar un número infinito de rayos hacia adelante desde la fuente de luz hacia el observador, mapear hacia atrás un número de rayos desde el observador a través de cada pixel hacia un objeto y la fuente de luz (u otro objeto).
Dispara rayos desde el ojo a través de un punto de muestra de una foto virtual (pixel): -
computar el color/intensidad del objeto existente en el punto de muestreo, luego pintar en la “foto” en el punto de intersección del rayo-foto.
“Qué es lo que se ve desde afuera” -
la combinación del color del material del elemento de superficie alcanzado por el rayo y el color de la fuente de luz alcanzada por el rayo al reflejarse
.
Rio 14
- Roberto Guerrero @ 2014
7
Simulación de la Apariencia – Iluminación Global
Rendering con Raytracing Subproblemas a resolver •
Generar el rayo.
•
Encontrar el objeto más cercano en la ruta del rayo.
•
encontrar la primer intersección del rayo con un objeto dentro de la escena (el rayo sale del ojo y atraviesa el centro del pixel).
Calcular la luz.
-
usar un modelo de iluminacion para determinar la luz en el elemento de superficie mas cercano normal de la superficie rayo de luz
objeto plano del film Rio 14
- Roberto Guerrero @ 2014
8
Simulación de la Apariencia – Iluminación Global
Raytracing Pseudocódigo Seleccionar el centro de proyección y la ventana del plano de visualización; for (cada línea de scan en la imagen) { for (cada pixel en la línea de scan) { - determinar un rayo desde el centro de proyección a través del pixel; for (cada objeto en escena) { if (el objeto es intersecado y es el más cercano) - registar la intersección y el objeto; } - establecer el color del pixel de la intersección; } }
Rio 14
- Roberto Guerrero @ 2014
9
Simulación de la Apariencia – Iluminación Global
Generación del Rayo Origen del rayo
Rio 14
Iniciar un rayo desde el “punto del ojo” : P Orientar el rayo en la dirección d desde el ojo hacia un punto del plano del film cuyo color se desea conocer. Los puntos a lo largo del rayo tienen la forma P + td donde: - P es el origen del rayo: la posición del “ojo la cámara”. - d es un vertor dirección unitario. - t es un número real no negativo. El “punto del ojo” es el centro de proyección en el volumen de visualización en perspectiva.
- Roberto Guerrero @ 2014
10
Simulación de la Apariencia – Iluminación Global
Generación del Rayo Dirección del Rayo
Generar rayos respecto de los puntos de pantalla (pixels). Transformar los puntos de pantalla 2D en puntos del plano de visualización 3D. Es necesario encontrar los correspondientes puntos del plano de proyección y luego convertir el rayo al espacio del mundo 3D. -
los rayos deben intersectar los objetos en el mundo original 3D, es decir en el sistema de coordenadas del mundo no transformado.
Utilizar cualquier plano ortogonal al vector look como plano de visualización.
Volumen de visualización transformado cualquier plano z=k, -1< k < 0 puede ser el plano del film Rio 14
- Roberto Guerrero @ 2014
Espacio del mundo sin transformar 11
Simulación de la Apariencia – Iluminación Global
Generación del Rayo Dirección del Rayo (cont.)
Transformar el punto del plano de visualización en un punto del espacio del mundo.
Punto en el espacio de pantalla
Rio 14
Rayo en el espacio del mundo
La transformación de normalización convierte los puntos del espacio del mundo a puntos en el volumen de visualización canónicos
Punto en el plano de visualización canónico
transladar al origen, orientar en el eje z, escalar en x e y, y ajustar los ángulos de visualización de modo que z: [-1, 0]; x,y: [-1, 1]
La inversa de la transformación de normalización: la Tranformación de Visualización
- Roberto Guerrero @ 2014
12
Simulación de la Apariencia – Iluminación Global
Trazador de Rayos Pseudocódigo Definir los objetos y las fuentes de luz de la escena. Establecer los parámetros de la cámara. for (int r =0; r < nRows; r++) { for (int c =0; c < nCols; c++) { - Contruir el rc-ésimo rayo. - Encontrar todas las intersecciones del rayo rc con los objetos de la escena. - Identificar las intersecciones que se encuentran más cercanas y en frente del ojo. - Computar el “punto de toque” del rayo y el objeto, y el vector normal en éste punto. - Encontrar el color de la luz que retorna al ojo desde el punto de intersección. - Pintar el pixel rc con el color obtenido. } }
Rio 14
- Roberto Guerrero @ 2014
13
Simulación de la Apariencia – Iluminación Global
Resumen Arquitectura de Trazador de Rayos
Rio 14
- Roberto Guerrero @ 2014
14
Simulación de la Apariencia – Iluminación Global
Qué pasa con los pixels? Los pixels no son muestras
Rio 14
Siempre se habló de “muestras”, no de “pixels”.
En el caso más simple, se puede establecer que las muestras son cada uno de los pixels.
Mejores resultados se pueden obtener con sobremuestreo: múltiples muestras para un mismo pixel.
Mejores resultados a través de un muestreo adaptativo: aumentar la densidad de muestreo en áreas de gran cambio (tanto geométricamente como de luz).
Se puede hacer un muestreo estocástico: las muestras se realizan con régimen probabilístico.
Para resultados rápidos, submuestreo: tomar tantas muestras como lo permita el tiempo de la aplicación.
¿Cómo convertir las muestars en pixels?; simplemente se utiliza alguna técnica de filtro (promedio pesado de las muestras, etc...).
- Roberto Guerrero @ 2014
15
Simulación de la Apariencia – Iluminación Global
Qué sucede con los pixels? Los pixels no son muestras
a)
Pixel actual
Bloque de pixels
b)
Rio 14
- Roberto Guerrero @ 2014
16
Simulación de la Apariencia – Iluminación Global
Raytracing Recursivo Simulando efectos de iluminación global
Disparando en forma recursiva nuevos rayos en la escena, se puede obtener mayor información. Comenzar con el punto de intersección. Enviar rayos en diferentes direcciones: -
Rio 14
hacia las fuentes de luz (L) rebotando en los objetos (reflexión especular R) a través de los objetos (transparencia T)
- Roberto Guerrero @ 2014
17
Simulación de la Apariencia – Iluminación Global
Raytracing Recursivo Estados
Rayos primarios
Rayos de sombras Rio 14
- Roberto Guerrero @ 2014
Rayos de reflexión
Rayos de refractados 18
Simulación de la Apariencia – Iluminación Global
Sombreados
Cada luz en la escena hace una contribución al color y la intensidad del elemento de superficie numluces
IntensidadObjeto λ=ambiental +
luz=1
atenuacion⋅IntensidadLuz λ⋅[ difusa+especular ]
Si y solo si alcanza un objeto -
éste puede ser oculto por otros objetos en la escena puede ser oculto por otras partes del mismo objeto
Construir un rayo desde la superficie hacia cada fuente de luz
Chequear si el rayo intersecta otros objetos antes de poder alcanzar la fuente de luz -
Rio 14
∑
si el rayo no intersecta ningun objeto en su ruta hacia la fuente de luz, luego la contribución de la fuente al punto es de máxima iluminación. si el rayo intersecta un objeto en su ruta, la contribución de la fuente al punto es nula. qué sucede con los objetos transparentes?.
- Roberto Guerrero @ 2014
19
Simulación de la Apariencia – Iluminación Global
Superficies Transparentes Transparencia no refractiva
Para un polígono parcialmente transparente
I λ =( 1− k t1 ) I λ1 + k t1 I λ2 k t1 =transmisión del polígono 1 I λ1 =intensidad calculada para el polígono 1 I λ2 =intensidad calculada para el polígono 2
Rio 14
- Roberto Guerrero @ 2014
20
Simulación de la Apariencia – Iluminación Global
Superficies Transparentes Transparencia Refractiva
Modelar la forma en que la luz se refracta en las superficies complica un poco el proceso Línea de visión no refractada (geometrica) Línea de visión Refractada (optica)
θ
θ
t
Objeto Transparente
i Línea de visión
La ley de Snell
sin θ t =
sinθ i η iλ η tλ
ηiλ =índice de refracción del Medio 1 ηtλ =índice de refracción del Medio 2 Rio 14
- Roberto Guerrero @ 2014
Medio 1 Medio 2
21
Simulación de la Apariencia – Iluminación Global
Reflección y Transmisión
Ley de Reflexión
θ i =θ r Ley Snell de Refracción
η i sinθ i =η t sinθ t ηdonde i ,η t Rio 14
- Roberto Guerrero @ 2014
son índices de refracción 22
Simulación de la Apariencia – Iluminación Global
Raytracing Recursivo Publicado por Whitted en 1979
Trazado de rayos adicionales en las intersecciones: -
luz: trazar un rayo hacia cada fuente de luz. Si la fuente de luz es bloqueada por un objeto opaco, no existe contribución de iluminación y el objeto se encuentra en la sombra de la luz para este punto. reflexión: trazar un rayo con característica especular, reflejando acorde con la dirección de N. refracción: trazar un rayo en dirección de refracción acorde con la ley de Snell. recursivamente generar nuevos rayos de luz, reflexión y refracción en cada intersección hasta que la contribución del rayo sea despreciable. un modelo de trazado de rayos recursivo debe manejar reflexión especular y transparencias. las fuentes de luz contribuyen en las componentes difusas y especulares. la reflexión recursiva entre los objetos es estrictamente especular. la reflexión difusa entre los objetos se trata con radiosidad.
La nueva ecuación de iluminación I λ =⏟ I aλ k a O dλ + ∑m f att I pλ [ ⏟ k d O dλ ⃗ N⋅⃗L + ⏟ k s O sλ ( ⃗ R⋅⃗ V )n ]+ k⏟ k t O tλ I tλ s O sλ + ⏟ ambiental
difusa
especular
reflejada refractada ⏟ recursiva
Rio 14
- Roberto Guerrero @ 2014
23
Simulación de la Apariencia – Iluminación Global
Raytracing Recursivo Arbol de rayos y luces
Rio 14
- Roberto Guerrero @ 2014
indirect illumination
24
Simulación de la Apariencia – Iluminación Global
Trazador de Rayos Recursivo Pseudocódigo
Rio 14
- Roberto Guerrero @ 2014
25
Simulación de la Apariencia – Iluminación Global
Resumen Arquitecture del Ray Tracing
Rio 14
- Roberto Guerrero @ 2014
26
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering Trazador de Rayos (Ray Tracing)
Rio 14
Ray-tracing es bueno para superficies reflectivas, brillantes, transparentes tales como metal y vidrio. Puede generar sombras y cáusticas (focalización de la luz debido su interacción con superficies especulares curvas). Debido a que estos efectos son relativamente poco frecuentes en la vida diaria, cuando se encuentran juntos en un plasmado parecen poco realistas.
- Roberto Guerrero @ 2014
27
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering Radiosidad (Tansporte de la Energía)
Rendering centrado en la escena. Dividir la escena en pequeños parches de superficie y calcular cuanta luz contribuye el parche al resto de la escena. Problema circular: un parche A contribuye a un parche B, el cual contribuye nuevamente al parche A y éste a B, etc... Muy costoso de resolver.
Rio 14
Independiente del observador – procesamiento batch, seguido de procesamiento en tiempo real, display dependiente del observador.
- Roberto Guerrero @ 2014
28
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering Radiosidad (cont.)
Rio 14
Bueno para iluminación indirecta, degradado de color, sombreado suave, escenarios interiores con superficies mate. Es una técnica convincente para plasmados de interior con luz indirecta y superficies mate. Muy buenos resultados se obtienen con la combinación de radiosidad y ray-tracing.
- Roberto Guerrero @ 2014
29
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering El mejor es degradado elegantemente (combinación)
Rio 14
Ray-tracing selectivo. Usualmente solo unos pocos objetos brillantes/transparentes de la escena son plasmados por raytracing. Iluminación local sobre objetos mate. Se calcula radiosidad en los vértices de la escena una sola vez, luego se usa esta información para el cálculo del sombreado Gouraud (sólo colores difuso en escenas estáticas).
- Roberto Guerrero @ 2014
30
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering El mejor: Muestreo realista
La ecuación de Kajiya (1986)
Rio 14
muy costosa de computar
La técnicas previas son diferentes aproximaciones a la ecuación de rendering total. Ejemplo: Metropolis Light Transport de Eric Veach (1997)
- Roberto Guerrero @ 2014
31
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering Rendering basado en las imágenes
En lugar de gastar dinero y tiempo en el modelado de objetos de una escena, tomar una foto de la misma. Luego capturar la geometría y luz de la escena con poco costo.
Es análogo a la composición de imágenes 3D.
Pregunta: cómo generar vistas diferentes a la tomada en la foto. Varias propuestas.
Imagen original Rio 14
- Roberto Guerrero @ 2014
Nuevo punto de vista
Reiluminación 32
Simulación de la Apariencia – Iluminación Global
Técnicas de Rendering Sombreado Procedural
Efectos complejos de iluminación pueden ser obtenidos mediante lenguajes de sombreado
El software Renderman de Pixar Actualmente se encuentra en hardware
Rio 14
provee un número de posibilidades ilimitado. la iluminación global puede ser simulada con poca sobrecarga computacional. pero usualmente requiere capacidades artísicas para la generación del código.
nVidia’s GeForce3/4
- Roberto Guerrero @ 2014
33
Simulación de la Apariencia – Iluminación Global
Rio 14
- Roberto Guerrero @ 2014
34