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

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

1 downloads 94 Views 5MB Size

Story Transcript

Simulación de las Formas

Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina

Modeling

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

2

Modeling

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



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



Dato: geometría, apariencia, atributos, etc...

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

3

Modeling

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

cabeza tronco

punta

Rio 14 - Roberto Guerrero @ 2014

Composición

Descomposición

4

Modeling

Estrategias Organización 

Las formas primitivas deben estructurarse para establecer las relaciones de composición.

tornillo

cabeza (cilindro)

tronco (cilindro)

Rio 14 - Roberto Guerrero @ 2014

raíz

cuerpo

punta (cono)

hojas

5

Modeling

Estrategias Composición 

Las formas primitivas deben ser “manipuladas” matemáticamente para ensamblar el objeto final. trasladar trasladar y escalar

trasladar y rotar

Primitivas en su propio sistema de coordenadas de modelado

Rio 14 - Roberto Guerrero @ 2014

Composición (raíz) en un sistema de coordenadas común

6

Modeling

Representaciones Geométricas 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?



Rio 14 - Roberto Guerrero @ 2014

7

Modeling

Representaciones Geométricas Polilíneas

Poliedros

Funciones Explícitas

Funciones Paramétricas

Rio 14 - Roberto Guerrero @ 2014

8

Modeling

Representaciones Geométricas 

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.

Design Elements Dimensions

1D



2D

Lineal 2D Models Draw

Polygonal Draw

Wireframe 3D Models

Surfaces

3D

Solids

Algunos métodos de modelado particulares se han desarrollado para contextos específicos.

Rio 14 - Roberto Guerrero @ 2014

9

Modeling

Representaciones Geométricas P. Mondrian, Composición en rojo, amarillo y azul, 1921, óleo sobre lienzo. (1D-2D - dibujo lineal)

V. Vasarely, Cheyt M. (2D-2D - dibujo poligonal)

Farolas en Gran Vía de los Reyes Católicos- Granada (1D-3D - wireframe)

Rio 14 - Roberto Guerrero @ 2014

10

Modeling

Representaciones Geométricas 2D Model / 1D Elements. Dibujo Lineal.

3D Model / 1D Elements. Wireframe. 3D Model / 2D Elements. Surfaces.

Rio 14 - Roberto Guerrero @ 2014

11

Modeling

Representaciones Geométricas 3D 

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:   



Estas características en conjunto con la representación elegida determinan: 

  



la naturaleza del objeto. la técnica utilizada para dar vida al objeto. la aplicación.

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.

Rio 14 - Roberto Guerrero @ 2014

12

Modeling

Clasificación 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.

Rio 14 - Roberto Guerrero @ 2014

13

Modeling

Representación Poligonal 

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.

vértices

Rio 14 - Roberto Guerrero @ 2014

bordes

polígonos

caras

superficies

objeto

14

Modeling

Representación Poligonal 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.

Rio 14 - Roberto Guerrero @ 2014

15

Modeling

Rio 14 - Roberto Guerrero @ 2014

16

Modeling

Modelado de Objetos Poligonales  



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 estrategias 1- 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.

Rio 14 - Roberto Guerrero @ 2014

17

Modeling

Modelado Manual  



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.

Rio 14 - Roberto Guerrero @ 2014

18

Modeling

Modelado Manual

Inition Digiscan

Rio 14 - Roberto Guerrero @ 2014

19

Modeling

Modelado Automático 

  

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

Rio 14 - Roberto Guerrero @ 2014

20

Modeling

Modelado Automático

Fig. 15-a Rio 14 - Roberto Guerrero @ 2014

Fig. 15-b

Fig. 15-c 21

Modeling

Modelado Automático

Inition Digiscan

Rio 14 - Roberto Guerrero @ 2014

22

Modeling

Modelado Matemático 

 

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.

Rio 14 - Roberto Guerrero @ 2014

23

Modeling

Modelado por Barrido  





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.

Q(u) = au3 + bu2 + cu + d 

Los objetos generados son denominados “sólidos de canal”.

Rio 14 - Roberto Guerrero @ 2014

24

Modeling

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

25

Modeling

Parches Paramétricos Bicúbicos 

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.

Rio 14 - Roberto Guerrero @ 2014

26

Modeling

Parches Paramétricos Bicúbicos 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.

