470 likes | 670 Vues
Infografía 1. Modelización. La modelización trata de los formalismos matemáticos y las estructuras de datos que constituyen los modelos que sirven para representar objetos en infografía. Crear un modelo: buscar una representación matemática o algorítmica que funcione como el original
E N D
Infografía 1 Modelización © 2002 J.C.Dürsteler - UPF- IUA
La modelización trata de los formalismos matemáticos y las estructuras de datos que constituyen los modelos que sirven para representar objetos en infografía. Crear un modelo: buscar una representación matemática o algorítmica que funcione como el original de forma real o de forma aparente Los objetos son de una complejidad notable requieren modelos matemáticos y estructuras de datos específicos para la computación gráfica. Existen diversas posibilidades de representar un mismo objeto. Cuál usemos dependerá de los objetivos del proyecto de otros factores relacionados con el rendimiento la calidad del resultado. Introducción 2002 J.C.Dürsteler - UPF- IUA
Algunos de estos aspectos son: Precisión Necesidad de almacenamiento Aplicabilidad de los algoritmos de trazado Realismo del resultado. En muchos casos no es posible cumplimentar todos los requisitos que un modelo ha de cumplir para representar eficientemente un objeto. Ello obliga a veces de establecer un compromiso en cuanto al modelo que se va a utilizar. Introducción 2002 J.C.Dürsteler - UPF- IUA
Vistas 2D Representación en Planta Alzado Perfil Complicado el cambio de representación. Especialmente a 3D Requiere la participación del usuario. Se crean interactivamente Puede producir sólidos no válidos. Alambres Guarda vértices ligaduras (aristas) Muy usado Puede producir sólidos no válidos Genera vistas, planos, etc. No permite cálculos volumétricos, momentos, etc. Modelos Ambiguos 2002 J.C.Dürsteler - UPF- IUA
los objetos se representan mediante un conjunto de vértices unidos por aristas. aspecto poco realista extremada simplicidad trazado muy rápido no requieren muestreo, ideales para tareas en las que no es imprescindible el realismo. Hacerse una idea de una escena complicada Preparar una animación Ambiguo Modelos de AlambreWireframe 2002 J.C.Dürsteler - UPF- IUA
Estructuras de datos: Una lista contiene todos los vértices del polígono otra lista contiene los índices que apuntan a los vértices que forman una arista del objeto. Ejemplo. Rectángulo (0,1,0) (1,1,0) (0,0,0) (1,0,0) Modelos de AlambreWireframe 2002 J.C.Dürsteler - UPF- IUA
Modelos poligonales • Los modelos de alambre son útiles pero poco realistas. • Más realismo: objetos descritos mediante las superficies que los limitan. • La mayoría se puede representar mediante polígonos. • Sirven tanto para trazado de rayos como para proyección. 2002 J.C.Dürsteler - UPF- IUA
Modelos poligonales • Estructuras de datos: • Listas enlazadas • Típicamente 4 listas. • Lista con el número de polígonos,un apuntador a la lista de vértices y otro a la lista de polígonos. • Una lista de vértices • Lista de polígonos, cada uno apuntando a la lista de vértices del polígono • otra lista contiene los índices que apuntan a los vértices que forman una arista del objeto. 2002 J.C.Dürsteler - UPF- IUA
Modelos poligonales • La lista de vértices está accesible desde: • La lista principal. • Para poder aplicarles transformaciones geométricas y/o proyectivas • los índices de las aristas • para poder trazar los polígonos • La lista de vértices puede cambiar en la fase de recortado 2002 J.C.Dürsteler - UPF- IUA
Modelos poligonales • Con el esquema anterior en el caso de proyección de los objetos sobre la pantalla, cada arista se está considerando dos veces en la fase de recortado. • Para suplir este problema, inexistente en el método de trazado de rayos, se suelen utilizar otras estructuras de datos en las que existe también una lista de aristas. 2002 J.C.Dürsteler - UPF- IUA
Lista de polígonos, aristas vértices. La lista de aristas contiene para cada una de ellas apuntadores a los vértices que lo componen y a los polígonos Pol.1 y Pol.2 que la comparten. Modelos poligonales 2002 J.C.Dürsteler - UPF- IUA
El hardware especializado prefiere a menudo determinadas estructuras para especificar polígonos: Tiras (strips) GL_LINE_STRIP GL_TRIANGLE_STRIP GL_QUAD_STRIP Abanicos (fans) GL_TRIANGLE_FAN Habitualmente se utilizan triángulos como aproximación poligonal. Tira Abanico Modelos poligonales 2002 J.C.Dürsteler - UPF- IUA
La modelización de primitivas es cara en tiempo de CPU Cartelera: Rectángulo con la imagen del objeto Puede tener imágenes del objeto según la orientación del mismo según el estado de movimiento del objeto Muy usado en juegos Transparente Carteleras (Billboards) 2002 J.C.Dürsteler - UPF- IUA
Muchas veces es necesario modelar sólidos de forma que: Se puedan calcular propiedades Volumen Masa Densidad Propiedades físicas Se comprueben Colisiones Interferencias entre objetos Las representaciones poligonales no necesariamente representan sólidos Pueden tener la apariencia Pero son ambiguos. Modelado de Sólidos 2002 J.C.Dürsteler - UPF- IUA
Dominio de representación: el conjunto de objetos que se pueden representar mediante el modelo. Ha de ser suficientemente amplio. Completitud (no ambigüedad) y unicidad: una representación ha de ser claramente identificable y representar un y sólo un objeto. Unicidad: Una representación es única si cualquier sólido se puede representar de una única forma, dentro del marco del modelo. Imprescindible para poder decidir si dos objetos son iguales. Precisión: Un modelo es preciso si no es necesario realizar aproximaciones, como por ejemplo líneas curvas aproximadas por una series de segmentos rectilíneos. Validez : Un modelo no debiera permitir crear una representación inválida. Por ejemplo si estamos modelando sólidos, no debiera ser posible crear un objeto que no sea sólido. Propiedades deseables de un modelo (Requicha) 2002 J.C.Dürsteler - UPF- IUA
Facilidad: Debe ser fácil crear representaciones válidas y precisas. Clausura: Las operaciones definidas sobre objetos válidos deben producir otros objetos válidos. Por ejemplo bajo rotaciones, transformaciones geométricas, etc. Compacidad: El uso de memoria debe ser lo más pequeño posible. Eficiencia: Los algoritmos necesarios para representar sus propiedades y apariencia gráfica han de ser eficientes en términos de tiempo de cálculo. No es fácil crear modelos que cumplan todas estas especificaciones. Propiedades deseables de un modelo (Requicha) 2002 J.C.Dürsteler - UPF- IUA
Modelos de fronteras División jerárquica Objeto Superficie Polígonos Aristas / Vértices 2002 J.C.Dürsteler - UPF- IUA
Modelos de Fronteras Objeto Superficie Superficie Superficie Polígono Polígono Polígono Polígono Polígono ... Arista0 Arista1 Arista2 Arista3 Aristan ... Vert0 Vert1 Vert2 Vert3 Vertn Según Alan Watt 2000 2002 J.C.Dürsteler - UPF- IUA
Describen los objetos en función de las fronteras de sus caras Vértices Aristas Caras Las superficies curvas se aproximan por polígonos o se utilizan directamente (notable complicación) Poliedros Sólidos cuya frontera es un conjunto de polígonos cuyas aristas son miembros de un número par de poligonos Simple: el que es topológicamente equivalente a una esfera. Modelo de fronteras 2002 J.C.Dürsteler - UPF- IUA
El barrido de un objeto siguiendo una trayectoria en el espacio se denomina extrusión o barrido (sweep) Traslacional: un área 2D a lo largo de una trayectoria rectilinea siguiendo la normal al área El volumen es el área del objeto por la distancia de barrido Rotacional: de una figura en torno a un eje. Extrusión o barrido (Sweep) 2002 J.C.Dürsteler - UPF- IUA
Operación Crear cara + vector traslación Calcular la cara opuesta Generar las caras laterales. Estructura de datos Objetos 1ª Cara Numero de caras Caras 3 normales a la cara apuntador al 1r poligono Polígonos Tipo (Frontera o Agujero), 1ª arista, numero de aristas, poligono siguiente Aristas numeración consecutiva Puntos x, y, z Caras Normal x Normal y Normalz Primer pol. Poligonos Num aristas Pol. siguiente Tipo 1ª arista Extrusión o barrido (Sweep) (0,5,0) (10,5,0) Objetos 3 1ª Cara Nº Caras 2 (0,0,0) 3 6 (10,0,0) Puntos x y z 2002 J.C.Dürsteler - UPF- IUA
Aristas 1 2 3 Objetos Puntos 4 1 10 0 0 0 5 Poligonos 0 5 0 Caras 6 Fr 1 4 2 10 5 0 0 0 -1 1 7 Ag 5 4 0 10 0 0 0 0 1 3 8 Fr 9 4 4 3 2 0 1 0 0 5 9 Ag 13 4 0 6 2 0 0 -1 0 6 12 Fr 17 4 0 6 3 0 0 1 0 7 11 Fr 21 4 0 3 3 0 -1 0 0 8 10 ... ... ... ... 0 0 4 -1 0 0 9 16 ... ... ... ... 0 5 4 0 1 0 10 15 10 5 4 1 0 0 11 14 10 0 4 0 -1 0 12 13 3 2 4 ... 6 2 4 6 3 4 3 3 4 Extrusión o barrido (Sweep) (0,5,0) (10,5,0) 3 2 (0,0,0) 3 6 (10,0,0) 2002 J.C.Dürsteler - UPF- IUA
El modelo de fronteras de un poliedro simple cumple la fórmula de Euler. V-A+C=2 V=Vértices A=Aristas C=Caras La formula de Euler es condición necesaria, pero no suficiente para un sólido podríamos tener caras sueltas que cumplieran Euler Adicionalmente cada arista debe conectar 2 vértices debe estar compartida por dos caras al menos 3 aristas deben concurrir en cada vértice las caras no se deben interpenetrar Modelo de fronterasPoliedros 2002 J.C.Dürsteler - UPF- IUA
Para poliedros con agujeros en las caras V-A+C-F=2(P-G) V=Vértices A=Aristas C=Caras F=Anillos en las caras P=Partes o Cáscaras G=Agujeros pasantes Modelo de fronterasPoliedros V-A+C-F=2(P-G) 24-36+15-3=2(1-1) 2002 J.C.Dürsteler - UPF- IUA
Modelo de fronterasPoliedros • Operadores de Euler • Son un conjunto de operadores que satisfacen las fórmulas de Euler • Permiten transformar unos objetos en otros que siguen cumpliendo las formulas añadiendo, quitando o dividiendo las caras, vértices o aristas 2002 J.C.Dürsteler - UPF- IUA
Interesa combinar objetos para producir otros. Operadores booleanos Union Intersección Diferencia - Los operadores booleanos tradicionales pueden no dar otro sólido como resultado. Operadores booleanos 2002 J.C.Dürsteler - UPF- IUA
Un objeto puede considerarse definido por puntos interiores de la frontera los puntos frontera son aquellos cuya distancia al complemento del objeto es 0 no tienen por qué pertenecer al objeto. Un conjunto cerrado contiene a sus puntos frontera un conjunto abierto no contiene ninguno La unión de un conjunto con su frontera se llama clausura del conjunto. La regularización de un conjunto se define como la clausura de sus puntos interiores. Un conjunto que es igual a su regularización se denomina regular Podemos definir una operación regularizada A op* B = clausura(interior(A op B)) Operadores booleanos regularizados 2002 J.C.Dürsteler - UPF- IUA
Interior del Objeto Objeto con puntos frontera (gris oscuro) que no son parte del mismo. Puntos frontera en negro si pertenecen Regularización (clausura del interior) Regularización Clausura del Objeto 2002 J.C.Dürsteler - UPF- IUA
Arista extra Intersección regularizada Incluye la frontera si ambos están del mismo lado (1-2), la excluye si están en lados opuestos (3-4). La común (2-3) siempre se incluye. 1 2 3 4 Operadores booleanos vs regularizados Sección de dos objetos Antes de la intersección Intersección booleana 2002 J.C.Dürsteler - UPF- IUA
Introducimos * Unión regularizada * Intersección regularizada -* Diferencia regularizada Operadores booleanos regularizados Operaciones regularizadas en función de las no regularizadas 2002 J.C.Dürsteler - UPF- IUA
B B B B B B B B B B A A A A A A A A A A AiBi Ai-B Bi-A AfBi Af-B Bf-A AfBf (=) AfBf () Operadores booleanos regularizados Operaciones regularizadas en función de las no regularizadas BfAi 2002 J.C.Dürsteler - UPF- IUA
Los objetos se guardan como árboles con operaciones booleanas regularizadas como nodos internos geométricas con sólidos primitivos en los nodos externos (hojas) Como las operaciones no son conmutativas en general el arbol tiene un orden explícito de recorrido * -* Geometría constructiva de Sólidos (CSG) 2002 J.C.Dürsteler - UPF- IUA
Para representar los sólidos se recorre el árbol ordenadamente realizando las operaciones. Puede que se pretenda calcular la representación gráfica propiedades como centro de masas volumen momentos de inercia... La complejidad depende de la forma en que estén guardadas las primitivas de si el sólido final en la raíz del árbol se ha de representar o si sólo interesan algunas de sus partes CSG 2002 J.C.Dürsteler - UPF- IUA
Algunas representaciones sólo admiten primitivas sólidas Cualquier árbol representa otro sólido Realizar cortes obliga a utilizar otro sólido, cuando sólo se necesitaría un semiespacio. Otras utilizan Primitivas sólidas Semiespacios Hacer un corte resulta más sencillo Ciertas construcciones son más complejas Un cubo es la intersección de 6 semiespacios Introduce problemas de validez. Determinadas operaciones no dan un sólido Representaciones CSG 2002 J.C.Dürsteler - UPF- IUA
Representaciones CSG • Aplicaciones • Se ha popularizado en CAD 3D • Permite visualizar los sólidos a medida que los construyen • Los planos se generan solos • Cálculos volumétricos, de áreas, momentos de inercia, etc. • En modelizadores, para construir sólidos que después se trazan por otros medios (ray tracing…) 2002 J.C.Dürsteler - UPF- IUA
Modelado de sólidos 2002 J.C.Dürsteler - UPF- IUA
En el sistema hay definidas una serie de primitivas. Parametrizadas en una serie de propiedades Sujetas a las transformaciones geométricas habituales. En CAD es habitual definir piezas como engranajes, tornillos, etc parametrizables Muchos sistemas de instanciación no permiten la combinación booleana. Suele existir una jerarquía de primitivas. Si se quiere realizar otra primitiva hay que escribir el código necesario. Instanciación de primitivas 2002 J.C.Dürsteler - UPF- IUA
El sólido es descompuesto en una colección de sólidos adyacentes no intersectantes más primitivos que el original no necesariamente del mismo tipo que el original Modelos de descomposición celular 2002 J.C.Dürsteler - UPF- IUA
Se divide el espacio en una serie de celdas idénticas distribuidas en una malla regular el sólido se representa mediante la enumeración de las celdas que están ocupadas las que no Modelos de descomposición celular: Enumeración espacial 2002 J.C.Dürsteler - UPF- IUA
Arboles cuaternarios Caso particular Arbol de enumeración espacial Para reducir la memoria los voxels cambian de tamaño en función de las características del sólido a representar. Modelos de descomposición celular: Quadtrees 2002 J.C.Dürsteler - UPF- IUA
Modelos de descomposición celular: Quadtrees Copyrigyht Principles of Computer Graphics, Foley, Van Damm et al 0 Nivel 1 2 2002 J.C.Dürsteler - UPF- IUA
Un Octree es un Quadtree tridimensional La numeración es fundamental Se suele utilizar la numeración adjunta. pero no existe un esquema estándar. Escala=2nivel Modelos de descomposición celular: Octrees Copyrigyht Principles of Computer Graphics, Foley, Van Damm et al 2002 J.C.Dürsteler - UPF- IUA
Octree(x,y,z,escala){ escalaq=escala/2; for (i=0, i<=7,i++){ determinar_origen(i); if (fuera (nodo(i) ) guarda(blanco); else if (dentro(nodo(i) guarda(negro); else if escalaq >1 { guarda(gris); Octree(x1,y1,z1, escalaq); } else guarda(negro); } Modelos de descomposición celular: Octrees 2002 J.C.Dürsteler - UPF- IUA
Aplicaciones Medicina Tomografía axial computerizada Resonancia Magnética Nuclear Radiología Análisis de materiales por rayos X Modelos de descomposición celular: Octrees 2002 J.C.Dürsteler - UPF- IUA
Comparación de modelos 2002 J.C.Dürsteler - UPF- IUA