Dpto. de InformáticaFac. Cs. Físico-Mat. y Nat.
Universidad Nacional De San LuisArgentina
Simulación de las FormasSimulación de las Formas
Rio 14 2 - Roberto Guerrero @ 2014
ModelingModeling
Computación GráficaComputación Gráfica Según Fetter, CG referencia a la creación, almacenamiento y manipulación
de modelos de objetos e imágenes.
Simular un mundo 3D por medio de fórmulas matemáticas que describan la forma y el aspecto de los objetos.
Los modelos deben ser susceptibles de ser manipulados de forma efectiva por un computador
Tres grandes aspectos a considerar:
- Modelado de las Formas- Modelado de la Apariencia- Visualización
Rio 14 3 - Roberto Guerrero @ 2014
ModelingModeling
Simulación de la Forma
Qué es un modelo?
Captura las características sobresalientes (dato y comportamiento) de un objeto/fenómeno que esta siendo modelado.
Dato: geometría, apariencia, atributos, etc...
Modelo real: geometría intrínseca. Física (objetos reales) No física: funciones matemáticas, datos del tiempo.
Modelo abstracto: no tiene geometría intrínseca, pero puede visualizarse. Por su disposición (organización de una compañía, diagramas) Cuantitativo (gráficos de ventas de stock)
Modelar es copiar con complejidad
Rio 14 4 - Roberto Guerrero @ 2014
ModelingModeling
Descomposición
Usar la técnica de Divide y Vencerás.
Establecer una jerarquía de componentes geométricos.
Reducir a un conjunto de primitivas
Modelar objetos no simples mediante objetos simples.
Descomposición
cabeza
tronco
punta Composición
Estrategias
Rio 14 5 - Roberto Guerrero @ 2014
ModelingModeling
Organización
Las formas primitivas deben estructurarse para establecer las relaciones de composición.
tornillo
cabeza(cilindro)
cuerpo
raíz
hojastronco(cilindro)
punta(cono)
Estrategias
Rio 14 6 - Roberto Guerrero @ 2014
ModelingModeling
Composición
Las formas primitivas deben ser “manipuladas” matemáticamente para ensamblar el objeto final.
Primitivasen su propio sistema de
coordenadas de modelado
Composición (raíz)en un sistema de
coordenadas común
trasladar
trasladar y escalar
trasladar y rotar
Estrategias
Rio 14 7 - Roberto Guerrero @ 2014
ModelingModeling
Primitivas 3D
El mínimo dato es un punto en el espacio (x,y,z).
Cómo se arma la red de puntos para aproximar el objeto?
Representaciones Geométricas
Rio 14 8 - Roberto Guerrero @ 2014
ModelingModeling
PoliedrosPolilíneas
Funciones ParamétricasFunciones Explícitas
Representaciones Geométricas
Rio 14 9 - Roberto Guerrero @ 2014
ModelingModeling
Una variedad de métodos de representación surgen a partir de las aplicaciones y la estructura de datos involucrada para su almacenamiento depende de la estrategia de modelado.
Algunos métodos de modelado particulares se han desarrollado para contextos específicos.
Design Elements Dimensions
SolidsSurfacesWireframe3D Models
Polygonal Draw
Lineal Draw
2D Models
3D2D1D
Representaciones Geométricas
Rio 14 10 - Roberto Guerrero @ 2014
ModelingModeling
P. Mondrian, Composición en rojo, amarillo y azul, 1921, óleo sobre lienzo.(1D-2D - dibujo lineal)
Farolas en Gran Vía de los Reyes Católicos- Granada(1D-3D - wireframe)
V. Vasarely, Cheyt M.(2D-2D - dibujo poligonal)
Representaciones Geométricas
Rio 14 11 - Roberto Guerrero @ 2014
ModelingModeling
2D Model / 1D Elements.Dibujo Lineal.
3D Model / 1D Elements.Wireframe.
3D Model / 2D Elements.Surfaces.
Representaciones Geométricas
Rio 14 12 - Roberto Guerrero @ 2014
ModelingModeling
Es el método utilizado por el cual se intenta representar la forma de un objeto 3D dentro de un programa.
El método depende de: la naturaleza del objeto. la técnica utilizada para dar vida al objeto. la aplicación.
Estas características en conjunto con la representación elegida determinan: la estructura de datos, la forma de los algoritmos de procesamiento y el diseño de los
programas en hardware (si existieran). el costo del procesamiento de un objeto a lo largo del pipeline 3D. la apariencia final del objeto, algunas formas son aproximadas mejor que otras. la facilidad de edición de la forma del objeto.
Las representaciones pueden clasificarse según si: modelan la superficie o el volumen total del objeto. modelan el objeto por representación aproximada o exacta.
Representaciones Geométricas 3D
Rio 14 13 - Roberto Guerrero @ 2014
ModelingModeling
De acuerdo con la frecuencia de uso:
Poligonal Los objetos son aproximados por medio de
una malla de facetas poligonales planas.
Parches paramétricos Bicúbicos La representación es similar a la malla poligonal
excepto que los polígonos individuales son superficies curvas (cuadriláteros curvos).
Geometría Sólida constructiva El objeto manufacturado surge de una “combinación”
de formas elementales o primitivas geométricas.
Técnicas de subdivisión del espacio Divide el espacio del objeto en cubos elementales
conocidos como voxels.
Clasificación
Rio 14 14 - Roberto Guerrero @ 2014
ModelingModeling
Usualmente denominada Representación de Contorno debido a que es una descripción geométrica y topológica de la superficie de un objeto.
Permite representar con gran fidelidad un objeto con cualquier forma.
La superficie del objeto es aproximada por medio de una secuencia de polígonos.
Los polígonos son estructurados jerárquicamente: los polígonos se agrupan en facetas (caras), las caras en superficies y las superficies en objetos.
Representación Poligonal
vértices bordes polígonos caras superficies objeto
Rio 14 15 - Roberto Guerrero @ 2014
ModelingModeling
Ventajas El proceso de creación es simple. Los polígonos pueden ser tratados como entidades independientes. Ampliamente utilizado para eficiencia de algoritmos.
Desventajas En la reproducción de las superficies curvas de un objeto debido a la representación
facetada, se debe acomodar el tamaño de los polígonos individuales dependiendo de la curvatura local del espacio a representar.
Problemas de escalabilidad. A gran distancia, los objetos con gran cantidad de polígonos tienden a verse como un solo polígono.... o un punto.
En la creación de objetos complejos. Puede implicar gran cantidad de tiempo y costo. Se debe almacenar las relaciones topológicas de los elementos en una base asociada.
Representación Poligonal
Rio 14 17 - Roberto Guerrero @ 2014
ModelingModeling
Las estrategias de modelado son básicamente fuerza bruta. El desarrollo de un modelo poligonal se basa en “colocar” puntos (vértices) por medio de
algún dispositivo 3D. Es necesario asegurar una aproximación “adecuada” del objeto que se esta pretendiendo
modelar.
Diferentes estrategias1- Utilizar un digitalizador 3D o cualquier estrategia manual equivalente.2- Utilizar un dispositivo automático (explorador láser).3- Generar un objeto a partir de una descripción matemática.4- Generar un objeto por medio de barrido.
Modelado de Objetos Poligonales
Rio 14 18 - Roberto Guerrero @ 2014
ModelingModeling
Utiliza un digitalizador 3D. El operador usa su experiencia y buen juicio para la captura de puntos del objeto, los cuales
serán los vértices de los polígonos. Una estrategia muy común que asegura una buena representación consiste en dibujar una
malla sobre la superficie del objeto.
Modelado Manual
Rio 14 20 - Roberto Guerrero @ 2014
ModelingModeling
Utiliza un explorador láser el cual asegura una malla de polígonos de alta resolución y muy confiable.
Usualmente el objeto es colocado en una base rotativa interceptando la ruta del rayo. El láser retorna un conjunto de curvas de contorno (planos paralelos) (fig. 15-b). Se requiere de un algoritmo de “skinning” (fig. 15-a). Une para de puntos de contornos
consecutivos y los convierte en polígonos (fig. 15-c).
Modelado Automático
Rio 14 21 - Roberto Guerrero @ 2014
ModelingModeling
Modelado Automático
Fig. 15-a Fig. 15-b Fig. 15-c
Rio 14 23 - Roberto Guerrero @ 2014
ModelingModeling
El objeto es generado por medio de una descripción matemática que es barrida a lo largo de una ruta.
Los sólidos de revolución son un caso especial de este método. La resolución poligonal es controlado fácilmente por el algoritmo que lo genera.
Modelado Matemático
Rio 14 24 - Roberto Guerrero @ 2014
ModelingModeling
Conserva la idea previa y la generaliza. En el modelado matemático, tanto la sección de barrido como su ruta son especificados
por medio de una fórmula matemática. La generalización implica que la sección de barrido y la ruta (curva) pueden tomar
cualquier forma. Éstas son curvas paramétricas que pueden variar en su descripción.
Los objetos generados son denominados “sólidos de canal”.
Q(u) = au3 + bu2 + cu + d
Modelado por Barrido
Rio 14 25 - Roberto Guerrero @ 2014
ModelingModeling
Modelado por Barrido
Presentan dos problemas:
Cuáles deberían ser los intervalos entre los puntos ubicados a lo largo de la sección de barrido?.
Cual debería ser la orientación de la sección a lo largo de la ruta (curva)?.
Rio 14 26 - Roberto Guerrero @ 2014
ModelingModeling
4 vértices unidos por 4 lados que constituyen curvas bicúbicas. El interior de el parche es una superficie curva bicúbica.
La superficie del objeto puede ser interpolada o aproximada por la malla del parche. Usualmente el parche se define como Q(u,v), donde u,v son parámetros y Q es un polinomio
cúbico.
Un tamaño conveniente para los parches es de 16 puntos 3D, denominados puntos de control.
Estos puntos de control son utilizados por funciones polinomiales predefinidas denominadas funciones bases.
Parches Paramétricos Bicúbicos
Rio 14 27 - Roberto Guerrero @ 2014
ModelingModeling
Ventajas La representación es “fluída”, mas aún si los puntos de control de los parches se ajustan
por medio de software. Permiten obtener información de propiedades de masa del objeto tales como volumen,
superficie del área, momento e inercia.
Desventajas Modelara la estructura de datos es dificultosa. Es dificil mantener la integridad del modelo. Demanda grandes volúmenes de memoria con penalidades por tiempo de transferencia
de base de datos y uso de memoria.
Parches Paramétricos Bicúbicos
Rio 14 28 - Roberto Guerrero @ 2014
ModelingModeling
Modelar con este método implica tener un conocimiento detallado de la teoría asociada a los parches paramétricos bicúbicos.
Diferentes estratégias Trabajar con un único parche como un objeto en sí mismo.
Es directo, aunque no simple, ej: el cuerpo de un auto.
Crear una malla de parches a partir del objeto real.Se establecen un conjunto de puntos que se encuentran en la superficie del objeto a ser representado. Luego el parche es regenerado a partir de estos puntos.
Utilizar técnicas de barrido de parches.El parche paramétrico es considerado como la sección que debe ser barrida a lo largo de un ruta.
Modelado con mallas de parches
Rio 14 30 - Roberto Guerrero @ 2014
ModelingModeling
Ejemplo La tetera de Utah.
– Una malla “rasonable” de polígonos.
2048 vértices x 3 números reales.
– Una malla de 32 parches.
32 parches x 16 puntos de control/parche.
Los parches comparten 12 puntos para asegurar la
continuidad con los vecinos.
306 vértices x 3 números reales.
Rio 14 31 - Roberto Guerrero @ 2014
ModelingModeling
Las operaciones realizadas son un Conjunto de operadores Booleanos y Transformaciones Lineales.
Geometría de Sólido Constructiva
Es una representación volumétrica. Es una representación exacta dentro de los límites de formas
específicas. Usualmente, los objetos son partes que serán manufacturadas
por fundición, mecánicamente o por extrusión. Se construyen a partir de operaciones que combinan objetos
sólidos elementales denominados primitivas geométricas
Rio 14 32 - Roberto Guerrero @ 2014
ModelingModeling
Ventajas Es simple. La representación define tanto la forma del objeto como su historia de modelado. Los cambios en el modelo implican cambios triviales en el proceso de modelado.
Desventajas Se requierre mucho tiempo computacional para generar una imagen del modelo.. Las operaciones booleanas son globales, afectan al sólido en su totalidad.
Las operaciones locales no son simples de implementarEj.: la unión de superficies afiladas.
Geometría de Sólido Constructiva
Rio 14 34 - Roberto Guerrero @ 2014
ModelingModeling
Es una representación volumétrica basada en elementos cúbicos denominados voxels. Se considera el espacio del objeto en su totalidad y se rotula cada punto en el espacio
acorde con su ocupación del espacio. Se rotula cada voxel según pertenezca al objeto o se encuentre en un espacio vacío.
Subdivisión del Espacio
Rio 14 35 - Roberto Guerrero @ 2014
ModelingModeling
Subdivisión del Espacio
Ventajas Es muy significativo en ciertos estadios del proceso de rendering. Puede ser utilizado como una representación intermedia: establecer la distribución de los
objetos en la escena.. Este esquema es utilizado solamente en contextos donde los beneficios superan su costo.
Ej.: rendering de volúmenes en imágenes médicas.
Desventajas Es muy costoso en concepto de consumo de memoria..
Un octree es una estructura de datos jerárquica que especifica la apropiación de espacio del objeto por parte de las regiones cúbicas.
El concepto de octree puede representarse fácilmente mediante un quadtree que representa la apropiación de espacio de una región 2D.
Rio 14 37 - Roberto Guerrero @ 2014
ModelingModeling
Rendering de volúmenes en Imágenes Médicas
(a) (b)
Rio 14 38 - Roberto Guerrero @ 2014
ModelingModeling
Computación GráficaComputación Gráfica Según Fetter, CG referencia a la creación, almacenamiento y manipulación
de modelos de objetos e imágenes.
Simular un mundo 3D por medio de fórmulas matemáticas que describan la forma y el aspecto de los objetos.
Los modelos deben ser susceptibles de ser manipulados de forma efectiva por un computador
Tres grandes aspectos a considerar:
- Modelado de las Formas- Modelado de la Apariencia- Visualización
Rio 14 39 - Roberto Guerrero @ 2014
ModelingModeling
Los objetos deben ser “manipulados”, preferentemente operados matemáticamente.
Manipulación de los Objetos
Rio 14 40 - Roberto Guerrero @ 2014
ModelingModeling
Un objeto puede considerarse como un conjunto de puntos que se desplazan.
Una línea es dibujada trazando la ruta de un punto que se desplaza (entidad de 1D). Un cuadrado es dibujado trazando la ruta de los vértices de una línea que se desplaza
perpendicularmente a sí misma (entidad 2D).
Un cubo es dibujado trazando la ruta de los vértices de un cuadrado que se desplaza perpendicularmente a si mismo (entidad 3D).
Un círculo es dibujado desplazando un punto alrededor de un punto central y a una longitud fija.
Los vértices son la información crítica en la definición de un objeto. Cómo se mueven??
Vértices en movimiento
Rio 14 41 - Roberto Guerrero @ 2014
ModelingModeling
Las transformaciones geométricas mapean puntos desde un espacio a puntos en otro espacio: (x',y',z') = f(x,y,z).
Las transformaciones pueden ser muy simples, tales como escalar cada coordenada, o complejas, tales como giros y curvas no lineales.
Nos concentraremos en las transformaciones que pueden ser representadas fácilmente mediante operaciones matriciales.
Representación Se puede representar un punto, p = (x,y), en el plano
Como un vector columna
O como un vector fila
Transformaciones Geométricas
Rio 14 42 - Roberto Guerrero @ 2014
ModelingModeling
Se puede representar una transformación 2D M por medio de una matriz
Si p es un vector columna, M debe colocarse a la izquierda:
Si p es un vector fila, debe colocarse a la derecha:
Transformaciones Geométricas
Rio 14 43 - Roberto Guerrero @ 2014
ModelingModeling
Para mover un punto se realiza la suma de un escalar a cada una de las componentes del vector
v’ = v + t donde
y x’ = x + dx y’ = y + dy
Para mover polígonos: simplemente se trasladan los vértices y luego se redibujan las líneas entre ellos
Preserva las longitudes (isométrica)
Preserva los ángulos (conforme)
Traslación
Nota: La casa se desplaza en forma relativa al origen
dx = 2dy = 3
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
[21 ]
[44 ]
v=[ xy ] , v ' =[ x '
y ' ] ,t =[ dxdy ]
Rio 14 44 - Roberto Guerrero @ 2014
ModelingModeling
Se multiplica cada una de las componentes del vector por un escalar
v’ = Sv donde
y
No preserva las longitudes
No preserva los ángulos (excepto si el escalado es uniforme)
Escalado
v=[ xy ] , v '=[ x '
y ' ]S=[S x 0
0 S y ]x '=S x xy '=S y y
2
3
==
y
x
s
s
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
[21 ] [31 ] [92 ][62]
Nota: La casa se desplaza en forma relativa al origen
Rio 14 45 - Roberto Guerrero @ 2014
ModelingModeling
La rotación de un vector a lo largo de un ángulo
v’ = R v donde
x’ = x cos– y sin y’ = x sin+ y cos
Rotación
R=[ cos −sin
sin cos ]
v=[ xy ] , v ' =[ x '
y ' ]
v
v’
r
Rio 14 46 - Roberto Guerrero @ 2014
ModelingModeling
Preserva las longitudes y los ángulos
Rotación
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
θ =π6
θ
Nota: La casa se desplaza en forma relativa al origen
Rio 14 47 - Roberto Guerrero @ 2014
ModelingModeling
Las operaciones de traslación, escalado y rotación están expresadas como (no homogéneo):
La composición entre ellas es difícil de expresar dado que la traslación no esta expresada como una multiplicación de matrices.
Las coordenadas homogénas permiten que las tres operaciones sean expresadas de la misma manera, permitiendo la composición de las mismas mediante multiplicación de matrices
w es 1 para poder realizar transformaciones afines
Coordenadas Homogéneas
traslación:
escala:
rotación:
v’ = v + t
v’ = Sv
v’ = R v
P2d x , y P
hwx , wy ,w , w≠0
Ph x ', y ', w , w≠0
P2d x , y =P2d x 'w
,y 'w
Rio 14 48 - Roberto Guerrero @ 2014
ModelingModeling
P2d
es la intersección de la línea determinada por Ph con el plano w = 1
Por lo tanto, un número infinito de puntos corresponden a (x, y, 1): ellos constituyen la línea completa (tx, ty, tw)
Qué es ?
P2d (x/w,y/w,1)
Ph (x,y,w)
Y
X
W
1
[xyw ]
Rio 14 49 - Roberto Guerrero @ 2014
ModelingModeling
Para los puntos escritos en formato homogéneo
La traslación, escalado y rotación relativos al origen son expresados en forma homogénea de la siguiente manera:
Transformaciones en Coordenadas Homogéneas
con coordenadas [xy1 ] ,
T dx , dy =[1 0 dx0 1 dy0 0 1 ]; v '=T dx , dy v
S s x , s y =[sx 0 00 s y 00 0 1 ]; v '=S s x , s y v
R φ =[cos φ −sin φ 0sin φ cos φ 0
0 0 1 ] ; v '=R φ v
Rio 14 50 - Roberto Guerrero @ 2014
ModelingModeling
La Rotación y el Escalado estan definidos respecto del origen del sistema de coordenadas.
Supongamos un objeto no centrado en el origen. ¿Cómo lo rotamos sobre su centro?
Rotación y Escalado 2D - Particularidades
(q es el centro de definición del objeto)
Casa (C) S(1,2)C R(π/2)S(1,2)C
Rio 14 51 - Roberto Guerrero @ 2014
ModelingModeling
Un objeto no centrado en el origen debe ser rotado un ángulo θ
Solución: mover el objeto al origen, luego rotarlo, luego retornarlo a su posición original.
Es deseable poder componer transformaciones sucesivas…
Rotación y Escalado 2D - Particularidades
Rio 14 52 - Roberto Guerrero @ 2014
ModelingModeling
Problema: rotar la casa en un ángulo θ y duplicar su altura en “su posición” (su centro de coordenadas).
La matriz T permite evitar traslaciones no deseadas que suceden cuando se escala y rota un objeto no centrado en el origen.
Importante: la multiplicación de matrices no es conmutativa!!.. El orden es importante!!
Rotación y Escalado 2D - Particularidades
dx
dy
Casa (C) T(-dx,-dy)C S(1,2)R(θ)T(-dx,-dy)C
T(dx,dy)S(1,2)R(θ)T(-dx,-dy)C
R(θ)T(-dx,-dy)C
Rio 14 53 - Roberto Guerrero @ 2014
ModelingModeling
Traslación
Transformaciones 3D Básicas
(sistema de coordenadas dextrógiro)
x
y
z
Rio 14 54 - Roberto Guerrero @ 2014
ModelingModeling
Escalado
Transformaciones 3D Básicas
(sistema de coordenadas dextrógiro)
x
y
z
Rio 14 55 - Roberto Guerrero @ 2014
ModelingModeling
Rotación en eje X
Rotación en eje Y
Rotación en eje Z
(sistema de coordenadas dextrógiro)
[1 0 0 00 cos θ −sin θ 00 sin θ cos θ 00 0 0 1 ]
[cos θ 0 sin θ 0
0 1 0 0−sin θ 0 cos θ 0
0 0 0 1 ]
[cos θ −sin θ 0 0sin θ cos θ 0 0
0 0 1 00 0 0 1 ]
Transformaciones 3D Básicas
Rio 14 56 - Roberto Guerrero @ 2014
ModelingModeling
Deforma un objeto hacia un lado (“lo aplasta”)
Los cuadrados se convienten en paralelogramos – las coordenadas x se desplazan hacia la derecha, mientras las coordenadas y permanecen iguales.
El ángulo de 90° se convierte en θ .
Oblicuidad/Cizalla/Traslación
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
Skewθ=[11
tan θ0 1 ]
θ =π4
θ
Simula “aplastar” un mazo de
cartas desplazando a las cartas hacia un lado – las cartas se dezplazan respecto de la base.
La base permanece horizontal (y=1) pero se dezplaza hacia la derecha...
Rio 14 57 - Roberto Guerrero @ 2014
ModelingModeling
Los puntos en y=1 permanecen en y=1, pero son trasladados hacia la derecha.
Se preservan las distancias entre los puntos en esta línea.
Una traslación homogénea de 1D es similar a una trasnformacion de cizalla 2D.
Oblicuidad/Cizalla/Traslación
T
original y-axis
T=[1 10 1 ]
[11
tan θ0 1 ]≡[1 dx
0 1 ]
Rio 14 58 - Roberto Guerrero @ 2014
ModelingModeling
Un poco mas complicado en 3D. Una transformación de cizalla respecto del plano x-z.
P’ = (Px + bPy , Py , Pz)
Oblicuidad/Cizalla/Traslación
Rio 14 59 - Roberto Guerrero @ 2014
ModelingModeling
Dónde estamos?
Resumen
Espacio del Modelo
Espacio del Mundo
escalado, traslación, rotación, ....