Rio 14 - Roberto Guerrero @ 2014

27

Modeling

Modelado con mallas de parches 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.

Rio 14 - Roberto Guerrero @ 2014

28

Modeling

Modelado con mallas de parches

Rio 14 - Roberto Guerrero @ 2014

29

Modeling

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

30

Modeling

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 Las operaciones realizadas son un Conjunto de operadores Booleanos y Transformaciones Lineales.

Rio 14 - Roberto Guerrero @ 2014

31

Modeling

Geometría de Sólido Constructiva 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 implementar Ej.: la unión de superficies afiladas.

Rio 14 - Roberto Guerrero @ 2014

32

Modeling

Geometría de Sólido Constructiva

Rio 14 - Roberto Guerrero @ 2014

33

Modeling

Subdivisión del Espacio  



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.

Rio 14 - Roberto Guerrero @ 2014

34

Modeling

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

35

Modeling

Subdivision del Espacio

Rio 14 - Roberto Guerrero @ 2014

36

Modeling

Rendering de volúmenes en Imágenes Médicas

(a)

Rio 14 - Roberto Guerrero @ 2014

(b)

37

Modeling

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

38

Modeling

Manipulación de los Objetos 

Los objetos deben ser “manipulados”, preferentemente operados matemáticamente.

Rio 14 - Roberto Guerrero @ 2014

39

Modeling

Vértices en movimiento 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??

Rio 14 - Roberto Guerrero @ 2014

40

Modeling

Transformaciones Geométricas 

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

41

Modeling

Transformaciones Geométricas 

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,

Rio 14 - Roberto Guerrero @ 2014

debe colocarse a la derecha:

42

Modeling

Traslación 

Para mover un punto se realiza la suma de un escalar a cada una de las componentes del vector v’ = v + t donde y

v=

[] [ ] [ ] x x' dx ,v' = ,t = y y' dy

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)

Y

6 5

[] 4 4

4

dx = 2 dy = 3

3 2

[] 2 1

1 0 1

2

3

4

5

6

7

8

9

10

X Nota: La casa se desplaza en forma relativa al origen Rio 14 - Roberto Guerrero @ 2014

43

Modeling

Escalado 

Se multiplica cada una de las componentes del vector por un escalar v’ = Sv donde

y

[] [ ]

v=

S=

x x' , v '= y y'

[ ] Sx 0

0 Sy

x ' =S x x y ' =S y y Y 

No preserva las longitudes



No preserva los ángulos (excepto si el escalado es uniforme)

6 5 4 3

sx = 3

2

sy = 2

1

[] 2 1

[] 9 2

[] 6 2

[] 3 1

0 1

2

3

4

5

6

7

8

9

10

X

Nota: La casa se desplaza en forma relativa al origen Rio 14 - Roberto Guerrero @ 2014

44

Modeling

Rotación 

La rotación de un vector a lo largo de un ángulo  v’ = R v

donde

v=

[] [ ] x x' ,v' = y y'

v’ v r

x’ = x cos– y sin y’ = x sin+ y cos Rio 14 - Roberto Guerrero @ 2014

[

R =

cos  −sin  sin  cos 

] 45

Modeling

Rotación 

Preserva las longitudes y los ángulos Y

6 5

θ=

π 6

4 3 2

θ

1

0 1

2

3

4

5

6

7

8

9

10

X

Nota: La casa se desplaza en forma relativa al origen

Rio 14 - Roberto Guerrero @ 2014

46

Modeling

Coordenadas Homogéneas 

Las operaciones de traslación, escalado y rotación están expresadas como (no homogéneo): traslación:

v’ = v + t

escala:

v’ = Sv

rotación:

v’ = R v



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 P 2d  x , y   P h  wx , wy , w  , w≠0 P h  x ', y ', w  , w≠0 P 2d  x , y =P 2d



x' y' , w w



w es 1 para poder realizar transformaciones afines Rio 14 - Roberto Guerrero @ 2014

47

Modeling

Qué es 

[] x y w

?

P2d es la intersección de la línea determinada por P h con el plano w = 1 W

Ph (x,y,w) 1

P2d (x/w,y/w,1) X

Y 

Por lo tanto, un número infinito de puntos corresponden a (x, y, 1): ellos constituyen la línea completa (tx, ty, tw)

