60
1 El Mundo 3D VyGLab – Lab. de Investigación y Desarrollo en Visualización y Computación Gráfica Dpto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Silvia Castro CG 2012 Introducción Vimos que la generación de una escena 3D requiere 3 componentes esenciales: • El mundo 3D de los objetos • La o las fuentes de luz • La cámara o el ojo que observa la escena Hasta el momento hemos modelado la cámara u ojo que observa la escena. Nos centraremos ahora en construir objetos tridimensionales para poder avanzar un paso más en lo que respecta a definir los Silvia Castro CG 2012 poder avanzar un paso más en lo que respecta a definir los elementos constituyentes de una escena.

El Mundo 3D - cs.uns.edu.ar

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: El Mundo 3D - cs.uns.edu.ar

1

El Mundo 3D

VyGLab – Lab. de Investigación y Desarrollo en Visualización y Computación Gráfica

Dpto. de Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del Sur

Silvia Castro CG 2012

Introducción

Vimos que la generación de una escena 3D requiere 3 componentesesenciales:

• El mundo 3D de los objetosj• La o las fuentes de luz• La cámara o el ojo que observa la escena

Hasta el momento hemos modelado la cámara u ojo que observa laescena.

Nos centraremos ahora en construir objetos tridimensionales parapoder avanzar un paso más en lo que respecta a definir los

Silvia Castro CG 2012

poder avanzar un paso más en lo que respecta a definir loselementos constituyentes de una escena.

Page 2: El Mundo 3D - cs.uns.edu.ar

2

El mundo 3D de los objetosEl mundo 3D de los objetos

Silvia Castro CG 2012

El Mundo 3D de los Objetos

Típicamente pensamos en un modelo como un objeto stand-alone,por ejemplo, un árbol, un escritorio, etc y en la escena como elensamblado de estas partes en un ambiente 3D completo en el queensamblado de estas partes en un ambiente 3D completo en el quese incluyen las luces y la cámara.

Cada modelo está representado por:

• Su geometría• Su topología• Sus atributos

Silvia Castro CG 2012

Page 3: El Mundo 3D - cs.uns.edu.ar

3

El Mundo 3D de los Objetos

El modelado y la representación de objetos se aplica, en general, atodos o a cualesquiera de los siguientes aspectos de los objetos:

• Creación de una representación gráfica computacional3D.

• Método o estructura de datos usada para representar elobjeto.

• Manipulación de la representación en particular el

Silvia Castro CG 2012

• Manipulación de la representación, en particular, elcambiar la forma de un modelo existente.

El Mundo 3D de los Objetos

Las formas de crear un objeto gráfico computacional 3D son tantas y tanvariadas como los tipos de objetos.

Éstas pueden ser, por ejemplo,

• Construir un objeto mediante una interfaz 3D, como, por ejemplo,con 3D Studio, Blender, … .

• Tomar datos de un dispositivo como un laser ranger o undigitalizador 3D.

• ...

Hasta ahora los métodos de creación han sido manuales o semi-manuales

Silvia Castro CG 2012

teniendo el diseñador que trabajar con una interfaz a tal efecto.

Actualmente hay gran demanda de gran cantidad de objetos, siendo estosademás muy complejos. Por esto se están investigando métodos automáticospara la obtención de objetos tales como por ejemplo la obtención de los mismosa partir de fotos o videos.

Page 4: El Mundo 3D - cs.uns.edu.ar

4

El Mundo 3D de los Objetos

La representación de objetos es un problema sólo parcialmente resuelto.

Podemos distinguir entre la representación que requiere la máquina o elrenderizador y la que requiere el usuario o la interfaz. Además, al almacenarrenderizador y la que requiere el usuario o la interfaz. Además, al almacenarun objeto se tiene otra representación del mismo.

La representación usando polígonos es la representación aproximada máspopular para la máquina. Sin embargo, es una representación inconvenientepara el usuario o creador de un objeto.

A pesar de esto, se usa a menudo tanto para la máquina como para eli H t ét d ti t i di ti t l

Silvia Castro CG 2012

usuario. Hay otros métodos que tienen representaciones distintas para lamáquina y el usuario.

El Mundo 3D de los Objetos

La manipulación de objetos se refiere a la forma en que se permitirámanipular la forma de un objeto existente.

Esto depende fuertemente de la representación.Esto depende fuertemente de la representación.

Los distintos métodos de representación tienen sus ventajas y desventajas

Las formas poligonales, por ejemplo, no permiten una manipulación simple de la forma.

Silvia Castro CG 2012

Los distintos métodos de representación tienen sus ventajas y desventajaspero no hay una solución universal.

¿Cómo elegir una representación?

Page 5: El Mundo 3D - cs.uns.edu.ar

5

El Mundo 3D de los Objetos

• ¿Cuán bien representa los objetos de interés?

