Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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.
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
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.
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?
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
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
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.
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.
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.
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.
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
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
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
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
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?
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
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
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.
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
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
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.
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
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
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
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))
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
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
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
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
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
• ...
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
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
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
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
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/
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
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
38
Silvia Castro CG 2012
Silvia Castro CG 2012
39
Silvia Castro CG 2012
Silvia Castro CG 2012
40
Silvia Castro CG 2012
Silvia Castro CG 2012
41
Silvia Castro CG 2012
Silvia Castro CG 2012
42
Silvia Castro CG 2012
Silvia Castro CG 2012
43
Silvia Castro CG 2012
Silvia Castro CG 2012
44
Silvia Castro CG 2012
Silvia Castro CG 2012
45
Silvia Castro CG 2012
Modelado de Objetos 3D
Objeto Gráfico
Silvia Castro CG 2012
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
47
Modelado de Objetos 3D
Silvia Castro CG 2012
Modelado de Objetos 3D
Silvia Castro CG 2012
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
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…
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>>
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
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
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
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
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
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
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
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
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.
60
Silvia Castro CG 2012