Fundamentos de POV-Ray Computación Geométrica – 2010/2011 Jorge Calvo Zaragoza
Índice 1.
2. 3. 4. 5.
6.
Introducción Fundamentos del trazado de rayos Construcción de escenas con POV-Ray Geometría sólida constructiva Conclusiones Referencias
Introducción
Introducción POV-Ray, Persistence of Vision Raytracer
Software para el desarrollo de escenas foto-realistas Licencia POV-Ray
Multiplataforma Lenguaje de definición parecido a C
Metodología del trazado de rayos Soporte para animación
4
¿Qué se puede hacer con POV-Ray?
POV-Ray Team 5
¿Qué se puede hacer con POV-Ray?
6
Gilles Tran
¿Qué se puede hacer con POV-Ray?
Tom Aust 7
Fundamentos del trazado de rayos
Trazado de rayos Es una técnica de rendering
Basado en el funcionamiento real de la visión Tres elementos fundamentales en el trazado de rayos: Cámara Objeto Luces
9
Trazado de rayos Un rayo se define como la semirecta
r + td r: punto inicial d: dirección t: valor paramétrico [0,+inf]
10
Trazado de rayos Funcionamiento natural La luces envían rayos en todas direcciones Al intersectar con un objeto, la luz se refleja en una dirección La luz reflejada en la dirección de la cámara es lo que se ve Problema: muy ineficiente
11
Trazado de rayos Funcionamiento inverso Los rayos se lanzan desde la cámara en cada posición posible Desde el objeto se envía un rayo hacia cada fuente de luz Por tanto, dos tipos de rayos: Rayo de visión (cámara-objeto) Rayos de sombra (objeto-luz)
12
Trazado de rayos Funcionamiento inverso Rayos de visión Para cada píxel de la ventana de emisión se envía un rayo Se calcula la intersección del rayo con cada objeto de la escena
De esta intersección se obtiene un conjunto de valores
13
Trazado de rayos Funcionamiento inverso Rayos de visión El trazador de rayos debe resolver todas las intersecciones Al final se queda con el menor valor (más cercano) Desde el punto final obtenido se envían los rayos de sombra
14
Trazado de rayos Funcionamiento inverso Rayos de visión Problema: Se calculan demasiadas intersecciones nulas
POV-Ray divide la escena en diferentes zonas y agrupa los objetos
en primitivas geométricas sencillas (bounding) Se pueden hacer agrupaciones recursivamente Sólo se calculan las intersecciones con un objeto si el bounding que lo contiene intersecta con el rayo
15
Trazado de rayos Funcionamiento inverso Rayos de sombra Un rayo hacia cada fuente de luz La luz se emite en todas direcciones
Hay que comprobar si el rayo de sombra intersecta con un objeto Se repiten las mejoras aplicadas a los rayos de visión Si el rayo llega a luz, se tiene en cuenta para el cálculo final Al final la iluminación del punto depende del modelo de
iluminación y las fuentes de luces que intervienen 16
Trazado de rayos Funcionamiento inverso Otro tipo de rayos Rayos de reflexión Para superficies reflectantes Se calcula el ángulo de reflexión y se envía un nuevo rayo
Rayos de transmisión Para objetos parcial o totalmente transparentes Se calcula el desvío que se produce y se envía un nuevo rayo
17
Trazado de rayos Limitaciones Aliasing Objetos lejanos o pequeños Sombras Composición de la luz Reflexión especular de la luz Reflexión difusa de la luz
18
Construcción de escenas en POV-Ray
Escenas en POV-Ray Nociones básicas Sistema de coordenadas Regla de la mano izquierda
Elementos básicos Cámara Luces Objetos
20
Escenas en POV-Ray Definición de la cámara Lugar (location) Dirección (look_at) camera { location look_at }
21
Escenas en POV-Ray Definición de luces Posición Color light_source { color }
22
Escenas en POV-Ray Primitivas básicas: esfera Punto central Radio sphere { radio }
Técnica de modelado de sólidos Puntos interiores y exteriores
Crea objetos a partir de la combinación de otros La combinación se produce mediante el uso de operadores del
algebra de conjuntos (unión, intersección y diferencia)
33
Operadores CSG Unión El conjunto resultante contiene todos los objetos Sólo sirve para tratar varios objetos como si fuera uno Produce el mismo resultado que dibujarlos por separado
34
Operadores CSG Unión Sintaxis: union { OBJETO1 OBJETO2 ... OBJETO N [MODIFICADORES] }
35
Operadores CSG Unión Ejemplo
36
Operadores CSG Fusión Une objetos de forma homogénea Elimina las aristas interiores Mismo resultado que la unión salvo para objetos transparentes
Operadores CSG Diferencia Extrae los puntos que tiene en común un objeto con otro Equivalente a la intersección del objeto con el inverso del otro Operación no conmutativa (importa el orden) Si se usa con varios objetos se sustraen todos al primero
Trazado de rayos en CSG El trazado de rayos se basa en el cálculo de intersecciones
¿Cómo se obtienen los valores de las intersecciones? La intersección entre un objeto y un rayo produce un conjunto
de valores paramétricos Se obtienen estos conjuntos en las primitivas Se aplican las operaciones del CSG sobre estos conjuntos Recorrido ascendente desde las hojas hasta la raíz
49
Trazado de rayos en CSG Posibles casos No solapamiento Solapamiento parcial
Solapamiento total
50
Trazado de rayos en CSG Eficiencia Calcular la intersección de un CSG tiene una gran complejidad Puede que se calculen muchas intersecciones nulas
Mejora Bounding-box que contenga todas las primitivas (hojas)
Sólo se recorre el árbol si el bounding-box intersecta con el rayo
51
Conclusiones
Conclusiones Trazado de rayos Mediante el trazado de rayos se pueden conseguir imágenes foto-
realistas. Esta técnica se basa en las intersecciones de semirectas (rayos) con modelos matemáticos (objetos). Construcción de escenas POV-Ray permite definir escenas de forma sencilla.
Geometría sólida constructiva Se pueden construir objetos complejos a partir de la combinación de
primitivas sencillas y operadores del álgebra booleana.
53
Referencias
Referencias • An introduction to ray tracing. Glassner, Andrew S.
• Ray tracing II.Young, Chris • http://www.povray.org/documentation/ • http://www.cs.auckland.ac.nz/~jli023/opengl/pov-ray.htm