1 / 34

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

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

happy
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  3. ... • Características (Features) • Restricciones (Constraints) • Modelos paramétricos • Modelos variacionales 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 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 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 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) A. García-Alonso

  8. 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 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) 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 A. García-Alonso

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

  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) A. García-Alonso

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

  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 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 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 A. García-Alonso

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

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

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

  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 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” 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 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) 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 : 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

  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 A. García-Alonso

  27. www.integrityware.com A. García-Alonso

  28. www.integrityware.com A. García-Alonso

  29. www.integrityware.com A. García-Alonso

  30. Algoritmos y estructuras ++++ • Dibujar polígonos en alambre • Evitar dibujar aristas dos veces • “Pick & rubber-banding” • Silueta “profile” 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 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 A. García-Alonso

  33. http://www.best.com/~rikk/Book/ Barrido (VRML) A. García-Alonso

  34. http://www.best.com/~rikk/Book/ A. García-Alonso

More Related