Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

34
Mod.Sólidos-2a A. García-Alonso 1 >> Modelado – 2 << Representación de sólidos (a) LINK http://www.sc.ehu.es/ccwgamoa/docencia/ Material/Presentaciones

Transcript of Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Page 1: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 1

>> Modelado – 2 << Representación de sólidos (a)

LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones

Page 2: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 2

Modelos o representaciones de sólidos

• Geometría constructiva de sólidos (CSG)

• Replicado de primitivas (Primitive instancing)

• Modelos de fronteras (Boundary Representations)– Poliedros y otras representaciones de caras planas

– Superficies curvas

• Barrido

• Representaciones de partición espacial– Descomposición en celdas

– Enumeración de ocupación espacial

– Árboles

Page 3: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 3

...

• Características (Features)

• Restricciones (Constraints)– Modelos paramétricos

– Modelos variacionales

Page 4: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 4

Consideraciones

• Al considerar representaciones discriminar– Almacenamiento en memoria

– Almacenamiento en fichero

– Interfaz de usuario

– Uso• Dibujo• Evaluar propiedades másicas (volumen, cdg, momentos, etc)• Comprobar propiedades geométricas o topológicas• Búsquedas• Etc

• Uso simultáneo de varias representaciones

Page 5: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 5

Geometría Constructiva de Sólidos

• Foley 12.2,7, Hearn 10.15

• CSG : Constructive Solid Geometry

• Las operaciones booleanas– Unión, intersección, diferencia

Foley 12.2

– Problemas

Foley 12.3• Elementos colgantes (dangling)• Necesidad definir operaciones regularizadas

• Operaciones booleanas vs. Representaciones booleanas– Operaciones b. se pueden aplicar a otras representaciones :

es una pura operación, no una representación

– Árbol booleano es un tipo de representación

Page 6: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 6

El árbol de representación booleano

• El árbol booleano

Machover 8.5,6

• Nodos operaciones– Unión

– Intersección

– Diferencia

• Nodos terminales usan otras representaciones

Color

– Primitivas

– B-reps

– Etc

• Transformaciones geométricas

Page 7: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 7

Replicado de primitivas

• Foley 12.3

• Primitive instancing• Familias de piezas Foley-12.7

– Uniformes (“Lego”, mecano)

– Paramétricas

• Posicionamiento– Transformación, escalado

– Pegado

• Relacionado con la “Tecnología de Grupos” (Ingeniería de Producción)

Page 8: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 8

Page 9: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 9

Modelos de caras planas y B-Rep

• Foley 12.5, Hearn 10.1• Clasificación

Foley 12.5

– Poliedros (sólidos, B-Rep poligonales)

– Superficie poligonal (no encierra un sólido)

– Conjunto de polígonos

– Malla triángulos, malla cuadriláteros, polígonos conexos

• Precisión– Exacto : describe un objeto de caras planas

– Aproxima una superficie : cota de error

Page 10: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 10

Poliedro que representa un sólido

• Ecuación de Euler (cuerpo sin y con agujeros)– V + F = E + 2 (Vértices + Caras = Aristas + 2)

Foley-12.13

– V – E + F – H = 2 ( C – G )

Foley-12.14• H : agujeros en caras• C : número de componentes (partes separadas)• G : agujeros pasantes (si C=1, G es el genus del poliedro)

• Condiciones debe cumplir (Foley, 12.5.1)– Cumplir la fórmula de Euler

– Cada arista conecte dos vértices

– Cada arista sea compartida por dos y solo dos caras

– En cada vértice se deben juntar por lo menos tres aristas

– Las caras no se deben penetrarse (hay tangencias no válidas)

Page 11: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 11

Modelos de caras planas : discusión

• Inconvenientes– Se pierde

• La “exactitud” del modelo• Información constructiva: Hª, restricciones, etc

• Ventajas (muy versátiles)– Transportables entre distintas aplicaciones

– Algoritmos rápidos y robustos