C án fácil es renderi ar los objetos en esa representación(o

Eligiendo una representación

• ¿Cuán fácil es renderizar los objetos en esa representación(o convertirlos a polígonos)?

• ¿Cuán compacta es (barata para almacenar y transmitir)?

• ¿Cuán fácil es de crear?

– A mano, proceduralmente, ajustándose a medidas, …

• ¿Cuán fácil es interactuar con ésta?¿Cuán fácil es interactuar con ésta?

– Modificarla, animarla, ...

• ¿Cuán fácil es llevar a cabo operaciones sobre ésta?

– Distancia, intersección, vectores normales, curvatura, …

Silvia Castro CG 2012

Modelado de Objetos 3DModelado de Objetos 3D

Silvia Castro CG 2012

Page 6: El Mundo 3D - cs.uns.edu.ar

6

Introducción

Veremos las técnicas básicas de modelado de objetos tridimensionales que son lasque están habitualmente disponibles en un programa de generación de objetos 3D.Si bien hay distintas clasificaciones de las técnicas de modelado de objetos, losobjetos 3D pueden representarse por medio de su superficie o de su superficie y suinterior.Las primeras se conocen como representación b-rep (boundary representation) entanto que las otras se conocen como representación volumétrica.

Silvia Castro CG 2012

Modelado de objetos 3D• Raw data

– Nubes de Puntos

– Range image

– Polígonos

• Sólidos

– Voxels

– Octree

– Árbol BSPPolígonos

• Superficies

– Mesh

– Paramétricas

– Subdivisión

Árbol BSP

– CSG

• Estructuras de Alto Nivel

– Grafos de escena

– Skeleton

– Sweep

– Implícitas – Específicas de la aplicación

Silvia Castro CG 2012

Page 7: El Mundo 3D - cs.uns.edu.ar

7

Modelado de objetos 3D• Raw data

– Nubes de Puntos

– Range image

– Polígonos

• SuperficiesSuperficies

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Es un conjunto no estructurado de puntos 3D muestreados del volumen.Pueden obtenerse a partir de los scánner, distintos algoritmos de visión, etc..

Modelado de objetos 3D• Raw data

– Nubes de Puntos

– Range image

– Polígonos

• SuperficiesSuperficies

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Es un conjunto de puntos 3D mapeados a pixels de una imagen deprofundidad. Pueden obtenerse a partir de los escáners 3D.

Page 8: El Mundo 3D - cs.uns.edu.ar

8

Modelado de objetos 3D• Raw data

– Nubes de Puntos

– Range image

– Polígonos

• SuperficiesSuperficies

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Es un conjunto no estructurado de polígonos. Pueden obtenerse mediantesistemas de modelado interactivos.

Modelado de objetos 3D• Raw data

• Superficies

– Mesh

– Paramétricas

– SubdivisiónSubdivisión

– Implícitas

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Es un conjunto conectado de polígonos (triángulos). Pueden ser cerradas ono.

Page 9: El Mundo 3D - cs.uns.edu.ar

9

Modelado de objetos 3D• Raw data

• Superficies

– Mesh

– Paramétricas

– SubdivisiónSubdivisión

– Implícitas

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

El objeto 3D se construyen mediante la unión de parches. Estos parches seespecifican con una fórmula matemática que da la posición del parche en el espacio3D y su forma. Esta fórmula nos permite generar cualquier punto sobre la superficiedel parche. Podemos cambiar la forma o curvatura del parche editando laespecificación matemática. Interactivamente, la forma de cada parche puedecontrolarse mediante puntos de control.

Modelado de objetos 3D• Raw data

• Superficies

– Mesh

– Paramétricas

– SubdivisiónSubdivisión

– Implícitas

• Sólidos

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Red poligonal gruesa más regla/s de subdivisión. Definen superficies suavescomo límite de una secuencia de refinamientos.

Page 10: El Mundo 3D - cs.uns.edu.ar

10

Modelado de objetos 3D• Raw data

• Superficies

– Mesh

– Paramétricas

– SubdivisiónSubdivisión

– Implícitas

• Sólidos

• Estructuras de Alto Nivel

2222 rzyx

Silvia Castro CG 2012

La forma del objeto se representa mediante una fórmula. Esta superficie laconstituyen los puntos que satisfacen F(x,y,z)=0

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

– Voxels

– Octree

– Árbol BSP

– CSG

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Grilla uniforme de muestras volumétricas. Adquiridas de CAT, MRI, etc.

Page 11: El Mundo 3D - cs.uns.edu.ar

11

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

– Voxels

– Octree

– Árbol BSP

– CSG

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Un Octree es una estructura de datos que permite el almacenamientoeficiente de datos 3D. La idea es representar grandes regiones uniformes(llenas o vacías) por medio de una celda, usando un método de subdivisiónrecursivo.

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

– Voxels

bcd

gi

e

– Octree

– Árbol BSP

– CSG

• Estructuras de Alto Nivel

a jf k

h

j

k outc

b

a

Silvia Castro CG 2012

Particionamiento binario del espacio conetiquetado de celdas sólidas. Secontruye a partir de representacionespoligonales.

g

k out

outin

h

iin

outin

out

f

in out

ec

d out

outin

Page 12: El Mundo 3D - cs.uns.edu.ar

12

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

– Voxels

– Octree

– Árbol BSP

– CSG

• Estructuras de Alto Nivel

Silvia Castro CG 2012

Es una representación exacta para ciertos tipos de formas rígidas. Segeneran las formas mediante una jerarquía de operaciones booleanas deconjunto (unión, intersección y diferencia) aplicadas sobre formas simples;permite un control de forma intuitiva.

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

• Estructuras de Alto Nivel

– Grafos de escena

– Skeleton

– Sweep

– Específicas de la aplicación

Silvia Castro CG 2012

Se describe la escena mediante un grafo. Haydistintos tipos de nodos:

• Forma• Propiedades• Grupo

Page 13: El Mundo 3D - cs.uns.edu.ar

13

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

• Estructuras de Alto Nivel

– Grafos de escena

– Skeleton

– Sweep

– Específicas de la aplicación

Silvia Castro CG 2012

Grafo de curvas con radio.

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

• Estructuras de Alto Nivel

Superficie generada mediante elsweep de una curva a lo largo de unatrayectoria.

– Grafos de escena

– Skeleton

– Sweep

– Específicas de la aplicación

Silvia Castro CG 2012

Page 14: El Mundo 3D - cs.uns.edu.ar

14

Modelado de objetos 3D

• Raw data

• Superficies

• Sólidos

• Estructuras de Alto Nivel

– Grafos de escena

– Skeleton

– Sweep

– Específicas de la aplicación

Silvia Castro CG 2012

Hay diversas alternativas

Modelado PoligonalModelado Poligonal

Silvia Castro CG 2012

Page 15: El Mundo 3D - cs.uns.edu.ar

15

Introducción

La representación poligonal es la representación clásica básica en laComputación Gráfica tridimensional y es el modelado dominante para lageneración de gráficos en 3D. Un objeto se representa mediante una red decaras planas denominada red poligonal.

En el caso general, un objeto posee superficies curvas y las caras planasson una aproximación a tal superficie.

Silvia Castro CG 2012

Introducción

¿Por qué es la técnica dominante?

• Cualquier objeto puede modelarse con polígonos (casi cualquierobjeto)

– Normalmente hay un error asociado con la conversión, perocon tiempo y espacio disponibles puede ser posible reducireste error

• Sabemos cómo renderizar polígonos rápidamente

• Muchas operaciones son sencillas de hacer con polígonos

• Espacios de memoria y de disco baratos

• Simplicidad

Silvia Castro CG 2012

Pero, ¿cuáles son las desventajas de las representaciones poligonales?

Page 16: El Mundo 3D - cs.uns.edu.ar

16

Introducción• Siempre son una aproximación en la representación de superficies

curvas

– Pero pueden hacerse tan buenas como se quiera, si queremospagar el precio del espacio

– Los vectores normales son aproximados

– La mayoría de las superficies del mundo real son curvas,particularmente las naturales

• Pueden ser muy poco estructuradas

• Es difícil parametrizarlas globalmente (concepto complejo)

– ¿Cómo las parametrizamos para el mapeo de texturas?

Silvia Castro CG 2012

Introducción

• Una mesh o red poligonal es un conjunto de polígonosconectados para constituir un objeto

• Una red tiene varias componentes:

Caras– Caras

– Lados (la frontera entre caras)

– Vértices (las fronteras entre lados o donde concurren 2 ó máscaras)

– Normales, coordenadas de textura, colores, coeficientes desombreado, etc

• Algunas componentes son implícitas dadas las otrasg p p

– Dadas las caras y los vértices, por ejemplo, se puedendeterminar los lados

– Fórmula de Euler: #Caras + #Vértices – #Lados = 2 –2xGenus, para redes poligonales cerradas

Silvia Castro CG 2012

Page 17: El Mundo 3D - cs.uns.edu.ar

17

Introducción

Usaremos redes (o meshes) para modelar tanto formas cerradascomo abiertas.

El objeto se considera cerrado si las caras poligonales unidasEl objeto se considera cerrado si las caras poligonales unidasencierran un espacio.

En el otro caso, las caras poligonales se unen pero no encierranningún espacio; representan una superficie extremadamente fina.

Silvia Castro CG 2012

En ambos casos, a esta colección de polígonos la llamaremos redpoligonal.

Introducción

• Las estructuras de datos para almacenar las redes poligonales sondependientes de la aplicación

• Distintas aplicaciones requieren optimizar en velocidad, porejemplo distintas operacionesejemplo, distintas operaciones

– Encontrar la cara vecina de una cara dada

– Encontrar las caras que concurren a un vértice

– Intersección de dos redes poligonales

• Básicamente debe elegirse:

– Qué características almacenar explícitamente (vértices, caras,)normales, etc)

