Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer...

55
Computación Geométrica 2010/2011 Jorge Calvo Zaragoza Fundamentos de POV-Ray

Transcript of Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer...

Page 1: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Computación Geométrica – 2010/2011

Jorge Calvo Zaragoza

Fundamentos de POV-Ray

Page 2: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Índice

1. Introducción

2. Fundamentos del trazado de rayos

3. Construcción de escenas con POV-Ray

4. Geometría sólida constructiva

5. Conclusiones

6. Referencias

Page 3: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Introducción

Page 4: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 5: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

¿Qué se puede hacer con POV-Ray?

5

POV-RayTeam

Page 6: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

¿Qué se puede hacer con POV-Ray?

6GillesTran

Page 7: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

¿Qué se puede hacer con POV-Ray?

7

Tom Aust

Page 8: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Fundamentos del trazado de rayos

Page 9: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 10: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 11: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 12: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 13: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 14: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 15: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 16: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 17: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 18: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 19: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Construcción de escenas en POV-Ray

Page 20: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Nociones básicas

Sistema de coordenadas

Regla de la mano izquierda

Elementos básicos

Cámara

Luces

Objetos

20

Page 21: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Definición de la cámara

Lugar (location)

Dirección (look_at)

21

camera

{

location <x,y,z>

look_at <x,y,z>

}

Page 22: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Definición de luces

Posición

Color

22

light_source

{

<x,y,z>

color <r,g,b>

}

Page 23: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Primitivas básicas: esfera

Punto central

Radio

23

sphere

{

<x,y,z> // Centro

radio

}

Page 24: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Primitivas básicas: cubo

Vértice inferior izquierdo cercano (V1)

Borde superior derecho lejano (V2)

24

box

{

<x,y,z> // V1

<x,y,z> // V2

}

Page 25: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Primitivas básicas: cilindro

Centro de la base

Centro de la tapa

Radio

25

cylinder

{

<x,y,z> // Base

<x,y,z> // Tapa

radio

}

Page 26: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Primitivas básicas: plano

Normal

Desplazamiento

26

plane

{

<x,y,z> // Normal

desplazamiento

}

Page 27: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Transformaciones

Rotación

Traslación

Escalado

27

objeto

{

tranlate valor*<x,y,z>

rotate valor*<x,y,z>

scale valor*<x,y,z>

}

Page 28: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Color

Fondo

28

objeto

{

pigment { colour <r,g,b> }

}

background

{

colour <r,g,b>

}

Page 29: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Escena de ejemplo

29

camera

{

location <0,5,-10>

look_at <0,0,10>

}

light_source { <0,5,-3> colour <1,1,1> }

background { colour <0.2,0.2,0.88> }

sphere { <0,2,0> 1 pigment { colour <1,0,0> } }

plane { <0,1,0> 0 pigment { colour <0,1,0> } }

Page 30: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Escena de ejemplo

30

Page 31: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Escenas en POV-Ray

Otras primitivas

Triángulos

Cuádricas

Toroides

Conos

Isosuperficies

Superficies libres

31

Page 32: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Geometría Sólida Constructiva

Page 33: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Geometría Sólida Constructiva

CSG, Constructive Solid Geometry

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

Page 34: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 35: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Unión

Sintaxis:

35

union

{

OBJETO1

OBJETO2

...

OBJETO N

[MODIFICADORES]

}

Page 36: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Unión

Ejemplo

36

Page 37: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Fusión

Une objetos de forma homogénea

Elimina las aristas interiores

Mismo resultado que la unión salvo para objetos transparentes

37

Page 38: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Fusión

Sintaxis:

38

merge

{

OBJETO1

OBJETO2

...

OBJETO N

[MODIFICADORES]

}

Page 39: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Fusión

Ejemplo

39

Page 40: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Intersección

Da como resultado los puntos que tienen los objetos en común

40

Page 41: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Intersección

Sintaxis:

41

intersection

{

OBJETO1

OBJETO2

...

OBJETO N

[MODIFICADORES]

}

Page 42: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Intersección

Ejemplo

42

Page 43: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

43

Page 44: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Diferencia

Sintaxis:

44

difference

{

OBJETO1

OBJETO2

...

OBJETO N

[MODIFICADORES]

}

Page 45: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Operadores CSG

Diferencia

Ejemplo

45

Page 46: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Geometría Sólida Constructiva

Ejemplo complejo

46

Page 47: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Trazado de rayos en CSG

El trazado de rayos se basa en el cálculo de intersecciones

¿Cómo se representa un objeto CSG?

Estructura que almacena operaciones y primitivas

Árbol binario

Hojas: primitivas

Nodos interiores: operaciones

47

Page 48: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Trazado de rayos en CSG

48

Page 49: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 50: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Trazado de rayos en CSG

Posibles casos

No solapamiento

Solapamiento parcial

Solapamiento total

50

Page 51: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 52: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Conclusiones

Page 53: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

Page 54: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

Referencias

Page 55: Fundamentos de POV-Ray - DCCIA. Departamento de ...³n POV-Ray, Persistence of Vision Raytracer Software para el desarrollo de escenas foto-realistas Licencia POV-Ray Multiplataforma

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

• http://library.thinkquest.org/3285/tutorial/intro.html

55