350 likes | 647 Views
>> Modelado – 2 << Representación de sólidos (a). LINK http:// www .sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones. Modelos o representaciones de sólidos. Geometría constructiva de sólidos (CSG) Replicado de primitivas ( Primitive instancing )
E N D
>> Modelado – 2 << Representación de sólidos (a) LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones 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 A. García-Alonso
... • Características (Features) • Restricciones (Constraints) • Modelos paramétricos • Modelos variacionales 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 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 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 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) 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 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) 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 A. García-Alonso
exterior superior ? superior ? Lado 1 “convexo” “cóncavo” interior Lado 2 Inferior ? inferior ? 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 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) A. García-Alonso
cara bien enumerada{12, 6, 23, 4} CCW mal{12, 4, 23, 6} 4 4 23 23 12 12 CW 6 6 http://www.best.com/~rikk/Book/ ... • Convenios de recorrido • CCWCounterClockWise (lo más habitual) {12, 6, 23, 4} • CW ClockWise {12, 4, 23, 6} • En VRML tiene un significado similar 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 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 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 A. García-Alonso
n2 nv n1 n3 n4 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| A. García-Alonso
n1 nA1 no nA1 A A nA3 nA2 nA3 nA2 n2 n3 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 A. García-Alonso
http://www.best.com/~rikk/Book/ 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 | 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 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” 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 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) A. García-Alonso
Caras autónomas : cálculo normales • Para cada cara : A • Crear lista de normales en vértices en cara A : nA1nA2nA3… • 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 ) A. García-Alonso
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 A. García-Alonso
www.integrityware.com A. García-Alonso
www.integrityware.com A. García-Alonso
www.integrityware.com A. García-Alonso
Algoritmos y estructuras ++++ • Dibujar polígonos en alambre • Evitar dibujar aristas dos veces • “Pick & rubber-banding” • Silueta “profile” 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 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 A. García-Alonso
http://www.best.com/~rikk/Book/ Barrido (VRML) A. García-Alonso
http://www.best.com/~rikk/Book/ A. García-Alonso