Mod.Sólidos-2aA. García-Alonso1 >> Modelado – 2
-
Upload
yesenia-valderrama -
Category
Documents
-
view
214 -
download
0
Transcript of 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
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
Mod.Sólidos-2a A. García-Alonso 3
...
• Características (Features)
• Restricciones (Constraints)– Modelos paramétricos
– Modelos variacionales
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
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
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
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)
Mod.Sólidos-2a A. García-Alonso 8
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
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)
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
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 ?
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)
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}
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
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
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
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
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
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/
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
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”
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
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)
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 )
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
Mod.Sólidos-2a A. García-Alonso 27
www.integrityware.com
Mod.Sólidos-2a A. García-Alonso 28
www.integrityware.com
Mod.Sólidos-2a A. García-Alonso 29
www.integrityware.com
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”
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
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
Mod.Sólidos-2a A. García-Alonso 33
Barrido (VRML)
http://www.best.com/~rikk/Book/
Mod.Sólidos-2a A. García-Alonso 34
http://www.best.com/~rikk/Book/