– Qué relaciones se quiere que sean explícitas (los vértices quepertenecen a las caras, los vecinos, las caras que concurren aun vértice, etc)

Silvia Castro CG 2012

Page 18: El Mundo 3D - cs.uns.edu.ar

18

Redes Poligonales

Distintas librerías brindan algunasformas básicas como:

- Cilindro

- Cono

- Esfera

- Cubo

Y otras formas más avanzadas como:

L t t d N ll ( d Ut h)

Silvia Castro CG 2012

- La tetera de Newell (o de Utah)

- Dodecaedro

- Toroide

- …

Redes Poligonales

Cada objeto estará representado por:

• Su geometría• Su topologíaSu topología• Sus atributos

La geometría y la topología están básicamente dadas por una redpoligonal. Al conjunto de la red poligonal y los atributos se lo llamahabitualmente red.

Más precisamente podemos decir entonces que una red poligonal es unacolección de vértices, lados y polígonos conectados de modo tal que cada

Silvia Castro CG 2012

lado es compartido a lo sumo por dos polígonos. Un lado conecta dosvértices y puede ser compartido por dos polígonos adyacentes.

Una red poligonal puede representarse de varias formas, cada una con susventajas y desventajas.

Page 19: El Mundo 3D - cs.uns.edu.ar

19

Redes Poligonales

Para una misma aplicación pueden utilizarse distintas representaciones: unapara uso interno, otra para uso externo o inclusive otra con la cual el usuariocrea interactivamente la red.

Los criterios básicos para evaluar las distintas representaciones son espacio ytiempo. Operaciones típicas que se realizan sobre una red poligonal son:

• Encontrar todos los lados incidentes en un vértice• Encontrar todos los polígonos que comparten un lado o un vértice• Encontrar los vértices conectados por un lado• Encontrar los lados de un polígono• Mostrar la red

Silvia Castro CG 2012

• …

En general, cuanto más explícita sea la representación de las relaciones entrepolígonos, vértices y lados más eficientes en tiempo serán las operaciones perose necesitará más espacio para la representación.

