Simulación de las Formas - Departamento de...

60
Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina Simulación de las Formas Simulación de las Formas

Transcript of Simulación de las Formas - Departamento de...

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 16 - Roberto Guerrero @ 2014

ModelingModeling

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 19 - Roberto Guerrero @ 2014

ModelingModeling

Modelado Manual

Inition Digiscan

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 22 - Roberto Guerrero @ 2014

ModelingModeling

Inition Digiscan

Modelado Automático

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 29 - Roberto Guerrero @ 2014

ModelingModeling

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 33 - Roberto Guerrero @ 2014

ModelingModeling

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 36 - Roberto Guerrero @ 2014

ModelingModeling

Subdivision del Espacio

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, ....

Rio 14 60 - Roberto Guerrero @ 2014

ModelingModeling