Representacin tridimensional de objetos
mat-610
Tipos de modelado de objetos 3D
Las escenas en Computer Graphics pueden contener diferentes tipos de objetos No existe un mtodo nico para describir todos estos objetos. Modelos exactos producen el dibujo adecuado y realista de la escena.
Tipos de modelado de objetos 3D
Supercies poligonales y cuadrticas Supercies con splines Tcnicas de geometra constructiva de slidos. Construcciones fractales y sistemas de partculas. Mtodos de modelado basados en la fsica. Octrees ...
Objetos slidos en 3D
Los mtodos de representacin de objetos slidos en 3D se pueden dividir en dos categoras: Representacin de contornos (boundary representations o B-reps) : caras poligonales y parches con splines. Representaciones de divisin del espacio (space partitioning representations) : describen las propiedades interiores del slido
Supercies poligonales
Es la representacin ms frecuente para representar el exterior de objetos tridimensionales. Todas las supercies se pueden describir con ecuaciones lineales. Son las representaciones ms ecientes computacionalmente y por ello todos los sistemas de grcos lo utilizan como primitivos. Se describen por medio de una lista de vrtices para describir sus caras y las normales a la supercie en cada cara.
Tablas poligonales
Especican una supercie poligonal Tablas geomtricas coordenadas geomtricas orientacin espacial del polgono
#VRML V2.0 utf8
Tablas de atributos grado de transparencia reexin de la supercie textura
Group { children [ ! Group { ! }, ! Transform { ! center! 0.0136469 0.234864 4.43675 ! children [ ! ! Shape { ! ! appearance ! ! ! Appearance { ! ! ! material ! ! ! ! DEF _v2%1 Material { ! ! ! ! diffuseColor! 1 1 1 ! ! ! ! }} ! ! geometry ! ! ! IndexedFaceSet { ! ! ! coord ! ! ! ! Coordinate { ! ! ! ! point! [ -0.009301 0.072485 9.20125, ! ! ! ! ! ! -0.026915 0.029826 9.20255, ! ! ! ! ! ! -0.093361 0.051964 9.17507, ! ! ! ! ! ! -0.062586 0.126495 9.17275, ! ! ! ! ! ! 0.150949 0.029826 9.20255,
Dene un poliedro precisamente Para objetos que no son poliedros, las supercies son divididas (tesselated) usados comunmente en diseo y modelado de slidos. El modo wireframe puede dibujar el contorno del objeto muy rapidamente.
#VRML V2.0 utf8 Group { children [ ! Group { ! }, ! Transform { ! center! 0.0136469 0.234864 4.43675 ! children [ ! ! Shape { ! ! appearance ! ! ! Appearance { ! ! ! material ! ! ! ! DEF _v2%1 Material { ! ! ! ! diffuseColor! 1 1 1 ! ! ! ! } ! ! ! } ! ! geometry ! ! ! IndexedFaceSet { ! ! ! coord ! ! ! ! Coordinate { ! ! ! ! point! [ -0.009301 0.072485 9.20125, ! ! ! ! ! ! -0.026915 0.029826 9.20255, ! ! ! ! ! ! -0.093361 0.051964 9.17507, ! ! ! ! ! ! -0.062586 0.126495 9.17275, ! ! ! ! ! ! 0.150949 0.029826 9.20255, ! ! ! ! ! ! 0.133335 0.072485 9.20125, ! ! ! ! ! ! 0.18662 0.126495 9.17275, ! ! ! ! ! ! 0.217395 0.051964 9.17507, ! ! ! ! ! ! 0.150949 -0.021966 9.20255, ! ! ! ! ! ! 0.217395 -0.038525 9.17507, ! ! ! ! ! ! 0.18662 -0.121483 9.17275, ! ! ! ! ! ! 0.133335 -0.069448 9.20125, ! ! ! ! ! ! 0.101596 0.099054 9.19958, ! ! ! ! ! ! 0.131166 0.172913 9.16978, ! ! ! ! ! ! 0.062017 0.107775 9.19878, ! ! ! ! ! ! 0.062017 0.18815 9.16847, ! ! ! ! ! ! 0.022439 0.099054 9.19958, ! ! ! ! ! ! -0.007132 0.172913 9.16978,
Funciones de Poliedros en OpenGL
Hay dos mtodos de especicar polgonos en OpenGL. usar las primitivas de polgonos de OpenGL
GL_POLYGON, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP.
Funciones primitivas de poliedros GLUT. pirmide triangular de cuatro lados regular. Poliedro con centro en el origen del mundo y radio de !3.
glutWireTetrahedron() o glutSolidTetrahedron() : glutWireCube(edgeLength) o glutSolidCube(edgeLength) :
poliedro hexagonal
regular. Cubo centrado en el origen.
Slidos Platnicos
poliedro rectangular de ocho lados con caras triangulares equilteras y radio 1.0.
glutWireOctahedron() o glutSolidOctahedron(): glutWireDodecahedron() o glutSolidDodecahedron() :
poliedro regular
con doce caras y centrado en el origen.
glutWireIcosahedron() o glutSolidIcosahedron() :
poliedro regular de
veinte caras regulares centrado en el origen. Ejemplo ...
Supercies curvas
Las ecuaciones de objetos con supercies curvas se pueden expresar de forma paramtrica y no paramtrica. Los objetos que se utilizan comnmente en Computer Graphics incluyen supercies cuadrticas, supercuadrticas, funciones exponenciales y polinomiales y supercies spline. Supercies cuadrticas: se describen por medio de ecuaciones de segundo grado, incluyen esferas, elipsoides, toros, paraboloides e [Link] de estas supercies se encuentran ya implementadas en los paquetes de grcos. Esfera: En coordenadas cartesianas una supercie esfrica con radio r centrado en el origen se dene como un conjunto de puntos (x,y,z) que satisface la ecuacin:
x2 + y 2 + z 2 = r2
10
Esfera
Se puede describir una supercie esfrica en forma paramtrica, usando ngulos de latitud y longitud.
eje z
P = (x,y,z)
! eje y " eje x
x = r cos cos y = r cos cos z = r sin
/2 /2
eje z
O en coordenadas polares donde el ngulo " se especica como la co-latitud.
P eje y
" eje x
0 2
11
Elipsoide
Una supercie elipsoidal se describe como la extensin de una supercie esfrica, donde los radios de tres direcciones mutuamente perpendiculares tienen valores distintos.
La representacin cartesiana de puntos sobre la supercie de un elipsoide centrado en el origen es: x2 y2 z2 + + =1 rx ry rz Y la representacin de un elipsoide en trminos de ngulos de latitud y longidud es: x = rx cos cos /2 /2 y = ry cos sin z = rz sin
12
Toro
Generalmente se describe como la supercie generada al rotar un crculo o elipse alrededor de una lnea coplanar externa a la cnica. Los parmetros para denir un toro son: la distancia del centro de la cnica al eje de rotacin y las dimensiones de la cnica.
eje x eje z
(0,y,z) r ! 0 eje z
eje y
raxial
Vista frontal
Vista lateral
La ecuacin de la seccin transversal del crculo de la vista lateral es:
(y raxial )2 + z 2 = r2
13
Toro
Rotar el crculo alrededor del eje z produce el toro cuyas posiciones en la supercie estn descritas por la ecuacin: 2 x2 + y 2 raxial + z 2 = r2
x = (raxial + r cos ) cos y = (raxial + r cos ) sin z = r sin
y las ecuacines paramtricas correspondientes para el toro son:
14
Supercuadrticas
Generalizacin de las supercies cuadrticas incorporan parmetros adicionales en las ecuaciones cuadrticas. el nmero de parmetros adicionales es igual a la dimensin del objeto. Superelipse:
15
Cuadrticas en OpenGL
Varios slidos con supercies cuadrticas estn implementados en las libreras OpenGL Utility Toolkit (GLUT) y en la OpenGL Utility (GLU). GLUT tiene adems una funcin para dibujar una forma de tetera que se dene como una supercie formada de parches cbicos. Funciones de GLUT:
glutWireSphere(r,nLongitudes,nLatitudes); o glutSolidSphere(r,nLongitudes,nLatitudes) glutWireSphere( GLdouble radius, GLint slices, GLint stacks );
donde r es el radio de la esfera. Los parmetros nLongitudes y nLatitudes se usan para seleccionar el nmero de lneas de latitud y longitud que aproximan a la esfera con la malla de cuadrilteros.
glutWireCone(GLdouble base,GLdouble height,GLint slices,GLint stacks); glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 16
Primitivas de GLUT
17
Primitivas de GLU
18
Otras estructuras para modelado 3D
mat-610
Blobby Objects
Tcnica para modelar objetos con estructura no-rigida como lquidos, molculas o msculos. Estos objetos cambian las caractersticas de sus supercie al efectuar ciertos movimientos o en proximidad con otros objetos. Una forma molecular se puede modelar como una esfera mientras est aislada, al estar cerca de otra molcula su forma va a cambiar hasta unirse a la otra molcula. Un msculo humano se deforma pero preserva el volumen durante esta deformacin.
20
Denicin de Blobby objects
Combinacin de funciones de densidad Gaussianas:
Gaussiana en 3D centrada en la posicin 0 con altura b y desviacin estndar a.
2 2 2 = x2 + y + z donde rk k k k , el parmetro T es un umbral denido y los parmetros ak y bk se usan para ajustar la deformacin de los componentes individuales de la [Link] negativos de bk se pueden usar para producir hendiduras en lugar de salientes.
21
Una funcin de supercie se dene entonces como: 2 ak rk f (x, y, z ) = bk e T =0
k
En el valor del umbral, se utilizan tcnicas numricas para encontrar races para encontrar los valores donde intersectan las funciones. Otros mtodos para generar metaballs usan funciones de densidad que llegan a 0 en intervalos nitos en lugar de exponencialmente. El modelo de metaball describe objetos compuestos como combinacin de funciones cuadrticas de densidad de la forma:
2 3r d b 1 , if 0 < r d2 3 f (r) = 3 r 2 d b 1 , if <rd 2 d 3 0, if r > d
22
El modelo de objeto suaves (soft-object) utiliza la funcin:
f (r) = 1 0,
22r 2 9d2
17r 4 9d4
4r 6 9d6 ,
if 0 < r d if r > d
23
[Link]
Sistemas de particulas
Para simular explosiones, fuego, humo, hojas que caen, nieve, cabello, pasto, nubes, etc. La simulacin se controla con un emisor. Sus parmetros darn las caractersticas del efecto producido. El emisor es por lo general un objeto geomtrico como una malla poligonal, un plano, un cubo, etc. Entre los parmetros del emisor se encuentran: el nmero de partculas en la simulacin, el vector de velocidad inicial de las partculas, el tiempo de vida de las partculas, el color de las partculas, etc.
24
Sistemas de partculas
Un sistema de partculas tiene dos etapas: Etapa de simulacin: actualiza cada paso de la trayectoria de las partculas. Etapa de rendering: dibuja el resultado de la simulacin, utiliza primitivas como metaballs o cuadrilteros que siempre estn orientados hacia el observador para acelerar el despliegue.
25
imgenes de wikipedia
Splines
Pierre Bzier
26
Splines
Curva denida a trozos por polinomios. Sus primera y segunda derivadas son continuas en las diferentes secciones de la curva. En CG se habla de curvas splines cualquier curva polinomial por partes con ciertas restricciones en la frontera de las secciones. Una supercie spline se puede describir con dos conjuntos de curvas spline ortogonales.
27
Splines: interpolacin vs. aproximacin
Para denir una spline se especican posiciones llamadas puntos de control, que indicarn la forma general de la curva. Estas coordenadas de posicin se incluyen en una curva continua en pedazos de dos maneras, por interpolacin o por aproximacin:
Interpolacin: la curva pasa por todos los puntos de control. Aproximacin: la curva no pasa por los puntos de control. El contorno formado por el envolvente de los puntos de control se conoce como el envolvente convexo (convex hull) de la spline.
28
Splines: grafos de control
El grafo de control de una spline es la polilnea que los puntos de control de la spline. Ayuda al modelador a tener control de la spline.
29
Splines: condiciones de continuidad paramtrica
Para asegurar la transicin suave de una seccin de spline parametrizada a la siguiente imponemos condiciones de continuidad en los puntos frontera. En cada seccin la curva se describe con un conjunto de funciones paramtricas de la forma:
x = x(u), y = y (u), z = z (u), u1 u u2
Aseguramos la continuidad paramtrica igualando las derivadas paramtricas de secciones adyacentes de la curva en su frontera comn. Continuidad paramtrica de orden cero ( C0 ) signica que las curvas tienen una frontera comn. Los valores de x,y,z son evaluados en u2 para la primera curva y son iguales a los valores de x,y,z evaluados en u1 de la segunda curva.
30
Continuidad paramtrica de primer orden (C1). La primera derivada paramtrica (tangente) de las funciones paramtricas de dos secciones sucesivas son iguales en el punto de unin.
Continuidad paramtrica de segundo orden (C2). La primera y la segunda derivada paramtrica (tangente y curvatura) son iguales en el punto de interseccin.
31
Curvas splines
mat-610
Segmentos de curva
Cmo se modela un segmento de curva? Se puede representar como una polilnea pero... se ve mal si tiene pocas muestras, adecuada con un muestreo denso.
problemas si la editamos. Solucin: usar polinomios.
33
Terminologa
Ecuaciones polinomiales: que solo contienen trminos elevados a una potencia (no sin, cos, log ...) Ecuaciones lineales: la potencia mxima es 1. Ecuaciones cuadrticas: la potencia mxima es 2. Ecuaciones cbicas: la potencia mxima es 3. Las ms comunes en CG. Continuidad: qu tan bin se comporta una curva continuidad en posicin o de orden cero C0: para un valor arbitrariamente cercano a x0 la funcin est arbitrariamente cercana a f(x0). continuidad en la pendiente o de primer orden C1: la pendiente de la curva es continua. continuidad en la curvatura o de segundo orden C2: la curvatura es continua.
34
Propiedades por pedazos (piecewise): cuando una curva est formada de segmentos individuales de curvas. polilnea: secuencia de curvas de primer orden. Continuidad paramtrica Continuidad posicional en las fronteras: la frontera u1 de la curva 1 coincide con la frontera u0 de la curva 2. Continuidad tangencial o de segundo orden en la frontera: la tangente inicial de la segunda curva es igual a la tangente nal de la primera curva. Continuidad de curvatura o de tercer orden en la frontera: la curvatura inicial de la segunda curva es igual a la curvatura nal de la primera. Continuidad geomtrica (menos restrictiva) de primer orden: la direccin de las tangentes en las fronteras debe ser igual pero su magnitud puede variar.
35
Curva Interpolada: cuando una curva se construye a partir de un conjunto de puntos y la curva pasa por todos ellos. Curva Aproximada: cuando los puntos se utilizan para controlar la forma general de la curva pero sta no pasa necesariamente por ellos. Frecuentemente se utiliza el trmino interpolacin para hablar de todas las curvas construidas a partir de un conjunto de puntos. Para una tcnica de interpolacin dada, si la curva resultante garantiza estar dentro del envolvente convexo del conjunto de puntos de control, se dice que tiene la propiedad de envolvente convexo (convex-hull property).
36
Splines
Curva suave denida por puntos de control. Mover los puntos de control cambia la forma de la curva.
Interpolacin
Bzier (aproximacin)
Bspline (aproximacin)
37
Tipos de Splines
Segn la eleccin de representacin de la spline, por ejemplo: usando funciones bases para toda la curva (B-splines) usando polinomios de Bernstein para representar cada polinomio (Bzier splines) Segn la eleccin del espaciamiento entre nudos (knots): espaciando los nodos uniformemente en el dominio [a,b) (splines uniformes) sin restriccin sobre cmo espaciar los nodos (splines no-uniformes) Otras restricciones: restringiendo derivada de segundo orden = 0 en a y b (natural splines) requiriendo que valores dados estn sobre la spline (interpolating splines) 38
Segmentos de curva
Interpolacin lineal (linear blend). Curva ms simple entre dos puntos. Combinacin afn de puntos.
P1 P0 t =0 P01 t =1
P01(t) = (1-t)P0 + tP1
Qx (t) 1 Qy (t) Q(t) = = ((P0 )(P1 )) 1 Qz (t)
1 0
t 1
Q(t) = GBT(t) = Geometry G ! Spline basis B ! Power Basis T(t)
39
Segmentos de curva
Cul es la derivada Q(t) con respecto a t? Qx (t) 1 1 t Qy (t) Q(t) = = ((P0 )(P1 )) 1 0 1 Qz (t)
P01(t) = (1-t)P0 + tP1 Q(t) = GBT(t) = Geometry G ! Spline basis B ! Power Basis T(t) Q(t) = GBT(t)
40
Segmentos de curva
Q(t) = (1 t)P0 + tP1
forma geomtrica: P0 y P1 estn explcitos en la ecuacin. Se usa cuando los puntos se reemplazan frecuentemente. forma algebrica: los trminos se renen de acuerdo a los coecientes de las variables elevadas a una potencia. til para evaluar en diferentes valores del parmetro t. F
T
Q(t) = (P1 P0 )t + P0 Q(t) = a1 t + a0
representacin matricial:
funciones de blending
Q(t) =
F0 (t) F1 (t)
[P0 P1 ] = F B 1 1 1 0
Q(t) = [t 1]
a1 a0
= TTA
Q(t) = [t 1]
P0 P1
41
= TT MB = FB = TT A
Interpolacin de curvas
La curva se restringe a pasar por todos los puntos de control. Dados los puntos P0, P1, ... , Pn, encontrar el polinomio de grado ms bajo que pase por todos los puntos.
x(t) = an1 tn1 + + a2 t2 + a1 t + a0 y (t) = bn1 tn1 + + b2 t2 + b1 t + b0
Interpolacin
42
Aproximacin
Segmentos de curva
Mezcla cuadrtica (quadratic blend) P01(t) = (1-t)P0 + tP1 P11(t) = (1-t)P1 + tP2 P02(t) = (1-t)P01(t) + tP11(t) P1 P11 P01 P0 P02 P2
43
Segmentos de curva
Mezcla cbica (cubic blend) P01(t) = (1-t)P0 + tP1 P11(t) = (1-t)P1 + tP2 P21(t) = (1-t)P2 + tP3 P02(t) = (1-t) P01(t) + t P11(t) P12(t) = (1-t) P11(t) + t P21(t) P03(t) = (1-t) P02(t) + t P12(t)
P03
P1 P01 P 2 P0 0 P0
P11
3
P2
2
(1-t) P02 (1-t) P01 t (1-t) P11 (1-t) P10 P1 t
t P12 t P21 (1-t) P20 P2 t P30 P3
P1
P21 P3
(1-t) P00 P0
44
Curvas de Bzier
Curvas cbicas de Bzier: 4 puntos de control. La curva pasa por el primer y el ltimo puntos de control. La curva es tangente en P0 a (P0-P1) y en P4 a (P4-P3).
P2 t=1 P4 P1 t=0 P3 P3 t=0 P1 P2 t=1 P4
45
P2
P3 P4 t=1
t=0 P1
Algoritmo de Casteljau
[Link] los puntos Pi con segmentos de recta. [Link] los t:(1-t) puntos de esos segmentos con segmentos de recta. [Link] mientras sea necesario. [Link] punto t:(1-t) en el segmento de recta nal es un punto sobre la curva. [Link] segmento de recta es tangente a la curva en t.
P20 P11 t P02 P10 t P21 t t P03 P12 t
P01 t P00
46
P30
Curvas de Bzier Cbicas
P2
t=1 P4 P1 t=0 P3
B1 (t) = (1 t)3 ; B2 (t) = 3t(1 t)2 ; B3 (t) = 3t2 (1 t); B4 (t) = t3
47
Q(t) = (1 t)3 P1 + 3t(1 t)2 P2 + 3t2 (1 t)P3 + t3 P4 1 3 3 1 3 6 3 0 Q(t) = GBT(t) BBezier = 3 3 0 0 1 0 0 0
48
[Link]
Representaciones por barrido (Sweep)
til para representar objetos con simetras translacionales o rotacionales. Se especican deniendo una forma 2D y haciendo un barrido de sta en una regin del espacio. Por ejemplo, la spline peridica dene un corte transversal del objeto. Hacemos un barrido translacional para una distancia especca moviendo los puntos p0 a p3 en un camino en lnea recta para obtener el slido 3D.
p1 p2 v u P(u,v) P(u) p0 p3
49
El camino de barrido puede ser tambin una rotacin alrededor de algn eje, una spline, etc. En general se describe la forma en 2D, se especica la forma del camino y nalmente la distancia barrida para formar el slido. Se puede variar la forma o la orientacin de la gura 2D a lo largo del camino para describir slidos ms complicados.
50
Geometra constructiva de slidos (CSG)
Modelar slidos compuestos de varias primitivas tridimensionales y operaciones de conjuntos. Un objeto nuevo se puede crear aplicando la unin, interseccin o diferencia entre slidos.
objeto 3
Objeto CSG
objeto 1 oper 3 oper 1
oper 2
objeto 2
objeto 4 objeto 2
51
Mtodos de Ray Casting
Mtodo para determinar los objetos que intersectan las lneas paralelas que salen del plano xy en direccin de z. Este plano se conoce como plano de disparo. Cada rayo se origina de la posicin de un pixel. Se calcula la interseccin de cada rayo con las supercies y los puntos de interseccin son ordenados relativos a la distancia al plano de disparo. Los lmites del objeto compuesto se determinan con la operacin de conjuntos determinada.
Operacin Unin Interseccin Diferencia (obj2 - obj1) Lmites de la supercie A, D C, B B, D 52
x,y
obj 1 obj 2 A Plano de disparo z C B D Rayo del pixel
Ray Casting
Cada primitiva del slido compuesto se dene en coordenadas del modelo (locales). Las posiciones de estos en coordenadas del mundo (globales) se determinan por matrices de transformacin del modelo. Las transformaciones inversas se utilizan para transformar los rayos de cada pixel a coordenadas del modelo, donde se realizan las operaciones de interseccin para cada primitiva. Finalmente se ordenan los puntos de interseccin de los objetos que se traslapan de acuerdo a la distancia sobre el rayo y de acuerdo al tipo de operacin de conjuntos. Este procedimiento se repite por cada par de objetos que deben combinarse en un rbol CSG para formar un nuevo objeto.
53
Tron (1982)
54
Wolfstein 3D (1992)
55
Octrees
Estructuras jerrquicas en rbol que se utilizan para representar el interior de un volumen. Cada nodo corresponde a una regin del espacio en 3D. Esta representacin de slidos aprovecha de la coherencia espacial para reducir los requerimientos de almacenamiento para objetos 3D. Es una extensin de el esquema de representacin en 2D llamado Quadtrees. Los Quadtrees se usan frecuentemente para codicar regiones con color
Cuadrante 0
Cuadrante 1
Cuadrante 2
Cuadrante 3
Estructura de datos que representa el nodo del Quadtree
Regin de un espacio 2D
56
Quadtrees
Una codicacin por quadtrees proporciona ahorros importantes en la memoria necesaria para codicar zonas grandes de un mismo color. Para un rea que contiene 2n x 2n pixels una representacin con quadtrees contiene a lo ms n niveles. En cada nodo del quadtree tiene a lo ms cuatro descendientes inmediatos. Un esquema de representacin con octrees divide una regin del espacio 3D en octantes. Tiene una estructura de datos con 8 elementos.
57
(1,0,0) (1,0,0) (1,0,0)
(1,0,0) (1,0,0) (1,0,0)
(1,0,0) (1,0,0) (1,0,0)
(1,0,0) (1,1,0) (1,0,0) (1,0,0)
Octrees
Las sub-regiones 3D mnimas de subdivisin se conocen como elementos de volumen o voxels en analoga con los pixels en una regin 2D. Un voxel en un octree almacena los valores de las propiedades de la regin 3D tal como son: color tipo de material densidad o cualquier otra caracterstica fsica. Son muy tiles para representar el interior de volmenes que no son fcilmente parametrizables. Tambin se utilizan para detectar colisiones en 3D.
58