– Algoritmos de visualización implementados en H/W

– Se puede controlar el grado de precisión

Page 12: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 12

Lados de una cara : descripción

• Se distinguen dos lados– Poliedros (“malla” cerrada): interior/exterior

• Para optimizar los algoritmos de visibilidad

– Mallas abiertas: ¿cóncava ó convexa?, ¿superior ó inferior? , depende de cómo se mire ... Mejor hablar de lado 1 ó 2

• A veces se asigna distinta textura o material a cada lado

exterior

interior

“con

vexo

“cón

cavo

inferior ?

superior ?

Lado 1

Lado 2

Inferior ?

superior ?

Page 13: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 13

Lados de una cara : modelo numérico

• En poliedros las caras se definen enumerando ordenadamente sus vértices

• Modo de determinar los lados de una cara :– Incluir en la estructura su normal (suele haber coherencia

entre la normal y el recorrido de vértices)

– Recorriendo los vértices se determina la normal en la cara hacia el exterior del cuerpo

– Cuándo usar normales “incorrectas” (hacia dentro del cuerpo)

Page 14: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 14

...• Convenios de recorrido

– CCW CounterClockWise (lo más habitual) {12, 6, 23, 4}– CW ClockWise {12, 4, 23, 6}

• En VRML tiene un significado similar

http://www.best.com/~rikk/Book/

CW1223

4

6

CCW 1223

4

6

cara bien enumerada {12, 6, 23, 4}

mal {12, 4, 23, 6}

Page 15: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 15

Depurar modelos ++++

• “Missing polygon”– Comprobar

• Encoger• Explosionar (mover en dirección de la normal)

– Añadir automáticamente

• Cara exterior y cara interior “cambiadas”– Visualizar

– Cambio automático o interactivo

Page 16: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 16

Malla de polígonos: normal en vértices

– Muchas mallas de polígonos aproximan superficies curvas• Esfera, cilindro• Parche de una superficie reglada,• Parche de una superficie paramétrica, etc

– En cada vértice de la malla : normal a la superficie que se modela

• Cuando se construye la malla a partir de la superficie se pueden determinar las normales con precisión

• Al leer la malla de un fichero, éste puede contener las normales

• Si sólo se conocen las coordenadas de los vértices se pueden encontrar unas normales aproximadas

Page 17: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 17

Normal en vértice : gestión

• Importante para calcular el sombreado

• Almacenar en fichero vs. Calcular al leer el fichero– El fichero que describe la malla puede incluir las normales

en los vértices

– Muchas veces no vienen• Es fácil y rápido realizar una aproximación• Se ahorra memoria en el fichero• Es más rápido para transmitir por Internet (VRML)

• Datos de partida para aproximar normales en vértices– Lista de vértices

• Cada vértice : coordenadas de cada vértice

– Lista de caras• Cada cara : lista índices o apuntadores a vértices

Page 18: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 18

Normal en vértice : aproximación

• Cálculo aproximado: normal en cada vértice– Sumar las normales de las caras adyacentes al vértice

• n = n1 + n2 + n3 + n4

– Normalizar el vector resultante (las ecuaciones de sombreado usan vectores unitarios)

• nv = n / |n|n1

n2

n3n4

nv

Page 19: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 19

Normal en vértice : problema

• Problema– Cilindro : vértice común a cara lateral y a la “tapa”

• Un único vértice que pertenece a “superficies” distintas• Distinta normal según que esté el vértice en una cara u en otra

– El cubo

– Es necesario distinguir la normal de:• el vértice A en la cara 1 : nA1

• el vértice A en la cara 2 : nA2

• el vértice A en la cara 3 : nA3

nA3

nA1

nA2

A nA3

nA1

nA2

n1

n3

n2

A

no

Page 20: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 20

Normal en vértice : solución

• Solución : “crease angle” (VRML)

• Para calcular la normal en el vértice “K” de la cara “i”– Inicializar n al vector nulo