Redes Poligonales : Estructuras de Datos Simples

)),,(),...,,,(),,,(( 222111 nnn zyxzyxzyxP

La representación explícita:

Los vértices se almacenan en el orden en que seencuentran recorriendo el polígono en un determinadasentido. Esta representación es eficiente para un solopolígono tanto en tiempo como en espacio.¿Qué ocurre para el caso de representación de la redpoligonal? ¿Y con el dibujado de la misma?

Silvia Castro CG 2012

Page 20: El Mundo 3D - cs.uns.edu.ar

20

Redes Poligonales: Estructuras de Datos Simples

En una red poligonal de triángulos

• Cada vértice se repite, en promedio, 6 veces, es decir que se

desperdicia memoria

Silvia Castro CG 2012

• Es caro identificar un triángulo adyacente

• Hay dificultades para asegurar que los polígonos se unan

correctamente.

Redes Poligonales: Estructuras de Datos Simples

v0

v1v4

v0 v2 v3 v4v1vértices

• Almacenar los vértices directamente para cada polígono implica– Desperdicio de memoria – cada vértice se repite muchas veces– Muy engorroso encontrar polígonos vecinos– Difícil asegurar que los polígonos se unan correctamente

v2v3

0 2 1 0 1 4 1 2 3 1 3 4caras

• Solución: Indirección– Poner todos los vértices en una lista– Cada cara almacena la lista de índices de sus vértices

• ¿Ventajas? Desventajas?

Silvia Castro CG 2012

Page 21: El Mundo 3D - cs.uns.edu.ar

21

Redes Poligonales: Estructuras de Datos Simples

))()()(( yxyxyxV

En la representación con referencias a una lista de vértices, cada vértice sealmacena sólo una vez, en una lista de vértices;

)),,(),...,,,(),,,(( 222111 nnn zyxzyxzyxV

Cada polígono se define como una lista de índices a la lista de vértices.

Tabla de Vértices Tabla de Caras

Silvia Castro CG 2012

Redes Poligonales: Estructuras de Datos Simples

Esta representación:

• Elimina la repetición de vértices

• Permite economizar espacio de almacenamiento:

• El índice puede ser de sólo 2 bytes en tanto que un vértice puede

almacenarse probablemente en 12 bytes.

• Cada vértice se usa 3 veces como mínimo, y generalmente de 4 a 6

veces, pero se almacena sólo una vez.

• Las normales, los colores, las coordenadas de textura, etc. pueden

Silvia Castro CG 2012

almacenarse de la misma forma.

• No soporta el acceso directo a los triángulos vecinos (adyacencia), es

decir que la información de conectividad no es explícita.

Page 22: El Mundo 3D - cs.uns.edu.ar

22

Redes Poligonales: Estructuras de Datos Simples

(-1, -1, -1)(-1, -1, 1)(-1, 1, -1)( 1 1 1)

Vértices:

(-1, 1, 1)(1, -1, -1)(1, -1, 1)(1, 1, -1)(1, 1, 1)

1 2 4 35 7 8 6

Caras:

Silvia Castro CG 2012

5 7 8 61 5 6 23 4 8 71 3 7 52 6 8 4

Redes Poligonales

Triángulos Indexados

Silvia Castro CG 2012

Page 23: El Mundo 3D - cs.uns.edu.ar

23

Redes Poligonales

Strips de triángulos

Aprovechan las características de las redes:

- Cada triángulo es usualmente adyacente al previo

- Cada nuevo vértice (excepto los dos primeros) crea un triángulo reusando elsegundo y el tercer vértice del triángulo previo

- Cada secuencia de 3 vértices produce un triángulo (pero no en el mismoorden). La secuencia de vértices 0,1,2,3,4,5,6,7,... conduce a generar lostriángulos:

(0,1,2),(2,1,3),(2,3,4),(4,3,5),(4,5,6),(6,5,7),...

Silvia Castro CG 2012

- Cuando los strips son largos se tiende a requerir un solo vértice (índice) portriángulo.

Redes Poligonales

Strips de triángulos

Silvia Castro CG 2012

Page 24: El Mundo 3D - cs.uns.edu.ar

24

Redes Poligonales

Fans de triángulos

Es la misma idea que en los strips de triángulos:

- Cada secuencia de 3 vértices produce un triángulo. La secuencia de vérticesp g0,1,2,3,4,5,... conduce a generar los triángulos:

(0,1,2),(0,2,3),(0,3,4),(0,4,5), ...

- Cuando los fans son largos se tiende a requerir un solo vértice (índice) portriángulo.

Silvia Castro CG 2012

Redes Poligonales

Además de los vértices y las caras

que utilicemos para modelar el

objeto, también necesitamos

guardar las normalesguardar las normales.

En la figura puede verse una

representación para un tetraedro.

Silvia Castro CG 2012

Page 25: El Mundo 3D - cs.uns.edu.ar

25

Almacenando más información

• Los vectores normales dan información acerca de la forma real de la superficie

• Normales por cara:

– Un vector normal vector por cada cara almacenado como parte de la p pcara

– Sombreado plano

• Normales por vértice:

– Un vector normal especificado por cada vértice (sombreado suave)

– Puede mantenerse un arreglo de normales análogo al arreglo de vértices

– Las caras almacenan separadamente los índices a los vértices y a lasLas caras almacenan separadamente los índices a los vértices y a las normales

– Permite compartir las normales independientemente de los vértices

Silvia Castro CG 2012

Almacenando más información

• Colores, Cordenadas de textura, ... también pueden tratarse como losvértices y las normales

• Los coeficientes para Iluminación/Sombreado pueden ser por cara o porobjeto; raramente son por vértice.

Cubo:

Vértices:

(1,1,1)

(-1,1,1)

(-1,-1,1)

(1 1 1)

Normales:

(1,0,0)

(-1,0,0)

(0,1,0)

(0 1 0)

Caras ((vert,norm), …):

((0,4),(1,4),(2,4),(3,4))

((0,0),(3,0),(7,0),(4,0))

((0,2),(4,2),(5,2),(1,2))

((2 1) (1 1) (5 1) (6 1))

Silvia Castro CG 2012

(1,-1,1)

(1,1,-1)

(-1,1,-1)

(-1,-1,-1)

(1,-1,-1)

(0,-1,0)

(0,0,1)

(0,0,-1)

((2,1),(1,1),(5,1),(6,1))

((3,3),(2,3),(6,3),(7,3))

((7,5),(6,5),(5,5),(4,5))

Page 26: El Mundo 3D - cs.uns.edu.ar

26

ProblemasNo hemos guardado información de adyacencia

• Las búsquedas se realizan en tiempo lineal

La adyacencia está implícita para redes estructuradas, pero ¿qué ocurre en redes no estructuradas?

Entonces, además de:

• Información geométrica (posición)

Silvia Castro CG 2012

g (p )

• Información de atributos (color, textura, temperatura, densidad de

población, etc.)

• Debemos almacenar:

• Información topológica (adyacencia, conectividad)

Redes Poligonales

Muchos algoritmos pueden necesitar, por ejemplo, información de los

vecinos; para ello puede hacerse que:

• Caras almacenen punteros a sus vecinos

• Lados pueden almacenarse explícitamente

)),,(),...,,,((),,,( 1114321 nnn zyxzyxVVVVV

),,,(

),,,(

2322

1211

PVVE

PVVE

• …

En muchos casos esta información puede almacenarse directamente o ser

extraída con distinta dificultad.

V2

E1E2

P

),,,(

),,,(

),,,(

1145

12244

2433

PVVE

PPVVE

PVVE

),,(

),,(

4322

5411

EEEP

EEEP

Silvia Castro CG 2012

V3V1

V4

E3

E4

E5

P1P2

Page 27: El Mundo 3D - cs.uns.edu.ar

27

Redes Poligonales • Cada elemento (vértice, lado y cara) tiene una lista de punteros a todos los

elementos incidentes

• Las consultas dependen sólo de la complejidad local de la red

• Las estructuras de datos no tienen tamaño fijo

• ¡Lento! ¡Grande! ¡Demasiado trabajo para mantener!

Silvia Castro CG 2012

Redes Poligonales Se pueden obtener distintas representaciones que soportan la recuperación

eficiente de las distintas relaciones topológicas. En el siguiente diagrama se

presentan todas las posibles entidades y relaciones de un modelo que

permita representar una superficie.

F

Silvia Castro CG 2012

V E

Page 28: El Mundo 3D - cs.uns.edu.ar

28

Redes Poligonales Hay determinadas relaciones que son constantes

E

V F

VE EE FE

Silvia Castro CG 2012

Vértices queconcurren a unlado

Lados queconcurren a unlado.

Caras queconcurren a unlado

Redes Poligonales Otras relaciones son variables

E

VViVértices que concurren a un vértice

V F

VVi

EVi

FFi

Lados que concurren a un vértice.

Caras que concurren a una cara

FViCaras que concurren a un vértice

Silvia Castro CG 2012

i

EFiLados que concurren a una cara

VFiVértices que concurren a una cara

Page 29: El Mundo 3D - cs.uns.edu.ar

29

Redes Poligonales

Ejemplo de una red triangular construida mediante un conjunto indexado de

triángulos. Cada triángulo apunta a sus 3 triángulos vecinos y cada vértice a

un solo triángulo vecino (relación parcial VTi*). Así podemos enumerar los

triángulos que concurren a un vértice.triángulos que concurren a un vértice.

Silvia Castro CG 2012

¿Cómo encontramos TODOS los triángulos que concurren a un vértice?

Redes Poligonales Representación Winged Edge para triángulos

Es una representación basada en lados.

Cada lado (orientado) apunta a:

Lados izquierdo y derecho hacia adelante- Lados izquierdo y derecho hacia adelante

en el recorrido según la orientación

- Lados izquierdo y derechos hacia atrás en el

recorrido según la orientación

- Vértice de atrás y de adelante

- Cara izquierda y derecha

Cada cara o vértice apunta a un lado

Silvia Castro CG 2012

Cada cara o vértice apunta a un lado

Page 30: El Mundo 3D - cs.uns.edu.ar

30

Redes Poligonales

Representación Winged Edge para triángulos

Silvia Castro CG 2012

Redes Poligonales

Creación de Objetos Poligonales

Aunque una red poligonal es la forma de representación más común en CG,

el modelado, aunque directo, algunas veces es muy tedioso. La popularidad

de esta representación se basa en la facilidad del modelado la existencia dede esta representación se basa en la facilidad del modelado, la existencia de

estrategias de rendering para procesar objetos poligonales y el hecho de

que no hay restricciones en la forma o la complejidad del objeto que se

modela.

Hay distintos métodos para obtener una representación poligonal de un

objeto. Entre ellos podemos mencionar:

• Usar digitalizador 3D o estrategia manual equivalente

Silvia Castro CG 2012

• Usar un dispositivo automático como el láser ranger

• Generar un objeto a partir de su descripción matemática

• Generar objetos por sweeping

• ...

Page 31: El Mundo 3D - cs.uns.edu.ar

31

Redes Poligonales

Además de los vértices y las caras

que utilicemos para modelar el

objeto, también necesitamos

guardar las normalesguardar las normales.

Éstas se tendrán en cuenta cuando

se calcule la iluminación de los

objetos.

Silvia Castro CG 2012

Redes Poligonales

Para algunos objetos asociamos una normal a cada vértice; para otros,

asociamos una normal a cada cara.

Para la superficie cilíndrica,Los vértices V1, V2, V3 y V4 definen la p ,tanto el vértice V1 de la cara F1

como el V2 de la cara F2 usanla misma normal n, que es elvector perpendicular a lasuperficie suave subyacente.

1, 2, 3 y 4

pared lateral de la casa y tienen la mismanormal n1 (vector normal a la paredlateral).Vértices de la pared frontal, tal como V5,usarán la normal n2. (V1 y V5 estánubicados en el mismo punto en elespacio, pero usan normales diferentes)

Silvia Castro CG 2012

Page 32: El Mundo 3D - cs.uns.edu.ar

32

Redes Poligonales

Generación de objetos poligonales

Definimos entonces la red poligonal de la casa.

La casa tiene paredes, piso ytecho planos (7 caras arepresentar).

Además hay sólo 7 vectoresnormales diferentes cada unod é t i d d

Silvia Castro CG 2012

de éstos asociado con cadauna de las caras.

Redes Poligonales

Vértices x y z

0 0 0 0

1 1 0 0

2 1 1 0

3 0.5 1.5 0

4 0 1 0

5 0 0 1

6 1 0 16 1 0 1

7 1 1 1

8 0.5 1.5 10

9 0 1 1

Silvia Castro CG 2012

Page 33: El Mundo 3D - cs.uns.edu.ar

33

Redes Poligonales

Normales nx ny nz

0 -1 0 0

1 -0.707 0.707 0

2 0.707 0.707 0

3 1 0 0

4 0 -1 0

5 0 0 1

6 0 0 -1

Silvia Castro CG 2012

Redes Poligonales

Cara Vértices Normales

0 (izq) 0, 5, 9, 4 0,0,0,0

1 (techo izq) 3, 4, 9, 8 1,1,1,1

2 (techo der) 2, 3, 8, 7 2, 2, 2,2

3 (der) 1, 2, 7, 6 3, 3, 3, 3

4 (abajo) 0, 1, 6, 5 4, 4, 4, 4

5 (frente) 5, 6, 7, 8, 9 5, 5, 5, 5, 5

6 (atrás) 0, 4, 3, 2, 1 6, 6, 6, 6, 6

Silvia Castro CG 2012

Page 34: El Mundo 3D - cs.uns.edu.ar

34

Problemas con Polígonos

• Son inherentemente una aproximación

– Las siluetas de los objetos, por ejemplo, nunca seránperfectas sin una gran cantidad de polígonos y el gastocorrepondientecorrepondiente

– Vectores normales no se especifican en todos lados

• La interacción es un problema

– Arrastrar puntos consume mucho tiempo

– Mantener características como la suavidad es dificultoso

• Representación de bajo nivel

Ej: Difícil de aumentar o disminuir la resolución– Ej: Difícil de aumentar o disminuir la resolución

– Difícil extraer información como por ejemplo, la curvatura

Silvia Castro CG 2012

Redes Poligonales

• Los escáners láser muestrean posiciones 3D

Creación de Objetos Poligonales mediante escaneo

– Pueden triangularse directamente

– Pueden tomarse imágenes para usarse como texturas

– Ejemplo famoso: Escaneo del David

• El software toma entonces miles de puntos y construye una red poligonal a partir de éstos

• Tópicos que se investigan:

– Reducir la cantidad de puntos en la red

– Reconstrucción y remuestreo

Silvia Castro CG 2012

Page 35: El Mundo 3D - cs.uns.edu.ar

35

Redes Poligonales

Creación de Objetos Poligonales

Ejemplo de uso de un dispositivo automático

Silvia Castro CG 2012

Redes Poligonales

Silvia Castro CG 2012

http://www-graphics.stanford.edu/projects/mich/

Page 36: El Mundo 3D - cs.uns.edu.ar

36

Redes Poligonales

• Definir un polígono por medio de sus lados• Arrastrar éste a lo largo de un camino

Creación de Objetos Poligonales por Sweeping

• El camino recorrido por los lados permite generar la superficie. • Casos especiales

– Superficie de revolución: Rotar lados alrededor de un eje– Extrusión: Arrastrar a lo largo de una línea recta

Silvia Castro CG 2012

Redes Poligonales

Creación de Objetos Poligonales por Sweeping

Ejemplo:

perfil camino objeto

Silvia Castro CG 2012

escalado torsionado

Page 37: El Mundo 3D - cs.uns.edu.ar

37

Redes Poligonales

Creación de Objetos Poligonales

Generar un objetos por sweeping utilizando, en

algunos casos, descripciones matemáticas.g , p

perfil camino objetoExtrusión

Silvia Castro CG 2012

RevoluciónFree-Form

Redes Poligonales

Sweep más general:

• El camino puede ser cualquier curva

• El polígono que es arrastrado puede transformarse a medidaque se mueve a lo largo del caminoque se mueve a lo largo del camino

– Escalado, rotado con respecto a la orientación del camino, …

• Una manera habitual de especificación es:

– Dar una polilínea como el camino

– Dar una polilínea como la forma que se arrastrará

Dar una transformación para aplicar en cada uno de los– Dar una transformación para aplicar en cada uno de los vértices del segmento del camino

• Es muy dificultoso evitar la auto-intersección

Silvia Castro CG 2012

Page 38: El Mundo 3D - cs.uns.edu.ar

38

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 39: El Mundo 3D - cs.uns.edu.ar

39

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 40: El Mundo 3D - cs.uns.edu.ar

40

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 41: El Mundo 3D - cs.uns.edu.ar

41

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 42: El Mundo 3D - cs.uns.edu.ar

42

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 43: El Mundo 3D - cs.uns.edu.ar

43

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 44: El Mundo 3D - cs.uns.edu.ar

44

Silvia Castro CG 2012

Silvia Castro CG 2012

Page 45: El Mundo 3D - cs.uns.edu.ar

45

Silvia Castro CG 2012

Modelado de Objetos 3D

Objeto Gráfico

Silvia Castro CG 2012

Page 46: El Mundo 3D - cs.uns.edu.ar

46

Modelado de Objetos 3D

Modelado del ObjetoIdentificar las clases Describir los atributos yDescribir los atributos y

los métodos (constructor/es, comandos,consultas) en cada clase

Establecer las relaciones entre las clases

Crear las clases

Silvia Castro CG 2012

Modelado de Objetos 3D

Silvia Castro CG 2012

Page 47: El Mundo 3D - cs.uns.edu.ar

47

Modelado de Objetos 3D

Silvia Castro CG 2012

Modelado de Objetos 3D

Silvia Castro CG 2012

Page 48: El Mundo 3D - cs.uns.edu.ar

48

Modelado de Objetos 3D

GeometríaTopologíaAtributos

Formas Gráficas

Objeto Gráfico

Complejas

Primitivas Complejas

Primitivas

Mallas predefinidas Mallas definidas por el usuario

Red Poligonal Sup Paramétrica …

Silvia Castro CG 2012

Esfera Cubo Toroide

Modelado de Objetos 3D

ObjetoGráfico

<<Atributos>>privatepartes: colección de FormaGráfica:

<<Constructores>>

<<Comandos>>

<<Consultas>>

Silvia Castro CG 2012

Page 49: El Mundo 3D - cs.uns.edu.ar

49

Modelado de Objetos 3D

FormaGráfica

<<Atributos>>private

matTransf: TransformaciónmatTransf: Transformaciónmat:Material

<<Constructores>>

<<Comandos>>

<<Consultas>>

Silvia Castro CG 2012

Modelado de Objetos 3D

Esfera

<<Atributos>>private

radio: realradio: realresH, resV: entero

<<Constructores>>Esfera()Esfera(r:real)Esfera(r:real, resH, resV:entero)

<<Comandos>>setRadio(r: real)...dibujarEsfera()

Silvia Castro CG 2012

j ()

<<Consultas>>getRadio(): real…

Page 50: El Mundo 3D - cs.uns.edu.ar

50

Modelado de Objetos 3D

Red Poligonal

<<Atributos>>private

vertices: Secuencia (acceso directo) de Pto3DLas secuencias normales: Secuencia (acceso directo) de Vectores3D;

caras: secuencia de Cara

<<Constructores>>

<<Comandos>>

leerRedPoligonal(nombre:cad): RedPoligonal

guardarRedPoligonal(nombre:cad)

CaraSecuencia de indVerticeindNormal

Las secuencias deben ser de

acceso directo

Silvia Castro CG 2012

dibujarRedPoligonal()

<<Consultas>>

Modelado de Objetos 3D

Red Poligonal

<<Atributos>>private

vertices: Secuencia (acceso directo) de Pto3DLas secuencias normales: Secuencia (acceso directo) de Vectores3D;

caras: secuencia de Cara

<<Constructores>>

<<Comandos>>

leerRedPoligonal(nombre:cad): RedPoligonal

importarRedPoligonal(nombre:cad): RedPoligonal

guardarRedPoligonal(nombre:cad)

CaraSecuencia de indVerticeindNormal

Las secuencias deben ser de

acceso directo

Silvia Castro CG 2012

dibujarRedPoligonal()

<<Consultas>>

Page 51: El Mundo 3D - cs.uns.edu.ar

51

Modelado de Objetos 3D

ObjetoGráfico FormaGráfica*

RedPoligPto3D

Vec3D**

*…Cubo Esfera … …

Silvia Castro CG 2012

Caras

IndVert*

?

Modelado de Objetos 3D

perfil camino objeto

Silvia Castro CG 2012

Page 52: El Mundo 3D - cs.uns.edu.ar

52

Modelado de Objetos 3D

Cómo generamos un objeto 3D mediante sweeping:

• Partir de un polígono inicial

– Dividir el camino en pequeños segmentos

– Crear una copia del polígono que se arrastra en cada segmento

– Unir los vértices correspondiente entre polígonos

– Tener cuidado al cerrar. En las extrusiones debe verse si se ponen tapas

• Las normales se derivan a medida que se hace el arrastrado y se ve la orientación del camino

• El polígono de arrastre define un parámetro de textura y el camino por el cual se arrastra define el otro

Silvia Castro CG 2012

Modelado de Objetos 3D

Red Sweep

<<Atributos>>privatecamino: Poligonalperfil: Poligonaltapas?

<<Constructores>>

<<Comandos>>

<<Consultas>>

Silvia Castro CG 2012

Page 53: El Mundo 3D - cs.uns.edu.ar

53

Modelado de Objetos 3D

Red Sweep Revolución

<<Atributos>>privatecamino: Poligonal ?perfil: Poligonaltapas?

<<Constructores>>

<<Comandos>>

<<Consultas>>

Paso

Silvia Castro CG 2012

Modelado de Objetos 3D

Red Sweep Arrastre

<<Atributos>>privatecamino: Poligonal o distanciaperfil: Poligonal

<<Constructores>>

<<Comandos>>

<<Consultas>>

Silvia Castro CG 2012

Page 54: El Mundo 3D - cs.uns.edu.ar

54

Redes Poligonales

Ejercicio: Generación de un cuerpo extrudado

Dado el polígono base que se muestra en la figura de la derecha ysuponiendo que realiza una extrusión en la dirección z, ¿cómo define elp q , ¿modelo para el volumen generado? ¿Cuáles serían los datosnecesarios para generar el prisma? ¿Qué datos de salida debengenerarse?

Silvia Castro CG 2012

Redes Poligonales

Ejercicio: Generación de un cuerpo extrudado

Vemos que la base tiene vértices (xi, yi, 0) y la cara superiortiene vértices (xi yi 1) Cada vértice (xi yi 1) de la cara superior estátiene vértices (xi, yi, 1). Cada vértice (xi, yi, 1) de la cara superior estáconectado con el correspondiente vértice (xi, yi, 0) de la base.

Como el polígono tiene 6 lados, hay 6 caras verticales del prisma más lacara de arriba (cap) y la de abajo (base), es decir, 8 caras en total. Lasnormales al prisma son las normales a las caras.

Silvia Castro CG 2012

Page 55: El Mundo 3D - cs.uns.edu.ar

55

Redes Poligonales

Ejercicio: Generación de un cuerpo extrudado

Supongamos que la base del prisma es un polígono de n vértices (xi, yi).Entonces numeramos los vértices de la base de 0, . . . , n-1 y los de la tapad 2 1 d d t l l l d l é ti i ide n, . . ., 2n -1, de modo tal que los lados unan los vértices i y i + n.

La lista de vértices se construye entonces fácilmente conteniendo los puntos(xi, yi, 0) y (xi, yi, 1), for i = 0, 1, ..., 5.

Silvia Castro CG 2012

Cuidado! OpenGL puede dibujar de manera confiable sólo polígonosconvexos. ¿Cómo almacenamos entonces este prisma?

Redes Poligonales

Ejercicio: Generación del domo del Taj Mahal

La generación de un sólido por revolución es equivalente a rotar unapolilínea alrededor de un eje, como se muestra en la figura.

Silvia Castro CG 2012

Page 56: El Mundo 3D - cs.uns.edu.ar

56

Redes Poligonales

• Dibujar la copa a partir de la polilínea(a) Pj = (xj, yj, 0).

• Para rotar la polilínea a k ángulosi i d l d d d l jequiespaciados alrededor del eje y

debemos variar: θi = 2πi/k, i = 0, 1, 2,…, k y obtener los vértices a partir deaplicar la transformación M.

0010

0)sin(0)cos( ii

M

Silvia Castro CG 2012

1000

0)cos(0)sin( ii

M

Redes Poligonales

Ejercicio: Generación del domo del Taj Mahal

La curva perfil está en el plano xz y a la derecha de ésta se muestra lasuperficie de revolución resultante. El perfil debe describirse medianteuna colección de puntos Pi = (xi, zi).

Silvia Castro CG 2012

Page 57: El Mundo 3D - cs.uns.edu.ar

57

Redes Poligonales

Ejercicio: Generación de unToroide

Las variables requeridas para darle forma son dos radios: el interior y elexterior y además la cantidad de divisiones latitudinales ylongitudinales. Dados ambos radios y la cantidad de divisioneslatitudinales y longitudinales, generar un toroide.

Silvia Castro CG 2012

Esfera genérica

• Centro (0, 0, 0), radio 1

• F(x, y, z) = x2 + y2 + z2 -1 = 0

• P(u, v) = (cos v cos u, cos v sin u, sin v), con 0 ≤v ≤ 2π, ( , ) ( , , ), ,

-π/2 ≤ u ≤ π/2

Silvia Castro CG 2012

Page 58: El Mundo 3D - cs.uns.edu.ar

58

Cuádricas

Ejercicio: Cuádricas

En la figura se muestran distintas cuádricas y susecuaciones implícitas y paramétricas. Elija una deellas y genere la red poligonal.

Silvia Castro CG 2012

Cuádricas

Ejercicio: Super Cuádricas

En la figura se muestran distintas SuperCuádricas y sus ecuaciones implícitas yy p yparamétricas. Elija una de ellas y generela red poligonal.

Silvia Castro CG 2012

Page 59: El Mundo 3D - cs.uns.edu.ar

59

Almacenamiento de modelos 3D…

Hay muchos formatos que permiten guardar la información contenida enun archivo 3D.

Muchos de los formatos existentes que contienen descripciones de laMuchos de los formatos existentes que contienen descripciones de lageometría de los objetos son exclusivos de programas específicos y noson portables.

Los formatos de archivos para transportar información geométrica entreprogramas de modelado se denominan a menudo formatos de archivouniversales. Los más populares son los OBJ y DXF.

El OBJ (Object) fue popularizado por los productos de Alias/Wavefront

Silvia Castro CG 2012

para la producción de animaciones y efectos visuales. El DXF (DrawingInterchange Format) fue desarrollado por Autodesk para manejarinformación geométrica 2D y 3D y es ampliamente utilizado enaplicaciones CAD (Computer Aided Design).

… Almacenamiento de modelos 3D…

Aún cuando se usen formatos universales para guardar información 3D,hay pequeñas diferencias en cómo diferentes programas interpretan lainformación.

Los archivos DXF, por ejemplo, contienen determinada información 2Dque a menudo es descartada cuando se importa en software 3D.

La mayoría de los programas 3D ofrecen algún grado de conversión dearchivos. Esto se brinda mayormente a través de la exportación y laimportación.

Los programas, cuando cargan el arhivo, lo convierten habitualmente a

Silvia Castro CG 2012

formas nativas.

Ocurre habitualmente que, por ejemplo, no todos los aspectos de undeterminado formato son soportados por todos los programas que soncapaces de leer archivos de ese formato. Ej: transparencias.

Page 60: El Mundo 3D - cs.uns.edu.ar

60

Silvia Castro CG 2012