Title: Grficas Interactivas
1Gráficas Interactivas
- Isaac Rudomín (Instructor)
- rudomin_at_itesm.mx
- Erik Millán (asistente)
- emillan_at_itesm.mx
2Bases
- Repaso de conceptos matemáticos.
- Proceso de Síntesis.
- Transformaciones
- Cuaterniones
- Proyecciones.
- Jerarquía y Grafo de Escena.
3Repaso de conceptos matemáticos
4Bases Matemáticas
- Geometría (2D, 3D)
- Trigonometría
- Espacios vectoriales y afines
- Puntos, vectores, coordenadas
- Producto punto y cruz
- Transformaciones lineales y matrices
5Geometría 3D
- Para modelar, animar y sintetizar la imagen
basados en escenas 3D, debemos especificar - Locación
- Desplazamiento a partir de locaciones arbitrarias
- Orientación
- Veremos 2 tipos de Espacios
- Vectoriales
- Afines
DL
6Espacios Vectoriales
- 2 tipos de elementos
- Escalars (números reales) a, b, g, d,
- Vectoress (n-eadas) u, v, w,
- 2 operaciones
- Suma u v
- Identidad 0 v 0 v
- Inversa - v (-v) 0
- Multiplicación escalar
- Regla distributiva a(u v) a(u) a(v)
- (a b)u au bu
DL
7Espacios Vectoriales
- Una combinación lineal de vectores resulta en
un nuevo vector - v a1v1 a2v2 anvn
- Si elúnico conjunto de escalares tal que
- a1v1 a2v2 anvn 0
- es a1 a2 a3 0
- decimos que los vectors son linealmente
independientes - La dimensión de un espacio es el mayor número de
vectores linealmente independientes. - Para un espacio vectorial de dimensión n,
cualquier conjunto de n vectores linealmente
independientes forma una base
DL
8Ejemplo, vectores en 2D
DL
9Vectores Base
- Dada una base para un espacio vectorial
- Cada vector en el espacio es una combinación
lineal única de los vectores base - Las coordenadas del vector son los escalares de
esta combinación lineal - Ejemplo coordenadas Cartesianas
- Un vector v tendrá diferentes coordenadas para
bases diferentes
DL
10Vectores y Puntos
- Usualmente usamos vectores para representar
- Puntos en el espacio (i.e., locación)
- Desplazamientos de punto a punto
- Dirección (i.e., orientación)
- Pero puntos y direcciones se comportan de manera
distinta - Ex transladar algo significa moverlo sin
cambiar su orientación
DL
11Espacios Afines
- Para ser mas rigurosos debemos definir
explicitamente la noción de posición - Los espacios afines agregan un tercer elemento a
los espacios vectoriales puntos (P, Q, R, ) - Puntos con las operaciones
- Substracción entre puntos Q - P v
- Resultado es un vector que apunta de P a Q
- Suma Vector-punto P v Q
- Resultado es un nuevo punto
- No se define la suma entre puntos
Q
v
P
DL
12Espacios Afines
- Los puntos, como los vectores, se expresan en
coordenadas - La definición utiliza una combinación afín
- El efecto neto es el mismo expresar un punto en
términos de una base - De aqui la práctica común de representar puntos
como vectores con coordenadas. - Análogamente a como se utilizan pointers y
enteros en C, hay que evitar operaciones sin
sentido
DL
13Líneas afines
- La representación paramétrica de una linea con
vector de dirección d y un punto P1 sobre la
linea - P(a) Porigin ad
- Restringiendo 0 ? a produces un rayo
- Haciendo d igual a P - Q y restringiendo
- 0 ? a ? 1 produce un segmento de linea entre P
yQ
DL
14Producto Punto
- El producto punto o, mas en general, producto
interno de dos vectores es un escalar - v1 v2 x1x2 y1y2 z1z2 (en 3D)
- Útil para
- Calcular la longitud de un vector
- length(v) sqrt(v v)
- Normalizar un vector, haciendolo de longitud
unitaria - Calcular el ángulo entre dos vectores
- u v u v cos(?)
- Verificar si dos vectores son ortogonales
- Proyectar un vector sobre otro
v
?
u
DL
15Aplicaciones del producto punto
- Si el producto punto de dos vectores no cero es 0
los dos son perpendiculares. - vx, vy, vz ux, uy, uz vxux vyuy vzuz
- V U cos ß
- SQRT(VV)SQRT(Vx2 Vy2 Vz2) V
RS
16Aplicaciones de producto punto (2)
- Si U1 y V es cualquier vector entonces U
V es la longitud de la proyección de V sobre U. - El ángulo entre los vectores V y W es
- ? cos-1( VW / (V W) )
v
?
u
RS
17Producto Cruz
- El producto cruz o vectorial de dos vectores es
un vector - El producto cruz de dos vectores es ortogonal a
ambos - La regla de la mano derecha dicta la dirección
del producto cruz
DL
18Producto Cruz (2)
- Otra definición
- UxV - VxU
- Length(UxV) V Wsin ?
- Buena para crear un sistema coordenado 3D
19Sistemas coordenados
Mano izquierda
Mano derecha
DB
20Transformaciones Lineales
- Una transformación lineal
- Mapea un vector en otro
- Preserva combinaciones lineales
- Por tanto el comportamiento de las
transformaciones lineales es completamente
determinado por lo que hace a la base - Resulta que cualquier transformación lineal puede
representarse por una matriz
DL
21Matrices
- Por convención, el elemento de la matriz Mrc se
localiza en la fila r y columna c - Por convención (OpenGL) vectores son columnas
DL
22Matrices
- Multiplicación Matriz-vector aplica una
transformación lineal a un vector - Recuerda como se hace una multiplicación de
matrices
DL
23Transformaciones matriciales
- Una secuencia o composición de transformaciones
lineales corresponde al producto de las matrices
correspondientes - Nota las matrices a la derecha afectan al
vector primero. El órden de las matrices importa! - La matriz identidad I no tiene efecto en el
producto - Algunas matrices (no todas) tienen una inversa
DL
24Ecuación paramétrica de una linea
t gt 1
- Dados dos puntos P1 (x1, y1, z1), P2 ( x2,
y2, z2) - x x1 t (x2 - x1)
- y y1 t (y2 - y1)
- z z1 t (z2 - z1)
- Dado un punto P1 y un vector V vx, vy, vz
- x x1 t vx, y y1 t vy , z
z1 t vz - FORMA COMPACTA L P1 tP2 - P1
o L P1 Vt
t 1
t 0
P2
t lt 0
P1
DB
25Ecuacion de un Plano
- Ax By Cz D 0
- dado Ax By Cz D 0 Entonces A, B, C
es un vector normal - Pf Dados dos puntos P1 y P2 en el plano, el
vector P2 - P1 está en el plano y A,B, C
P2 - P1 (Ax2 By2 Cz2) - (Ax1 B y1 Cz1)
( - D ) - ( - D )
0 - Forma Alterna A'x B'y C'z D' 0
- donde A' A/d, B' B/d, C' C/d, D'
D/d - d constante no cero
- Distancia entre punto y el plano es dada por A'x
B'y C'z D' (signo indica el lado)
DB
26Obtención de la ecuación del plano
- Para obtener la ecuación del plano dados tres
puntos P1, P2, P3 - P3 - P1 x P2 - P1 N, vector ortogonal
- Dado un punto general P (x,y,z)
- N P - P1 0 si P está en el plano.
- O bién, dado un punto dado un punto (x,y,z) en
el plano y el vector normal N entonces N
x,y,z -D
DB
27Ejemplo
- Encuentra el plano que contiene los puntos
(0,0,0), (1,2,3), y (4,5,6).
1,2,3 x 4,5,6 -3,6,-3 vector normal -3x
6y - 3z D 0 Substituye punto conocido
(0,0,0) 000D 0 D0 Ecuación del plano
-3x 6y - 3z 0
DB
28Vectores y Matrices
- Álgebra de matrices puede expresarse en forma
matricial - Producto punto
- Producto cruz
- Nota useregla de mano derecha!
DL
29Proceso de Síntesis
30El proceso de síntesis (Rendering Pipeline)
Parametros Modelo Camera
Rendering Pipeline
Framebuffer
Dispositivo
DL
31Rendering Pipeline 3-D
Grafo de escenageometría de objeto
- Resultado
- Vértices de escena en sistema coordenado de
mundo - Vértices sombreados según modelo de iluminación
- Vértices de escena en sistema de coordenadas de
vista o cámara - Vértices y pedazos de polígodo dentro de fustum
de vista - coordenadas de pantalla 2-D de vértices
recortados
Transformada Modelado
Cálculo iluminación
Transformada Vista
Recorte
Transformada Proyección
DL
32(No Transcript)
33Transformaciones
- Los pixeles están en espacio de pantalla
- Modelo está en espacio de modelo o de mundo
- Tres tipos de transformaciones geométricas
- Modelado
- Vista
- Proyección
DL
34Iluminación
- Illuminar la escena colorear pixeles según
alguna aproximación a la iluminación - Global resuelve la iluminación de toda la
escena a la vez - Local aproximación local ilumina cad polígono
por separado - Las gráficas interactivas generalmente usan
hardware y hacen solo iluminación local durante
la ejecución
DL
35Recorte
- Recortar una primitiva 3-D da su intersección con
el frustum de vista - Ver Foley van Dam sección 19.1
DL
36Recorte
dentro 3 vértices fuera 6 vértices
recorta
dentro 1 poligono fuera 2 poligonos
recorta
DL
37Transformaciones y Proyecciones
38Transformaciones de Modelado
- Escala, coloca, rota partes del modelo unas
respecto a otras - coordenadas de objeto ? coordenadas de mundo
Y
Z
X
DL
39Transformaciones de vista
- Rota y translada el mundo para colocarlo
directamente frente a la cámara - Usualmente cámara en el origen y viendo hacia el
eje -Z - coordenadas de mundo ? coordenadas de vista
DL
40Proyecciones
- Aplica perspectiva
- Distante pequeño cámara modelo de hoyo de
alfiler - coordenadas de vista ? coordenadas de pantalla
DL
41Transformaciones
- Todas estas transformaciones involucran cmbiar de
sistemas de coordenadas - Eso es lo que hacen las matrices
- Representando coordenadas como vectores,
transformadas como matrices - Multiplicar matrices concatenar transformadas!
DL
42Transformaciones
- Coordenadas homogeneas representa coordinadas en
3 dimensiones como un 4-vector - Denotado x, y, z, wT
- Note que w 1 en coordenadas de modelo
- Para obtener coordenadas 3-D, divide entre
wx, y, zT x/w, y/w, z/wT - Transformaciones quedan como matrices 4x4 para
manejar uniformemente translación y proyecciones
DL
43En OpenGL
- Todas las transformadas de modelado y vista se
concatenan en la matriz modelview - Se guarda una pila (stack) de matrices modelview
matrices - La transformación de proyección se guarda por
separado, en la matriz de proyección - Ver capítulo 3 libro OpenGL
DL
443D vs. 2D
- 2D
- X, Y - 2 dimensiones solamente
- No le dedicaremos mucho tiempo a esto
- 3D
- X, Y, and Z
- Espacio
- El proceso de síntesis es típicamente la
conversión de 3D a 2D
45Transformaciones Geométricas
46Transformaciones 2D
- Puntos x,y a puntos x,y
- Los usaremos para derivar las transformaciones 3D
47Operaciones afines
- Translación
- x x c
- y y f
- Escalamiento
- x ax
- y dy
- Rotación (Contra el reloj, alrededor de 0,0)
- x xcosq - ysinq
- y xsinq ycosq
- Skew (o Shear)
- x x ay
- y y
48De donde viene la expresión para rotación?
- x xcosq ysinq
- y xsinq ycosq
x,y
x,y
q
49De donde viene la expresión para rotación?
xhcosf yhsinf xhcos(fq) yhsin(fq) xhcos
(fq) hcosfcosq hsinfsinq xcosq
ysinq yhsin(fq) hcosfsinq hsinfcosq
xsinq ycosq
x,y
x,y
h
q
h
f
50- En general
- x ax by c
- y dx ey f
51Usando matrices matrices
- Expresar puntos como x yT
- Operaciones como multiplicación de matrices
- Pero no funciona para
- x ax by c
- y dx ey f
52Coordenadas homogeneas en 2D
- Expresar los puntos como x y 1T
- Vector de 3 elementos!
- Porque?
53Matriz identidad
glLoadIdentity()
54Matriz de Translación
55Problema
- Rota una imagen 30 grados alrededor de su centro.
56Paso 1 Translación a punto de rotación
y
y
x
x
Translada (-w/2, -h/2)
57Matriz de rotación
y
y
x
x
- x xcosq - ysinq
- y xsinq ycosq
58Devuelve a donde estaba el centro de rotación
y
y
x
x
Translada (w/2, h/2)
59Es decir!
- Translación M1
- Rotación
- Translación M2
60Componiendo las operaciones
61Es decir
- MM2 R30 M1
- Multiplica todas las transformaciones!
- Esto se implementa en una simple matriz 3x3
multiplicada por un vector de 3 elementos para
cualquier vértice!
62Ejemplo
- Supón imagen 100 por 100.
63Importante
- Cualquier secuencia de operaciones de matrices
puede componerse a una sola matriz - Siempre se usará una dimensión extra para todos
los vértices (x,y,w)
64Transformaciones 3D
- De coordenadas de objeto a coordenadas de mundo
respetando la forma del objeto - rotación, translación, escala
- Puntos como vectores columna
DL
65Translaciones
- Agrega offsets a sus coordenadas
66Rotaciones 3-D
- Rotaciones en 2-D
- 3-D es mas dificil
- Se requiere especificar eje de rotación
- Comunmente se expresa la rotación alrededor de
ese eje como composición de rotaciones alrededor
delos ejes X, Y, Z
DL
67Extendiendo a 3D
- Coordenadas Homogeneas en 3D
- x,y,z,1T (x,y,z,w)
- Matrices de la forma
- Matrices 4x4 Matrices en vez de of 3x3 para 3D
68Translación
69Escalamiento
70Rotaciones 3-D
- Idea
- Rotando alrededor de los ejes X, Y, Z rota el
modelo hasta que el eje de rotación deseado
coincida con el eje Z - Rota en el plano X-Y alrededor del eje Z
- Aplica en orden inverso las rotaciones iniciales
para obtener el marco de referencia inicial - Objeciones
- Dificil y puede llevar a errores
- Ambiguo algunas combinaciones dan el mismo
resultado - Hay otros enfoques (cuaterniones)
DL
71Rotación?
- Como convierto esto a 3D?
72Rotación alrededor del eje Z
Dejando Z constante
73Las 3 matrices de rotación
74Skew o Shear
75Inversas
- A veces necesitaremos las inversas de las
matrices - T(a,b,c)-1T(-a,-b,-c)
- Rx(q)-1Rx(-q)
- Inversas de matrices de rotación son transpuestas
- Además
- (ABC)-1C-1B-1A-1
76Crea una transformación compleja
void gluLookAt( GLdouble eyex, GLdouble eyey,
GLdouble eyez,
GLdouble centerx, GLdouble centery, GLdouble
centerz, GLdouble upx,
GLdouble upy, GLdouble upz )
77Versión de gluLookAt()
void CChildViewmygluLookAt(CGrPoint eye,
CGrPoint center,
CGrPoint up) CGrPoint
cameraz Normalize3(eye - center) CGrPoint
camerax Normalize3(Cross3(up, cameraz))
CGrPoint cameray Cross3(cameraz, camerax)
GLdouble m16 // Fill the matrix in row by
row m0 camerax.X() m4 camerax.Y()
m8 camerax.Z() m12 0 m1
cameray.X() m5 cameray.Y() m9
cameray.Z() m13 0 m2 cameraz.X()
m6 cameraz.Y() m10 cameraz.Z() m14
0 m3 m7 m11 0. m15 1.0
glMultMatrixd(m) glTranslated(-eyex,
-eyey, -eyez)
78(No Transcript)
79Cuaterniones
Isaac Rudomin ITESM-CEM Spring 2003
80Cuaterniones
- Inventados en los 1800s
- Ir rotaciones alrededor de un eje arbitrario.
- Útil para animación pues es fácil interpolar
rotaciones - 4-tupla descrita por cuatro números reales q
w, x, y, z
81Operaciones de Cuaterniones
- q w,x,y,z donde w es un escalar relacionado a
un ángulo y x,y,z, es un vector. - Podemos escribir ?, v donde
- w and v x,y,z
- ?1, v1 ?2, v2 ?1 ?2, v1 v2
- ?1, v1 ?2, v2
- (?1?2 - v1v2), (?1v2 ?2 v1 v1 x v2)
82Operaciones de cuaterniones
- q ?(w2 x2 y2 z2)
- q-1 ?, -v / q2
- qq-1 1, 0, 0, 0
83Describiendo movimiento para animaciones
- Considerar solo cuaterniones tales que
- q 1
- Para rotar el punto d alrededor del vector
unitario f en ? grados, calculamos - q-1?,dq (recuerda que q ?, v)
- El resultado es un vector que representa una
rotación del punto d alrededor del vector v con
un ángulo ? dado por la ecuación - ? cos(?/2)
84Ejemplo
Rotación de 180 grados alrededor del vector
1,0,1, del punto (1,0,0).
y
(0,0,1)
z
x
(1,0,0)
85Notación para el ejemplo
- Que es q ?, v tal que q 1?
- cos (180/2) cos(90) 0
- v ?2//2, 0, ?2//2
- q 0, ?2//2, 0, ?2//2
- q-1 ?, -v /q2 0, -?2//2, 0, -?2//2
- 0,d 0, 1, 0, 0
86Para rotar
- ?1, v1 ?2, v2
- (?1?2 - v1v2), (?1v2 ?2 v1 v1 x v2)
- q-10,dq
- 0, ?2//2, 0, ?2//20, 1, 0, 00, -?2//2, 0,
-?2//2 - 0, 0, 0 1, nueva coordenada rotada es (0,0,1)
87Por que esto es bueno?
Rotación de 90 grados alrededor del vector
1,0,1, del punto (1,0,0).
y
z
x
88Por que esto es bueno?
- Encontrar la representación en cuaterniones para
todas las rotaciones intermedias es sencillo. - Por ejemplo, una rotación de 90 grados del punto
(1,0,0) alrededor del vector 1,0,1 - Que es q ?, v tal que q 1?
- cos (90/2) cos(45) ?2//2
- v 1/2, 0, 1/2
- q45 ?2//2, 1/2, 0, 1/2
89Como encuentro el cuaternion unitario?
- Si quiero rotar 30 grados alrededor del eje 0,
3, 4 - Encuentra primero el vector unitario 0,3,4/5
0,0.6, 0.8 - El cuaternion unitario es
- cos (15), 0sin(15), 0.6sin(15), 0.8sin(15)
- 0.966, 0, 0.60.259, 0.80.259
- 0.966, 0, 0.155, 0.207
90Proyecciones
91La Cámara
- Finalmente se requiere un modelo de la cámara
virtual - Puede ser muy sofisticado
- Campo de vista, profundidad de campo,
distorsiones, aberración cromática - Gráficas interactivas (OpenGL)
- Modelo hoyo de alfiler
- Campo de vista
- Razón de aspecto
- Planos de recorte (cercano y lejano)
- Pose de la cámara posición orientación
DL
92La Cámara
- Estos parámetros quedan encapsulados como una
matriz de proyección en coordenadas homogeneas
(4x4 ) - La matriz de proyección premultiplica a la matriz
de vista, que a su vez premultiplica a las
matrices de modelado, aunque en realidad OpenGL
agrupa vista y modelado en la matriz modelview
DL
93Como funciona una camara?
Hoyo de alfiler
Superficie del film
Objecto en 3D
94Modelos de Cámara Modelo de hoyo de alfiler
VRP View Reference Plane COP Center of
Projection
95Modelos de Cámara Proyección Paralela
VRP View Reference Plane COP Center of
Projection (al infinito)
96Proyección
- Proyección la transformación de puntos de un
sistema coordenado de n dimensiones a un sistema
coordenado en m dimensiones donde mltn. - Hablaremos de proyecciones de 3D a 2D, donde el
espacio 3D representa el sistema de coordenadas
del mundo y el espacio 2D es una ventana mapeada
a un viewport de la pantalla.
97Especificación de Proyecciones
- Hay que especificar
- Plano de proyección (VRP), un sistema coordenado
2D a donde proyectaremos el mundo 3D - Centro de proyección (COP), un punto en el
espacio que sirve como punto extremo para los
proyectores.
98Proyectores
- Projectores un rayo que se origina en el centro
de proyección y pasa por el punto a proyectarse
99Proyección paralela
- Un caso sencillo es tener proyectores paralelos
- Que implica acerca del COP? Se usa dirección de
proyección (DOP).
100Proyecciones ortográficas
- Son proyecciones paralelas en que el DOP y la
normal al plano de proyección son paralelos. - Elevación es una proyección ortográfica en que la
normal al plano de proyección es paralela a un
eje. - front-elevation
- top-elevation
- side-elevation.
- Proyecciones Axonométricas son proyecciones
ortográficas que no son normales a un eje. - Proyecciónes Isométricas son proyecciones
axonométricas donde la normal alplano de
proyección hace ángulos idénticos con cada eje
principal.
101glOrtho genera
102Proyecciónes Oblícuas
- La normal al plano de proyección y la dirección
de proyección forman un ángulo entre si - La proyección Cavalier
- es una proyección oblícua donde DOP está a 45
grados del VPN. Lineas paralelas a los ejes se
encogen de manera igual. Las paralelas a z
aparecen a un ángulo a, dependiente de DOP, muy
comunmente a es 45 o 30. - La proyección Cabinet
- La normal al plano de proyección está a un ángulo
de arctan(2) 63.4 al plano de proyección
(típicamente proyectando sobre el plano x,y) .
Líneas paralelas al eje que define el plano de
proyección se encogen de manera igual. Líneas
paralelas a la normal al plano de proyección se
acortan a la mitad!
103Proyección de Perspectiva
- Los proyectores salen de un centro de proyección,
- líneas paralelas que no son paralelas al plano de
proyección no se verán paralelas, sino que se
encuentran en algún sitio - En el espacio 3D ese punto estará al infinito y
se llamará punto de fuga - Líneas paralelas a uno de los ejes mayores van a
un punto de fuga llamado punto de fuga de los
ejes. Hay un máximo de 3 en tercera dimensión.
104En OpenGL (gluPerspective)
- OpenGL pone el COP en 0,0,0
- El plano de proyección en z -d
- Esto también se llama longitud de foco f
105Frustum
glFrustum(left,right,bottom,top,znear,zfar)
- La región que podemos ver se llama frustum
(right,top,-znear)
(0,0,0)
-zfar
(left,bottom,-znear)
znear,zfar are positive
106gluPerspective
- Que relación hay entre
- gluPerspective(fovy, aspect, znear, zfar)
- y
- glFrustum(left,right,bottom,top,znear,zfar)
107fov to near frustum
(x,y,-znear)
-z
108Estructura de Proyección
y
P(x,y,z)
x
P'(x',y',z')
-z
-d
109Matriz para proyección de perspectiva?
- Debemos dividir para proyectar!
110Coordenadas Homogeneas otra vez
- Una coordenada homogenea
- (x, y, z, w)
- Pero teniamos antes que w era 1
- Pero
- (x, y, z, w) corresponde a (x/w, y/w, z/w)
- Dividir por w se llama homogenizar
- Si w1, x,y,z no cambian.
- Pero, si w-z/d?
- (x/(-z/d), y/(-z/d), z/(-z/d)) (-dx/z, -dy/z,
-d)
111El proceso de vista entonces
- Rota mundo para que el COP este en 0,0,0 y DOP
paralelo al eje Z - Aplica la Proyección de perspectiva
- Homogeniza
- Transformación de Viewport
112Transformación de Viewport (Ventana a Viewport)
- Ventana
- Area del plano de proyección, normalmente
normalizada con 0,0 al centro - Viewport
- Area del dispositivo
- Ejemplo
- (0, 0) a (640, 480)
113Window a Viewport
- Si ventana (-1,-1) a (1,1)
- Coordenadas Normalized Device en OpenGL
- Viewport (0, 0) a (640, 480)
- (ojo, estas se llaman coordenadas de Ventana en
OpenGL)
114En OpenGL
ObjectCoordinates
ModelviewMatrix
Eye coordinates
ProjectionMatrix
Clip coordinates
Homogenize
Normalized device coordinates
Window toViewport
Viewportcoordinates
115Jerarquía y Grafo de Escena
116Modeling/Rendering
Modelo Gráfico
Parámetros de Rendering
Rendering
Dispositivo de Salida
117OpenGL soporta el modelado?
- NO!
- OpenGL solo dibuja
- Puede uno saltarse el modelos pero
- Como lidiar con objetos variables o como cargar
objetos? - Se supone normalmente que se utiliza algún API
para modelado, como Open Inventor from SGI is an
example, o los incorporados en Engines de juego o
DirectX.
118Standards para Modelado
- No hay
- Los modelos tienden a depender de la aplicación
(CAD vs juegos vs animación) - Un modelo es fundamentalmente una estructura de
datos, usualmente un conjunto de objetos
representan al grafo de escena - Typically a set of objects that represent the
elements of a scene graph
119Porque es Importante?
- El modelo está en un formato uniforme
- Puedo cambiar el render o soporar técnicas
avanzadas como sombras, transparencia - Funciones auxiliares como nivel de detalle,
navegación, detección de colisiones se facilitan - Se puede guardar ontenido como texturas o bump
maps
120Modelado Lo básico
- Primitivas 3-D puntos, lineas, poligonos (i.e.,
triangulos) - Organizados en objectos
- Colección de primitivas, otros objectos
- Matrices asociadas para transformaciones
- Instanciamiento
- usar misma geometría para múltiples objetos
- 4 ruedas en auto, 2 brazos en robot
DL
121Modelado el grafo de escena
- El grafo de escena (scenegraph), captura las
transformaciones y relaciones entre objetos en un
grafo dirigido - Objectos en negro flechas indican instancias y
cada una con su matriz
Robot
Body
Head
Arm
Trunk
Leg
Eye
Mouth
DL
122Modelado el grafo de escena
- Recorre el scene graph en orden de profundidad,
concatenando las transformaciones - Mainten un stack de matrices de transformación
Robot
Visited
Head
Body
Unvisited
Leg
Arm
Trunk
Eye
Mouth
MatrixStack
Active
Foot
DL
123Ejemplo
Barbell
Composite
Translate
Translate
Translate
BarbellBar
Color
Color
BarbellEnds
Composite
Composite
Polygon
Polygon
Polygon
Polygon
124Nodos separadores
Significa Haz lo que quieras con la matriz de
Transformación. Yo aislo a mis hijos.
Composite
Separator
Separator
Separator
Translate
Translate
Translate
BarbellBar
Color
Color
BarbellEnds
Composite
Composite
Polygon
Polygon
Polygon
Polygon