>> 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
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
... Características (Features) Restricciones (Constraints) Modelos paramétricos Modelos variacionales Mod.Sólidos-2a A. García-Alonso
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
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
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
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
Mod.Sólidos-2a A. García-Alonso
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
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
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
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 inferior ? superior ? Lado 1 Lado 2 exterior interior “convexo” “cóncavo” Inferior ? superior ? Mod.Sólidos-2a A. García-Alonso
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
... 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 CCW 12 23 4 6 cara bien enumerada {12, 6, 23, 4} mal {12, 4, 23, 6} http://www.best.com/~rikk/Book/ CW 12 23 4 6 Mod.Sólidos-2a A. García-Alonso
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
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
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
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 n3 n4 nv Mod.Sólidos-2a A. García-Alonso
Normal en vértice : 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 n1 n3 n2 A no nA3 nA1 nA2 A Mod.Sólidos-2a A. García-Alonso
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
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
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
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
... 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
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
Discusión Caras autónomas Organización en superficies 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
www.integrityware.com Mod.Sólidos-2a A. García-Alonso
www.integrityware.com Mod.Sólidos-2a A. García-Alonso
www.integrityware.com Mod.Sólidos-2a A. García-Alonso
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
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
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
Barrido (VRML) Mod.Sólidos-2a A. García-Alonso http://www.best.com/~rikk/Book/ Mod.Sólidos-2a A. García-Alonso
http://www.best.com/~rikk/Book/ Mod.Sólidos-2a A. García-Alonso