– Recorrer todos las caras que contienen al vértice K : j• Si el vector nj y el vector ni forman un ángulo inferior al

“crease angle” n = n + nj

– nKi = n / | n |

http://www.best.com/~rikk/Book/

Page 21: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 21

Normal en vértice : estructura datos

• Solución 1 : caras autónomas – La descripción de cada cara contiene:

• Lista vértices (coordenadas o índices o apuntadores)• Lista normales (componentes o índices o apuntadores)• Estas dos listas tienen el mismo número de elementos y se

corresponde cada vértice con su normal

• Solución 2 : organización en superficies – Cada superficie tiene

• Lista de caras (objetos)• Lista de vértices (objetos)

– Cada cara tiene una lista de vértices (índice o apuntador)

– La descripción de cada vértice contiene:• Coordenadas• Componentes del vector normal

Page 22: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 22

Problema topológico

• Evitar búsquedas caras vecinas (explosión combinatoria)

• Crear información topológica auxiliar– En cada vértice crear lista con las caras que le contienen

• Usar arrays o “linked lists”

Page 23: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 23

De una lista de caras crear superficies

• La lista de caras se descompone en “superficies”– Toda cara pertenece a una superficie y solo a una

– Todo par de caras tangentes pertenecientes a una misma superficie superan el test del “crease angle”

• Procedimiento creación de “superficies”– Crear(caras, lista vacía de superficies)

• Mientras haya caras que no pertenecen a una superficie– Elegir una cara J para empezar una nueva superficie – Añadir nueva superficie vacía– Añadir cara J a la superficie– Llamar al proceso de crecimiento de la superficie

• Normalizar normales en vértices

Page 24: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 24

...

– Crecimiento(cara J, caras, superficies)• Recorrer los vértices de J : V

– Recorrer las caras que contienen a V : K» Si K-J superan el test del “crease angle”

• Si K no supera el test “crease angle” con una cara que contienen a V y que pertenece a la superficie

• Duplicar vértice • Añadir la cara K a la superficie de la cara J • Incrementar la normal en V • Crecimiento(cara K, caras , superficies)

Page 25: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 25

Caras autónomas : cálculo normales

• Para cada cara : A– Crear lista de normales en vértices en cara A : nA1 nA2 nA3…

– Para cada vértice de la cara A : j• Inicializar nAj a vector nulo• Para cada cara que comparte el vértice j : K

– Si ángulo(nA, nK) < “crease angle”» nAj = nAj + nK

• Normalizar nAj ( nota : a nAj se ha sumado, al menos, nA )

Page 26: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 26

Discusión

• Caras autónomas– Ahorra direccionamientos (más rápido)

– Se adecúa más a la estructura de OpenGL

• Organización en superficies– Todas las caras de una misma superficie tienen el mismo

material

– Más compacto

Page 27: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 27

www.integrityware.com

Page 28: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 28

www.integrityware.com

Page 29: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 29

www.integrityware.com

Page 30: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 30

Algoritmos y estructuras ++++

• Dibujar polígonos en alambre

• Evitar dibujar aristas dos veces

• “Pick & rubber-banding”

• Silueta “profile”

Page 31: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 31

B-reps : superficies no planas +++

•(cfr Modelado de Superficies)

• Tipos de superficies– Paramétricas

• Bezier• NURBS• XXXXXXXXX

– Blending surfaces

– Regladas

– Cónicas

– XXXXXXX

• Superficies recortadas

Foley-12.18

Page 32: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 32

Barrido

• Foley 12.4, Hearn 10.14

• Elemento que barre– Línea

– Área

– Volumen

• Trayectoria Machover 8.7

– Lineal (extrusión)

– Rotación

– Trayectoria (curva, poli-línea)

• Ejemplo nodo VRML Carey 3.21

Page 33: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 33

Barrido (VRML)

http://www.best.com/~rikk/Book/

Page 34: Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2

Mod.Sólidos-2a A. García-Alonso 34

http://www.best.com/~rikk/Book/