Rio 14 - Roberto Guerrero @ 2014

48

Modeling

Transformaciones en Coordenadas Homogéneas 

Para los puntos escritos en formato homogéneo con coordenadas

[]

x y , 1

La traslación, escalado y rotación relativos al origen son expresados en forma homogénea de la siguiente manera: 1 0 dx T  dx , dy = 0 1 dy ; v ' =T  dx , dy  v 0 0 1

[

]

[ ]

sx S  s x , s y = 0 0

[

cos φ R  φ = sin φ 0 Rio 14 - Roberto Guerrero @ 2014

0 sy 0

0 0 ; v ' =S  s x , s y  v 1

−sin φ cos φ 0

]

0 0 ; v '= R  φ  v 1 49

Modeling

Rotación y Escalado 2D - Particularidades 

La Rotación y el Escalado estan definidos respecto del origen del sistema de coordenadas. Casa (C)



S(1,2)C

R(π/2)S(1,2)C

Supongamos un objeto no centrado en el origen. ¿Cómo lo rotamos sobre su centro?

(q es el centro de definición del objeto) Rio 14 - Roberto Guerrero @ 2014

50

Modeling

Rotación y Escalado 2D - Particularidades 

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…

Rio 14 - Roberto Guerrero @ 2014

51

Modeling

Rotación y Escalado 2D - Particularidades 

Problema: rotar la casa en un ángulo θ y duplicar su altura en “su posición” (su centro de coordenadas).

dy dx





La matriz T permite evitar traslaciones no deseadas que suceden cuando se escala y rota un objeto no centrado en el origen. T(dx,dy)S(1,2)R(θ)T(-dx,-dy)C R(θ)T(-dx,-dy)C S(1,2)R(θ)T(-dx,-dy)C Casa (C) T(-dx,-dy)C

Importante: la multiplicación de matrices no es conmutativa!!.. El orden es importante!!

Rio 14 - Roberto Guerrero @ 2014

52

Modeling

Transformaciones 3D Básicas (sistema de coordenadas dextrógiro)

y

x z



Traslación

Rio 14 - Roberto Guerrero @ 2014

53

Modeling

Transformaciones 3D Básicas (sistema de coordenadas dextrógiro)

y

x z



Escalado

Rio 14 - Roberto Guerrero @ 2014

54

Modeling

Transformaciones 3D Básicas (sistema de coordenadas dextrógiro)



Rotación en eje X



Rotación en eje Y



Rotación en eje Z

Rio 14 - Roberto Guerrero @ 2014

[ [ [

1 0 0 0

0 cos θ sin θ 0

cos θ 0 −sin θ 0 cos θ sin θ 0 0

0 1 0 0

0 −sin θ cos θ 0

0 0 0 1

sin θ 0 cos θ 0

0 0 0 1

0 0 1 0

0 0 0 1

−sin θ cos θ 0 0

] ] ] 55

Modeling

Oblicuidad/Cizalla/Traslación 

Deforma un objeto hacia un lado (“lo aplasta”) Skew θ =

[ ] 1 tan θ 1

1 0



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



Simula “aplastar” un mazo de cartas desplazando a las cartas hacia un lado – las cartas se dezplazan respecto de la base.

Y

6 5 4

θ=

π 4

3



La base permanece horizontal (y=1) pero se dezplaza hacia la derecha...

2

θ

1 0 1

Rio 14 - Roberto Guerrero @ 2014

2

3

4

5

6

7

8

9

10

X 56

Modeling

Oblicuidad/Cizalla/Traslación 

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.

[ ][ 1 0

1 1 tan θ ≡ 0 1

dx 1

] original y-axis T=

[ ] 1 0

1 1

T

Rio 14 - Roberto Guerrero @ 2014

57

Modeling

Oblicuidad/Cizalla/Traslación  

Un poco mas complicado en 3D. Una transformación de cizalla respecto del plano x-z.

P’ = (Px + bPy , Py , Pz)

Rio 14 - Roberto Guerrero @ 2014

58

Modeling

Resumen Dónde estamos?

Espacio del Modelo

escalado, traslación, rotación, ....

Espacio del Mundo

Rio 14 - Roberto Guerrero @ 2014

59

Modeling

Rio 14 - Roberto Guerrero @ 2014

60

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.