Marching Quads: un poligonizador de superficies implícitas orientado a modelos para animación.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Marching Quads: un poligonizador de superficies implícitas orientado a modelos para animación."

Transcripción

1 PROYECTO FIN DE MÁSTER Marching Quads: un poligonizador de superficies implícitas orientado a modelos para animación. AUTOR: José Javier Macías Sánchez TUTORA: Caroline Larboulette Junio 2010

2

3 Agradecimientos En primer lugar, agradezco la gran ayuda prestada por mi tutora Caroline, quién me ha orientado perfectamente a lo largo de este trabajo para alcanzar la meta que nos propusimos, y poder mostrar el resultado de nuestro esfuerzo en este documento. También agradezco a Olivier su ayuda por todos los modelos que ha diseñado, y aportado, para utilizar en este trabajo de investigación. Por su ayuda en la resolución de problemas matemáticos, agradezco la ayuda al departamento de matemáticas de la Universidad Rey Juan Carlos, y en especial a Esther por su interés y dedicación. Finalmente, hago extenso este agradecimiento a todos los familiares, y amigos, que me han dado ánimos y me han ayudado en diversos aspectos de la investigación, permitiéndome solventar todos los baches que se han cruzado por mi camino, y así poder llegar con éxito a esta tan ansiada meta. i

4 ii Agradecimientos

5 Resumen Existen multitud de algoritmos enfocados a obtener mallas de polígonos que permitan aproximar modelos definidos implícitamente. Sin embargo, ninguno de ellos está encaminado a la obtención de mallas adecuadas para ser utilizadas en sistemas de animación. Como parte de un sistema de generación automática de personajes 3D para animación desde imágenes bidimensionales, proponemos un algoritmo de poligonización de superficies implícitas que permite obtener mallas de quads para deformación en animaciones, utilizando una restricción de Delaunay para superficies 3D que hemos adaptado para quads. Además, los polígonos de las mallas son ajustados a la simetría y a la curvatura del modelo. There is a large variety of algorithms that focus on obtaining polygonal meshes from implicit surfaces. However, none of them generates suitable meshes for use in animation systems. As part of an automatic 3D character generation system from bidimensional images, we propose an implicit surfaces poligonalization algorithm aimed at generating quad meshes suitable for animations. To this end, we propose an adapted 3D Delaunay surface constraint for quads. In addition, the polygons of the obtained mesh follow the symmetry plane as well as the curvature of the surface. iii

6 iv Resumen

7 Índice general Agradecimientos I Resumen III 1. Introducción Descripción del Problema Mallas de quads de personajes para animación Generación automática de personajes Trabajos relacionados Objetivos Desarrollo del proyecto Etapas de desarrollo Herramientas utilizadas Estructura del documento Estado del arte Superficies implícitas Definición matemática Vectores Normales Animación de superficies implícitas Visualización de superficies implícitas v

8 vi ÍNDICE GENERAL 2.2. Poligonización de superficies implícitas Marching Cubes Técnicas de simulación de partículas Técnicas de rastreo de superficie Marching Triangles Marching Triangles adaptativo Marching Triangles con restricción para aristas Marching Triangles evitando generación de cracks Conclusiones Algoritmo de Marching Quads Introducción Estructura del algoritmo Problemas a resolver Poligonización de la superficie implícita: Marching Quads D Delaunay Surface Constraint aplicado a quads Creación del nuevo quad candidato Alternativas de nuevos quads Cracks debido a vértices escogidos erróneamente Búsqueda del punto más cercano sobre la superficie implícita Algoritmo de búsqueda de punto cercano a la superficie Formulación matemática de intersección circunferencia-esfera Búsqueda del quad inicial Algoritmo de búsqueda de quad inicial Detalle de los pasos del algoritmo Cálculo de la distancia de proyección

9 ÍNDICE GENERAL vii 3.5. Cierre de cracks Introducción al algoritmo de cierre de cracks Aislamiento de un crack Cerramiento de un crack Mejoras en Marching Quads Aceleración del algoritmo Marching Quads Análisis del problema Solución al problema Crecimiento del algoritmo en base a la simetría del modelo Marching Quads adaptativo a la curvatura del modelo Análisis del problema Algoritmo adaptativo Resultados experimentales Características de Marching Quads Algoritmo básico Mejora acelerativa del algoritmo Mejora de quads ajustados a la simetría del modelo Mejora de quads adaptados a la curvatura de la superficie Resultados en modelos implícitos complejos Conclusiones y trabajos futuros Conclusiones Características de Marching Quads Limitaciones Comparación con otros algoritmos

10 viii ÍNDICE GENERAL Otras aplicaciones del algoritmo Trabajos futuros Mejora adaptativa Aceleración por simetría Mejora de orientación de quads por simetría Mejora en la búsqueda del punto cercano a la superficie Remallado en zonas de mallas enfrentadas Remallado en zonas de cracks Bibliografía 98

11 Índice de figuras 1.1. Animación de mallas mediante esqueleto Sistema de generación automática de modelos Boceto 2D y modelo de malla poligonal Definición matemática de una esfera Superficie implícita basada en esqueleto Patrones de Marching Cubes Mejoras a Marching Cubes Algoritmo de Hartmann Algoritmo edge-spinning Restricción de superficie 3D de Delaunay Pasos del algoritmo Marching Triangles Buen triángulo que generará crack Problemas que presenta el algoritmo de Marching Triangles Algoritmo de Edge-Constrained Marching Triangles Mejora de Fournier al algoritmo Marching Triangles Comparación entre algoritmos de poligonización Restricción de Delaunay aplicable a quads Restricciones para evitar malos quads ix

12 x ÍNDICE DE FIGURAS 3.3. Proyección de puntos para quads Detección de vértices cercanos Fallo en la proyección de un nuevo vértice Creación de quad utilizando arista enfrentada Alternativas de construcción de quads en Marching Quads Problema: quad que provoca fallo de restricción en existente Problema: quad deformado en superficie muy curva Generación del quad inicial Alternativas para cerrar un crack Solapamiento de quad con crack Marching Quads básico sobre esfera Comparativa de variación del factor de tamaño de quad Cierre de Cracks Poligonización del modelo de 5 esferas Crecimiento de la malla ajustado a la simetría Resultado de mejora de simetría Comparación para mejora adaptativa P Poligonización del modelo de humanoide Poligonización del modelo de humanoide sentado Poligonización del modelo de perro Problema de poligonización no adaptativa en modelos complejos Recorte del algoritmo adaptativo debido a estrechez del modelo Modelo de perro recortado por el algoritmo adaptativo Solución a la limitación del algoritmo adaptativo

13 Capítulo 1 Introducción 1.1. Descripción del Problema Mallas de quads de personajes para animación. En el mundo de la animación por computadora, se encuentra ampliamente extendido el uso de modelos de mallas poligonales, las cuales están formadas por un conjunto de polígonos en el espacio 3D. La unión de todos estos polígonos por medio de sus aristas, permite representar la superficie del modelo. En animación de personajes, a la malla poligonal se la denomina piel, ya que se corresponde con la parte exterior y visible del modelo al que representa. Sin embargo, para poder animar fácilmente el personaje, se utiliza un conjunto de elementos estructurales internos a la piel del modelo el cual, por analogía con los elementos estructurales de animales y humanos, se denomina esqueleto del modelo. Un modelo de malla poligonal con esqueleto utiliza técnicas de skinning para hacer coincidir los huesos del esqueleto con las zonas de la piel respectivas. De este modo, el animador solo tiene que centrarse en mover el esqueleto y, la herramienta de animación, automáticamente se encarga de deformar la malla poligonal acorde a las poses que define el artista. La figura 1.1 muestra tres poses distintas de un esqueleto formado por tres huesos, y la deformación de la piel correspondiente. En sistemas de visualización en tiempo real como los videojuegos, los elementos de las mallas suelen ser polígonos triangulares. Dada la característica coplanar del triángulo, y por ser el polígono más simple, el renderizado de estas mallas es muy 1

14 2 Capítulo 1. Introducción Figura 1.1: (a) Malla poligonal de un modelo de cilindro con esqueleto de dos huesos (b) Malla unida totalmente al hueso derecho. El movimiento de éste provoca que toda la malla se mueva conjuntamente. (c) Malla unida a ambos huesos de forma ponderada. El movimiento del esqueleto provoca una deformación suave en la malla. (d) Malla unida totalmente al hueso izquierdo. El movimiento del hueso derecho provoca que la malla no sea alterada. rápido. Sin embargo, las mallas de quads obtienen mejores resultados cuando se desea subdividir o deformar una malla. Debido a que la animación se basa en continuas deformaciones del modelo, estos polígonos de cuatro vértices son más adecuados para mallas orientadas a este propósito. Para obtener modelos poligonales, existen multitud de herramientas CAD (Diseño Asistido por Computador), tales como Autodesk Maya [May10], Autodesk 3D Max Studio [3Ds10] o Autodesk Softimage [Sof10], las cuales permiten modelar mallas en 3D. Sin embargo, el modelado de mallas es una tarea muy compleja, lenta y tediosa. Esta complejidad aumenta cuando el diseñador del modelo es un artista tradicional de dibujo en 2D, requiriendo o bien un aprendizaje de la herramienta CAD, o bien la necesidad de un modelador para que traduzca el boceto 2D a un modelo poligonal 3D Generación automática de personajes. Debido a que un dibujante tradicional de personajes suele no tener conocimientos sobre herramientas CAD, sería ideal un proceso automático que obtuviera modelos 3D orientados a su uso para animación, a partir de bocetos del personaje diseñados en 2D por el artista. Adicionalmente, para poder utilizar la malla obtenida en animaciones, el sistema debería generar automáticamente una estructura esquelética adaptada al modelo.

15 1.2. OBJETIVOS 3 Otra característica interesante para el artista 2D sería la de permitirle generar poses del modelo 3D, dibujando éstas en 2D. Un proceso automático sería el encargado de detectar el posicionamiento de la estructura esquelética para mover el esqueleto de la malla de manera acorde al dibujo. La motivación para la investigación de este trabajo, es la de crear una herramienta que permita automatizar la obtención de un modelo poligonal con estructura esquelética, y para su uso en animación, a partir de imágenes bidimensionales que defina el modelo 3D por medio de varias vistas ortogonales Trabajos relacionados. Actualmente, se está desarrollando un sistema similar que permite generar modelos 3D desde siluetas dibujadas en diferentes vistas 2D utilizando geometría solida constructiva [RDI10a, RDI10b]. La figura 1.2 muestra un modelo de avión dibujado en vista frontal y lateral que es convertido en un modelo tridimensional. El sistema que nosotros deseamos está orientado no a objetos estáticos, sino en modelos de caracteres que permitan ser animados. Figura 1.2: Sistema de generación automática de modelos a partir de siluetas dibujadas en 2D desarrollado en [RDI10a, RDI10b]. Un modelo de avión dibujado en vista frontal y lateral (izquierda) es convertido en un modelo 3D (derecha) Objetivos Se desea desarrollar un sistema que permita obtener mallas poligonales orientadas a la animación de personajes, a partir de una definición del modelo dada por varias imágenes bidimensionales correspondientes a vistas ortogonales (superior, lateral, frontal,...).

16 4 Capítulo 1. Introducción El resultado final del sistema que se desea diseñar ha de ser una malla de polígonos cuadrangulares, conteniendo un sistema esquelético asociado para poder animar el modelo. Además, cualquier característica que pueda ser añadida al modelo resultante para mejorar su uso para animaciones, deberá ser contemplada en la investigación. La figura 1.3 muestra un modelo definido en 2D en sus vistas frontal y superior. La parte derecha de la imagen muestra el mismo modelo definido tridimensionalmente como una malla poligonal de quads, la cual ha sido diseñada a mano con la herramienta Autodesk Maya [May10]. Lo que se pretende es conseguir que este proceso de generación de la malla poligonal se realice de manera automática, sin necesidad de recurrir a herramientas CAD. Figura 1.3: Boceto 2D y su modelo de malla poligonal correspondiente realizado a mano mediante la herramienta Autodesk Maya. Otro objetivo que se desea alcanzar es el de diseñar una herramienta que permita mover la estructura esquelética del modelo 3D obtenido en el sistema anteriormente descrito, a partir de poses representadas en dibujos bidimensionales. El sistema que se desea desarrollar, dada su complejidad, está dividido en cuatro bloques más simples: Obtención de un modelo implícito: Desarrollar una técnica que permita detectar las siluetas de las imágenes bidimensionales, fusionarlas y obtener un volumen tridimensional definido de forma implícita.

17 1.2. OBJETIVOS 5 Poligonización del modelo implícito: Debido a que el modelo resultante es deseable que esté definido de forma explícita mediante una superficie poligonal, se necesita desarrollar un algoritmo que permita pasar del volumen especificado de forma implícita a una superficie de polígonos, preferiblemente quads. Esqueletización de la malla: De las imágenes 2D se pueden obtener líneas centrales en el modelo como líneas esqueléticas del mismo. Fusionando estos esqueletos de cada imagen, se puede obtener un elemento estructural para el modelo de malla obtenido en el bloque anterior. Para que este esqueleto estructural esté dividido en huesos, es necesario una técnica que permita detectar las uniones entre huesos, observando aquellas zonas del volumen implícito donde hay cambios. Definición de poses: Se pretende hacer una coincidencia entre las estructuras esqueléticas de bocetos 2D con el esqueleto tridimensional. De esta forma, se podría hacer una traducción automática de una pose en el modelo bidimensional a la pose correspondiente en el modelo 3D. Este documento presenta una técnica diseñada para resolver el problema planteado en el segundo bloque. Se propone un algoritmo que permite obtener una malla poligonal de quads que aproxime la superficie del modelo definido de forma implícita mediante un conjunto de esferas. Los objetivos iniciales a alcanzar en esta investigación sobre poligonización de superficies implícitas eran: Investigación, estudio y análisis sobre superficies implícitas y algoritmos de poligonización de las mismas. Esta tarea inicial permitiría conocer como se encuentra el estado del arte en esta área de conocimiento y, mediante un análisis, poder recopilar la información necesaria que permita el diseño del poligonizador que mejor se adapte al sistema donde se desea implementar. Porque las mallas de quads son muy utilizadas en animaciones de modelos con esqueletos, se hace necesaria que la malla resultante estuviera compuesta por este tipo de polígonos.

18 6 Capítulo 1. Introducción Basándose en que los personajes suelen tener una cierta simetría, se deseaba investigar alternativas del poligonizador que obtenga mallas adaptadas a la simetría del modelo. Sería útil un equilibrado de los parámetros del programa que permita obtener, en tiempo razonable, mallas con un número de polígonos adecuado. Cualquier parámetro que influya en la calidad final de la malla también debería de ser analizado. Al igual que en los modelos generados mediante herramientas CAD, el tamaño de los polígonos debería ser variable en función de la curvatura del modelo Desarrollo del proyecto Etapas de desarrollo La investigación desarrollada, la cual se presenta en este documento, ha consistido de varias etapas: 1. En primer lugar se ha realizado una recopilación de información en el campo de los modelos implícitos, y de poligonizaciones de éstos. El estudio y análisis de esta información, permitió escoger el algoritmo de poligonización más conveniente para el sistema general de creación automática de personajes 3D. En concreto, el algoritmo escogido como punto de partida de este trabajo, ha sido el de Marching Triangles. 2. A continuación se pasó a una fase en la que se implementó Marching Triangles para poder analizar su funcionamiento, e investigar cómo adaptarlo para alcanzar los objetivos marcados. 3. El siguiente paso fue el de diseñar las estructuras de datos del programa. Para poder comunicar la fase de detección de imágenes 2D con el poligonizador, se diseñó un formato de fichero para definir las superficies implícitas que son entrada de datos del poligonizador. Luego, se diseñó una estructura de datos para las superficies implícitas y otra para mallas de Quads, estructuras que

19 1.3. DESARROLLO DEL PROYECTO 7 durante el desarrollo del proyecto han ido evolucionando para adaptarse a nuevos requerimientos y modificaciones. 4. La siguiente etapa, el grueso de este proyecto de investigación, ha consistido en la implementación del poligonizador Marching Quads. Primero se ha diseñado un algoritmo básico, y a continuación se le han añadido varias mejoras que se presentarán en este documento. 5. Una batería de pruebas finales ha permitido validar el algoritmo y obtener unas conclusiones de la investigación. También ha posibilitado la detección de problemas y excepciones que abren una vía de posibles mejoras futuras, documentadas en el capítulo 6. La metodología que se ha seguido, en concreto para los pasos 3 y 4 de las fases anteriores, ha sido evolutiva e incremental. Se partió de un diseño del algoritmo básico y, en base al análisis de resultados y a los nuevos requerimientos a añadir, el algoritmo ha evolucionado hasta alcanzar la versión final que se presenta en este documento. Debido al carácter investigativo del proyecto, se ha utilizado un método de prueba yerror.éste método consiste enformular hipótesis pararesolver unatarea, probarla idea y, en función del análisis de los resultados, validar la hipótesis. Como resultado del análisis, nuevas ideas pueden surgir que permiten evolucionar el sistema Herramientas utilizadas Los algoritmos propuestos en este proyecto han sido implementados en lenguaje C++, utilizando el compilador gcc bajo el sistema operativo Ubuntu Linux en su versión 9.10 Karmic Koala [Ubu10]. El código hace uso de la librería QGLViewer versión [QGL10] para el manejo de puntos, vectores y cuaterniones, éstos últimos usados para rotaciones de vectores. Con la finalidad de visualizar los modelos implícitos iniciales y las mallas poligonales resultantes, se ha desarrollado un visor basado en las librerías gráficas OpenGL versión 4 [Ope10]. Este visor ofrece además un entorno de pruebas y desarrollo del algoritmo. También se ha manejado el visor interactivo de escenarios 3D GeomView

20 8 Capítulo 1. Introducción en su versión [Geo10]. Esta documentación del proyecto ha sido redactada y compilada con la herramienta para procesado de textos L A TEX, utilizando el conjunto de herramientas Mik- Tex versión 2.8 [Mik10] para el sistema operativo Windows XP SP 3. Se ha utilizado el entorno de desarrollo eclipse versión Galileo [ecl10] utilizando el plugin Texlipse versión 1.4 [tex10] Estructura del documento En el siguiente capítulo, se abordará el estado del arte relacionado a este trabajo de investigación. Dicho capítulo se encuentra dividido en tres partes: superficies implícitas, algoritmos de poligonización de superficies implícitas, y una última parte donde se detallarán los trabajos enfocados al algoritmo de poligonización Marching Triangles, el cual ha sido elegido como base para el algoritmo que se presenta en este documento. El capítulo 3 detalla el algoritmo de Marching Quads que se ha desarrollado en este proyecto de investigación. Este algoritmo está seccionado en cuatro partes que serán analizadas por separado. A continuación, el capítulo 4 muestra tres mejoras que se han diseñado e implementado para el algoritmo básico. Primero se comentará una mejora de aceleración computacional del algoritmo, a continuación se hablará sobre una técnica que permite obtener una malla basada en la simetría del modelo implícito, y finalmente se detallará una mejora para adaptar el tamaño de los polígonos a la curvatura del modelo. El capítulo 5, exhibe los resultados obtenidos por esta nueva técnica que se presenta. Y un último capítulo 6 expone las conclusiones que se han analizado de los resultados generados. Además, este último capítulo ofrecerá una serie de lineas de investigación futuras para mejorar el algoritmo, basadas en las carencias observadas durante la interpretación de los resultados.

21 Capítulo 2 Estado del arte El trabajo que se propone en este documento se trata de un algoritmo de poligonización de superficies implícitas. Por ello, en este capítulo se hará un recorrido por varios trabajos enfocados en este campo. En primer lugar se verá una introducción a las superficies implícitas. En una segunda sección, se abordarán varias técnicas existentes para convertir superficies implícitas en mallas poligonales, y se terminará el capítulo detallando el algoritmo de poligonización de superficies implícitas Marching Triangles, en el cual está basada la técnica que proponemos Superficies implícitas Bloomenthal et al. realizaron un estudio bastante detallado y amplio sobre superficies implícitas [BcBB + 97]. Para ellos, una superficie implícita es una superficie definida en el espacio 3D de forma matemática, mediante una función denominada función implícita o potencial. El volumen del modelo implícito se da para puntos cutos valores de función potencial son inferiores a un valor umbral d. Valores de función que igualan al valor umbral se corresponden con puntos de la superficie del modelo, y valores superiores se corresponden con puntos externos al modelo. Generalmente se suele utilizar d = 0 como valor umbral. 9

22 10 Capítulo 2. Estado del arte Definición matemática El punto P(x,y,z) pertenece a la superficie implícita si f(x,y,z) = 0, siendo f la función implícita. La forma más simple de superficie implícita en 3D es la esfera, cuya función matemática es f(x,y,z) = (x a) 2 + (y b) 2 + (z c) 2 r 2, donde C(a,b,c) es el punto espacial del centro de la esfera, y r es el radio de la misma. Los puntos P(x,y,z) que generan valores 0 en la ecuación anterior, pertenecen a puntos de la superficie de la esfera. Si el valor de la función fuera positivo, entonces el punto se localizaría fuera de la esfera, y en el caso contrario, que resulte un valor negativo, el punto pertenecería al espacio interior de la misma. Normalmente, como es en el caso anterior, el valor de la función implícita se corresponde con una medida de distancia entre el punto y la superficie implícita Vectores Normales Condición necesaria para poder definir vectores normales a la superficie, la función implícita ha de ser continua y derivable. La forma de calcular este vector normal, para un punto cualquiera del espacio,es mediante el vector gradiente f = ( f x, f, f y z ) sobre las coordenadas del punto. Por ejemplo, supongamos el caso de una esfera de radio unidad y centrada en el origen, cuya función es f(x,y,z) = x 2 +y 2 +z 2 1. El vector normal de la esfera, se corresponde con f = ( f, f, f ) = (2x,2y,2z). La figura 2.1 muestra puntos x y z localizados en el plano XY(z = 0), y sobre la superficie implícita de esta esfera de ejemplo, y los vectores normales asociados a cada punto. Para funciones no derivables, una aproximación puede ser calculada utilizando métodos de cálculo numérico. Sin embargo, para un punto cuyo vector normal no puede ser calculado, su gradiente puede ser calculado ponderando el de los puntos vecinos. Estos puntos, como por ejemplo el de la cúspide e un cono, se denominan puntos singulares.

23 2.1. SUPERFICIES IMPLÍCITAS 11 N (- 2, 2, 0) n (- 2 /2, 2 /2, 0) N (0, 2, 0) n (0, 1, 0) P (0, 1, 0) N (-2, 0, 0) n (-1, 0, 0) P (-1, 0, 0) P (- 2 /2, 2 /2, 0) X Figura 2.1: (P) Puntos sobre la superficie implícita x 2 + y 2 + z 2 = 1, (N) normal y (n) vector normal unitario. Y Figura 2.2:(a) Esqueleto implícito.(b) Superficie implícita que genera el esqueleto. (c) Prototipo para obtener una rápida visualización (imagen obtenida de [BW90]) Animación de superficies implícitas Una superficie implícita puede definirse mediante esqueletos. Los esqueletos pueden estar formados por puntos, segmentos, o incluso poliedros. Una distancia definida para cada elemento del esqueleto, permite obtener los puntos pertenecientes a la superficie implícita. El ejemplo (a) de la figura 2.2 muestra un esqueleto formado por segmentos, y el caso (b) muestra la superficie implícita que genera dicho esqueleto. El esqueleto más básico es el punto, el cual define una esfera centrada en dicho punto, y con un radio igual a la distancia definida. Una colección de puntos, con una distancia asociada a cada uno, genera una superficie implícita como unión de todas estas esferas. Este trabajo utiliza este tipo de definición de superficies implícitas basado en un conjunto de primitivas esféricas. El movimiento de los esqueletos implícitos implica cambios en la superficie implícita. De esta manera, se pueden fácilmente animar modelos implícitos al deformarse la superficie por medio de elementos estructurales. [Par02] contiene un apartado donde se habla sobre la animación de superficies implícitas, métodos de detección de colisiones mediante aproximaciones a mallas poligonales, e incluso de un método para deformar la superficie como respuesta a colisiones.

24 12 Capítulo 2. Estado del arte Aun así, las mallas poligonales siguen siendo el tipo de modelos más extendido en animaciones. Es por ello que se necesitan algoritmos, como el que se presenta en este trabajo, que permitan convertir una superficie implícita en un modelo poligonal que aproxime al modelo Visualización de superficies implícitas La visualización de superficies implícitas puede realizarse fácilmente utilizando traza de rayos, mediante la búsqueda de puntos del espacio donde los rayos colisionan con la superficie implícita del modelo, resolviendo de forma matemática. Sin embargo, este método es lento, dificultando tareas que necesitan un tiempo de visualizado interactivo como el modelado de superficies implícitas. Existen otros métodos enfocados a obtener prototipos de la superficie implícita rápidamente, tales como la rasterización, detección de contornos o muestreos [BW90, DTG96, WH94]. Sin embargo, estos métodos no obtienen buenas visualizaciones ya que están enfocados a obtener una visualización muy rápida. El ejemplo (c) de la figura 2.2 muestra una visualización por prototipo mediante muestras discretas sobre la superficie implícita. Una alternativa más rápida que la traza de rayos para el visualizado es la de obtener una aproximación del modelo mediante una malla poligonal. En la siguiente sección se mostraran varias técnicas enfocadas a obtener mallas de polígonos que aproximen una superficie de un modelo definido implícitamente Poligonización de superficies implícitas Tal y como se ha visto en la sección anterior, los modelos definidos implícitamente tienen muchas ventajas pero, en algunas ocasiones, es necesaria una versión del modelo definida mediante una malla poligonal. Algunos motivos de porqué poligonizar una superficie implícita son: Para generar una buena visualización del modelo implícito, suele utilizarse un trazador de rayos, el cual obtiene buenos resultados a costa de un gasto computacional muy pesado. Por otra parte, existen herramientas de modelado

25 2.2. POLIGONIZACIÓN DE SUPERFICIES IMPLÍCITAS 13 implícito basados en técnicas de escultura [DC04, FCG01], las cuales necesitan obtener buenas visualizaciones en tiempos interactivos. Para estos casos, es posible visualizar el modelo mediante una aproximación de malla poligonal. En ocasiones, es necesario trabajar con métodos que necesiten discretizar una superficie implícita (métodos finitos, detección de colisiones,...). En estos casos, la poligonización del modelo permite obtener un conjunto finito de puntos sobre la superficie correspondiéndose a los vértices de la malla. Es muy común el uso de modelos poligonales en el mundo de la computación gráfica, incluso algunos autores lo consideran como el estándar para representar superficies geométricas, y la mayoría de sistemas gráficos (videojuegos, aplicaciones médicas, sistemas de simulación,...) tratan con este tipo de modelos. Sin embargo, existen ocasiones en los que los modelos adquiridos de de forma implícita, bien directamente por un modelador o bien por un sistema automático que genera este tipo de superficies. En estos casos, se requiere una poligonización del modelo. En nuestro sistema de creación automática de personajes 3D, la técnica que permite obtener un modelo tridimensional a partir de la definición bidimensional obtiene una definición del mismo de forma implícita, mediante una colección de primitivas esféricas. Por ello, se hace necesaria una fase que permita poligonizar la superficie para su uso en sistemas de animación. En general, las técnicas de poligonización de superficies implícitas se pueden dividir en tres grupos distintos. Muestreo espacial: Son técnicas que dividen el espacio para localizar puntos sobre la superficie implícita en cada muestra, y a la vez unir dichos puntos de cada muestra para generar los polígonos de la malla. Ajustes a la superficie: Estas técnicas parten de una malla poligonal inicial o muestras iniciales, y tratan posteriormente de ajustar los vértices o muestras a la superficie. Este ajuste suele realizarse mediante una simulación de partículas que permite a las muestras converger hacia la superficie hasta llegar a un

26 14 Capítulo 2. Estado del arte equilibrio entre partículas. En el caso de partir de un set de muestras inicial, se requiere un paso posterior que permita poligonizar las mismas. Recorrido de la superficie: Estas técnicas comienzan a partir de polígonos semilla que forman una malla inicial y, a partir de ellos, se van generando nuevos polígonos que se anexan a las aristas que bordean la malla. Iterativamente el modelo poligonal va añadiendo polígonos mientras se recorre la superficie implícita, hasta que se consigue cerrar la malla Marching Cubes Una de las técnicas de poligonización de superficies implícitas más influyentes ha sido la de Marching Cubes [LC87]. La técnica surgió por la necesidad de visualizar modelos 3D definidos mediante una colección de imágenes médicas obtenidas por escáneres (resonancias magnéticas, tomografías,...). Esta visualización permitiría analizar más fácilmente a un especialista médico las imágenes que se obtienen de los escáneres. El sistema se compone de dos fases: una primera técnica permite la fusión de imágenes en un modelo definido implícitamente, y una segunda donde se utiliza el algoritmo de Marching Cubes para generar la malla de triángulos que un sistema de visualización puede manejar para permitir al médico interactuar con el modelo. Este sistema, en esencia es similar al de creación de personajes 3D, pues consta de una fase que permite fusionar imágenes 2D y de otra que permite obtener la malla de polígonos. El algoritmo de poligonización Marching Cubes descompone el espacio en cubos de igual tamaño, evaluándose en los vértices de los mismos la función implícita. A continuación se detectan aquellos cubos que han evaluado con signo contrario alguno de los vértices. Cómo los puntos que evalúan a cero pertenecen a la superficie implícita, estos cubos son los que cortan a la superficie implícita. Un cubo tiene 8 vértices que pueden tener dos estados diferentes, dentro o fuera de la superficie, por lo que existen 2 8 = 256 maneras distintas en las que la superficie implícita puede cortar un cubo. Por simetría, este conjunto de patrones puede ser reducido a 14 (ver figura 2.3). Utilizando estos patrones, la superficie poligonal se

27 2.2. POLIGONIZACIÓN DE SUPERFICIES IMPLÍCITAS 15 obtiene interpolando en las aristas de todos los cubos del espacio. Para finalizar el modelo se generan las normales mediante interpolación de las normales de los vértices de los cubos, y se realiza un mapeo de texturas a partir de las imágenes médicas. Esta técnica sufre de varios inconvenientes. Uno de ellos es la ambigüedad que surge en algunos casos, debido a que un cubo puede corresponderse con varios patrones. Enfocados a este problema existen diversas técnicas que lo resuelven, y una de ellas utiliza como poliedro de división espacial el tetraedro [MW97], el cual no provoca ambigüedades. Otro inconveniente de Marching Cubes es la generación de multitud de triángulos deformados (triángulos de forma alargada) debido al tamaño constante de la partición espacial, y los cuales deben de ser evitados. Para resolver este problema, en [Blo88] Bloomenthal presenta una mejora adaptativa a la partición espacial utilizando Octrees (ver ejemplo (a) de la figura 2.4). Esta técnica descompone el espacio en 8 cubos, y gradualmente va descomponiendo aquellos cubos que cortan la superficie implícita hasta alcanzar un cierto tamaño mínimo para los cubos. Aunque todas estas técnicas reproducen una buena aproximación del modelo, son computacionalmente costosas. Además, porque estas técnicas no se centran en mantener buena topología de la malla resultante, se obtienen multitud de triángulos algo deformados Técnicas de simulación de partículas Ya se vio en la sección cómo una superficie implícita puede ser muestreada usando métodos basados en físicas para su visualización. La misma idea se puede utilizar para obtener una malla poligonal, tal y como se presenta en [dfdmgtv92]. Este trabajo muestra dos formas de realizar la simulación física. La primera es utilizar un sistema de partículas dinámico, simulado mediante el campo de fuerza que genera el gradiente del modelo. Cuando la simulación llega a un equilibrio, debido a que las partículas buscan minimizar la energía potencial, éstas se localizan sobre la superficie implícita. Además, las partículas se encuentran distanciadas de forma uniforme y adaptadas a la curvatura de la superficie. Para obtener la malla

28 16 Capítulo 2. Estado del arte Figura 2.3: Diferentes patrones en los que un cubo puede cortar a la superficie implícita (imagen extraída de [LC87]). Figura 2.4: (a) Mejora adaptativa a Marching Cubes utilizando un Octree. (b) Técnica de rastreo de superficie mediante cubos (imágenes extraídas de [Blo88]). poligonal, la nube de partículas resultantes se triangula mediante el algoritmo de Delaunay [Del34]. La otra simulación física que presentan, se realiza mediante un sistema de masamuelle. Este sistema comienza con una triangulación espacial, cuyos polígonos se encuentran conectados por muelles. Utilizando el gradiente como fuerza de deformación, la malla inicial tiende hacia la superficie, a la vez que los muelles permiten distanciar a los vértices de forma uniforme. Aunque estas técnicas obtienen buenos resultados, es necesario que la superficie implícita requiera de un campo de fuerzas para poder realizar la simulación. Debido a que el cálculo del gradiente es una tarea compleja en los modelos implícitos que se utilizan en este trabajo, ya que es complicado calcular el campo de fuerza en un punto interno a varias primitivas implícitas, estos sistemas de simulación fueron descartados en esta investigación.

29 2.2. POLIGONIZACIÓN DE SUPERFICIES IMPLÍCITAS Técnicas de rastreo de superficie Estas técnicas comienzan desde un polígono inicial, localizado sobre la superficie implícita, e iterativamente van añadiendo polígonos a la frontera de la malla hasta lograr cerrarla. La construcción de los nuevos polígonos son obligados a ajustarse a la superficie implícita para ir recorriendo la superficie del modelo. Bloomenthal presentó una técnica de poligonización basado en rastreo de superficie [Blo88] (ver ejemplo (b) de la figura 2.4). Su propuesta parte de un cubo semilla sobre la superficie implícita, e iterativamente va recorriendo la superficie mediante la construcción de más cubos. Utilizando los patrones de Marching Cubes en cada cubo, se va generando la malla poligonal. Sin embargo, esta técnica genera triángulos algo deformados al igual que Marching Cubes. Otra técnica de rastreo de superficies es la propuesta por Hartmann [Har98], la cual se descompone de varios pasos. En el primero de ellos, se localiza un punto sobre la superficie y se crea un hexágono centrado en dicho punto, y se localizan los puntos más cercanos sobre la superficie para cada uno de los vértices del hexágono. De este modo se obtienen los seis primeros triángulos de la malla. De forma iterativa, el algoritmo intenta crear nuevos hexágonos desde los vértices que bordean de la malla, priorizando el orden de procesamiento en base al ángulo de los vértices en la zona exterior de la malla. A partir del vértice escogido se genera un nuevo hexágono detectando aquellos vértices cercanos (ver figura 2.5). Otra técnica de recorrido de superficie es Edge Spinning [CS04]. Al igual que las anteriores, se parte de un triángulo inicial localizado sobre la superficie implícita, y de forma iterativa se anexan nuevos triángulos para completar la malla. Para ello, se buscan nuevos vértices sobre la superficie implícita que permitan formar un nuevo polígono desde una arista del borde de la malla. La búsqueda del nuevo vértice se realiza proyectando un punto a una cierta distancia desde la arista frontera en el plano de su triángulo, y sobre un círculo centrado en la arista que permita garantizar que el nuevo polígono no es deformado. Computando la función implícita y el gradiente, se rota el punto proyectado de manera iterativa hasta encontrar un punto que descanse sobre la superficie implícita (ver figura 2.6).

30 18 Capítulo 2. Estado del arte Este algoritmo permite validar los triángulos que se crean computando el ángulo que forman con las aristas vecinas. Los tres casos posibles de construcción del nuevo triángulo son: construcción directa, construcción utilizando alguna de las aristas vecinas o, en caso de arista vecina corta, proceder a una reparación de la malla. Latécnica,controlaquelosnuevosvérticesquesecreannoseencuentrencercade la frontera de la malla. En estos casos se fusionan ambas fronteras, o bien fusionando el nuevo vértice con el cercano encontrado, o bien fusionando el vértice cercano al nuevo. Figura 2.5: Hexágono que permite poligonizar parte de la superficie implícita en el algoritmo de Hartmann (imagen extraída de [Har98]). Figura 2.6: Principio de construcción de un nuevo triángulo por el algoritmo de edge-spinning (imagen extraída de [CS04]). Otra técnica de poligonización de superficies por rastreo de superficie es la denominada Marching Triangles [HSIW96a, HSIW96b], muy similar a al algoritmo anterior aunque restringiendo la creación de los nuevos triángulos a un test de topología basado en la triangulación de Delaunay [Del34]. En nuestro sistema de creación automática de personajes 3D, la calidad de la malla poligonal es más prioritaria que la rapidez de computación de la misma. El motivo es la finalidad del modelo para su uso en animaciones que requieren una buena estructura topológica de la malla, sin necesidad de obtención de la ella en tiempos interactivos. De los algoritmos anteriores, el algoritmo de Marching Triangles es quizás el que mejor calidad de malla obtiene, ya que basa la construcción de los polígonos en una restricción topológica. Además, este algoritmo es uno de los más aceptados actualmente para poligonizar superficies implícitas, existiendo una amplia variedad

31 2.3. MARCHING TRIANGLES 19 de trabajos encaminados a mejorarlo [HIIT97, AG01, MF02, Fou09]. Por los motivos anteriores, Marching Triangles ha sido el algoritmo escogido como base para el trabajo que aquí se presenta. Por ello, en la siguiente sección se detallará este algoritmo junto a los trabajos relacionados Marching Triangles El algoritmo de Marching Triangles, presentado por Hilton et ál. [HSIW96a], es una técnica de poligonización de superficies implícitas basado en el rastreo de superficie, la cual fue diseñada para poligonizar superficies extraídas como fusión de un rango de imágenes [HSIW96b]. Es algoritmo parte de un triángulo semilla localizado sobre la superficie implícita, e iterativamente añade nuevos triángulos desde las aristas que bordean la malla hasta que se completa la malla. Para preservar una correcta topología de la malla, un nuevo triángulo solamente puede ser anexado a la malla si pasa la restricción de superficie 3D de Delaunay, la cual permite validar que el polígono mantiene una buena estructura de malla. La restricción de Delaunay para superficies 3D aprueba la anexión de un nuevo triángulo T new a la frontera de la malla, si alguna parte de ésta con la misma orientación que T new, no se encuentra dentro de la circumesfera del triángulo T new, siendo ésta la esfera que pasa por los tres vértices de dicho triángulo. Esta restricción está basada en el algoritmo de Delaunay para triangular una nube de puntos, pero extendida para superficies triangulares en el espacio 3D. En la figura 2.7 se muestra un ejemplo de triángulo, y su esfera circunscrita que hacederestricción.estaesferaestásituadaenelcircumcentroc t deltriánguloypasa por los tres vértices del mismo. En caso de que alguna parte de la malla estuviese dentro de la esfera, entonces el algoritmo descarta la construcción del triángulo. Marching Triangles es un proceso iterativo que escoge una arista frontera de una lista de aristas que quedan por computar, e intenta crear un nuevo triángulo a partir de ella. Por cada iteración del algoritmo, donde se computa una de las aristas frontera de la lista e bound = e(x i,x j ), los pasos que realiza el algoritmo son:

32 20 Capítulo 2. Estado del arte Figura 2.7: Restricción de superficie 3D de Delaunay (imagen extraída de [HSIW96a]). Figura 2.8: Ejemplos 2D de los pasos (a)- 1; (b)-4; (c)-6 del algoritmo de Marching Triangles. El caso (d) se corresponde con el paso añadido en el reporte técnico posterior (Imagen extraída de [HIIT97]). 1. Estimación del nuevo vértice del triángulo localizando un punto aproximado x proj al proyectar una distancia constante l proj desde el punto medio de la arista, y en el plano del triángulo frontera T bound (x j,x i,x k ). 2. Se busca el punto x new sobre la superficie implícita más cercano a x proj. 3. Se descarta esta arista (termina este paso de iteración) si la orientación de la superficie implícita en x new, dada por su normal n new, es opuesta a la del modelo n T (normal del nuevo triángulo T new (x i,x j,x new )): n T n new < 0. Este paso asegura que el nuevo vértice no se corresponde con una zona errónea del modelo, sino a la geometría local del objeto. 4. SeaplicalarestriccióndeDelaunayen3DalnuevotriánguloT new = T(x i,x j,x new ). 5. SiT new pasalarestricción, entonces seañadet new,x new ylasaristase(x j,x new ) y e(x new,x i ) a la malla actual. Estas aristas nuevas además son añadidas a la lista de aristas frontera para ser computadas en una iteración del algoritmo posterior, y así permitir a la malla crecer. 6. Enelcasodequelarestricciónfalle,serepitenlosdospasosanteriores4y5utilizandolosvérticesfronteraadyacentes:elvérticevecinoprevioT prev (x i,x j,x prev )

33 2.3. MARCHING TRIANGLES 21 y el vértice vecino siguiente T next (x i,x j,x next ). Este paso intenta crear triángulos que conecten vértices de la malla que permitan cerrar zonas de la malla. 7. Si en los tres intentos de creación de un triángulo falla la restricción (de forma directa, usando arista anterior y usando arista posterior), entonces la arista e bound es descartada sin producir un nuevo triángulo para la malla. El algoritmo de Marching Triangles, por estar basado en triangulaciones de Delaunay, genera mallas topológicamente correctas (triángulos que tienden a la equilateralidad), y es computacionalmente más rápido que el anterior algoritmo de referencia más extendido, el de Marching Cubes. Sin embargo, este nuevo algoritmo genera cracks en zonas de la malla donde las fronteras se encuentran enfrentadas, ya que la restricción impide cerrar la zona. Por este motivo, los mismos autores proponen una solución a este problema en un reporte técnico posterior [HIIT97]. La solución que aportan es la de añadir un paso más al algoritmo de intento de construcción del nuevo triángulo. Este paso trata de crear el nuevo triángulo utilizando un vértice solapado. Para ello, se busca si hay algún triángulo T overlap de la malla que se encuentre dentro de la esfera de Delaunay del triángulo T new (x i,x j,x new ), ambos con misma orientación. En este caso, se aplican los pasos 4 y 5 del algoritmo para testear la restricción de Delaunay al triángulo T(x i,x j,x overlap ) donde x overlap es el vértice más cercano del triángulo solapado T overlap. En la figura 2.8 se muestran ejemplos de cuatro de los pasos más importantes del algoritmo de Marching Triangles, donde la arista que se está computando se corresponde con e bound = e(x i,x j ), que pertenece al triángulo frontera T bound (x j,x i,x k ). Elejemplo(a)estáasociadoalpaso1delalgoritmo,elcualestimaelnuevovértice del triángulo a través de una distancia constante de proyección. El ejemplo (b) se corresponde con el paso 4 del algoritmo donde se testea la restricción de Delaunay para el triángulo que usa el nuevo vértice proyectado. En(c), correspondiente al paso 6, se muestra un triángulo creado usando la arista vecina siguiente, y la esfera para chequear la restricción. En el ejemplo (d) se muestra el paso añadido en el reporte técnico para cerrar la malla. Nótese como el vértice solapado es utilizado para crear un triángulo que permite unir la parte superior e inferior de la malla, evitando una

34 22 Capítulo 2. Estado del arte brecha en la zona Marching Triangles adaptativo En un trabajo posterior de Akkouche y Galin [AG01], se analizan varios problemas que sufre el algoritmo de Marching Triangles original, y se proponen varias alternativas de mejoras. Uno de los inconvenientes que sufre el algoritmo es la aparición de cracks en la malla, incluso utilizando la alternativa de solapamiento del reporte técnico. Esto es debido a que la restricción de Delaunay solamente tiene en cuenta la topología del nuevo triángulo con respecto a la malla actual, sin tener en cuenta futuros triángulos que podrían haber tenido una mejor esfera de restricción. En la figura 2.9 se está computando la arista e probando la restricción de Delaunay para el triángulo T usando la esfera S. Esta restricción valida la construcción del nuevo triángulo, ya que no hay parte de la malla dentro de la esfera. Sin embargo, el nuevo punto x p no satisface la restricción para una existente arista frontera en el triángulo T, ya que se encuentra dentro de su esfera de restricción S. Por contra, nótese que si se hubiese procesado antes la arista de T en vez de la de T, el punto x p podría haber quedado más intermedio a ambas aristas evitando el crack. Conscientes dequecracks seproducen enlamalla, ydeque éstos sondifícilmente evitables, Akkouche y Galin proponen un algoritmo para cerrar los resultantes cracks en una segunda pasada del algoritmo. Este procedimiento para rellenar los agujeros simplemente conecta los vértices del crack sin crear nuevos, en base a que el tamaño del crack no excede el tamaño de un triángulo porque en caso contrario la restricción de Delaunay habría permitido la construcción de alguno. Este algoritmo tiene dos fases: Partición del contorno: de forma iterativa se busca una arista del crack que pueda ser unida a un vértice del mismo, de forma que el triángulo resultante divida al crack en dos más pequeños. Esta división se realiza iterativamente en cada uno de los cracks resultantes hasta que un mínimo de tamaño de crack es alcanzado, o el crack no puede ser partido en más mitades.

35 2.3. MARCHING TRIANGLES 23 Figura 2.9: Ejemplo de triángulo T que pasa la restricción de Delaunay, pero que posiblemente generará un crack por no tenerseencuentauntriángulot delamalla existente (imagen extraída de [AG01]). Figura 2.10: Tres problemas que presenta el algoritmo de Marching Triangles. (a) Triángulo que cruza otro existente debido a una arista corta. (b) Triángulo que no localiza la existencia de un vértice cercano. (c) Triángulo que solapa otro existente (imagen extraída de [MF02]). Mallado del contorno: se finaliza rellenando los huecos existentes mediante triángulos. En este paso hay que diferenciar entre dos casos distintos: el de huecos simples y el de emparejamiento de contornos enfrentados, el cual es más complejo. La dificultad de este último caso reside en distinguir las situaciones en las que hay que unir contornos, o cuando no es necesario ya que pertenecen a distintas partes de la malla. Otra importante mejora que añaden al algoritmo original es la de construir los triángulos de forma que su tamaño se adapte la curvatura del modelo. Para ello se varía la distancia de proyección en función a la curvatura de la superficie implícita donde el nuevo triángulo va a ser creado. Aunque se puede evaluar las hessianas de la función campo para anticipar la curvatura de la arista a computar, ellos proponen una alternativa más rápida en tres pasos: Corrección geométrica: seproyecta el punto medio x m delaarista acomputar e sobre la superficie implícita para obtener el punto x s. Computación del punto de partida: siguiendo la dirección tangencial a la superficie t, se proyecta x s una distancia d = 3 e para aproximar un 2

36 24 Capítulo 2. Estado del arte triángulo equilátero. La distancia e es la media entre las longitudes de la arista a computar y sus vecinas para mantener un tamaño medio de triángulo. Además se utiliza un límite mínimo de distancia para que, en regiones planas, no se creen triángulos demasiado pequeños después de haber atravesado una región de alta curvatura. Computación del vértice sobre la superficie: mediante bisección entre un punto fuera de la superficie implícita y otro interior, y utilizando el gradiente de la función implícita, se aproxima el punto obtenido en el paso anterior a la superficie implícita. En este mismo trabajo, ambos autores también proponen el uso de su algoritmo como parte de una herramienta de modelado implícito interactiva basado en esqueletos. Para ello, utilizan una técnica incremental que permite eliminar triángulos de una zona de la malla donde la superficie implícita ha sido modificada, generando un conjunto de aristas fronteras debido al agujero que se forma. Invocando el algoritmo de Marching Triangles posteriormente sobre esta lista de aristas, la malla se vuelve a cerrar, ajustándose los nuevos triángulos a la nueva superficie modelada Marching Triangles con restricción para aristas McCormick y Fisher desarrollaron una técnica [MF02] orientada a mejorar las mallas que se obtienen en Marching Triangles para modelos con aristas que unen polígonos en un ángulo bastante abrupto (por ejemplo aristas que unen el techo con la pared de un edificio), ya que estas aristas suelen ser recortadas por el algoritmo de Marching Triangles (ver ejemplo (a) de la figura 2.11). La técnica que proponen los autores permite preservar las aristas que se encuentran en zonas angulosas. Primeramente se localizan dobleces mediante un chequeo de discontinuidades en el modelo, generando aristas en las lineas que forman la discontinuidad. A continuación, utilizan el algoritmo de Marching Triangles para generar los polígonos del modelo, restringiendo estos a las aristas de discontinuidades antes creadas (ver ejemplo (b) de la figura 2.11).

37 2.3. MARCHING TRIANGLES 25 Figura 2.11: (a) Detalle de esquina en un modelo recortada por Marching Triangles. (b) Detección de líneas de dobleces por algoritmo Edge-Constrained Marching Triangles y aristas de polígonos restringidas a la línea de doblez (imágenes extraídas de [MF02]). Figura 2.12: (a) Modificación de la esfera de restricción en el algoritmo de Fournier. (b 1 ) Malla resultante de computar la arista A antes que B y (b 2 ) comparación de la malla al computar primero la arista B (imágenes extraídas de [Fou09]) Marching Triangles evitando generación de cracks Existe un proyecto más reciente de mejora del algoritmo Marching Triangles desarrollado por Fournier [Fou09]. Este trabajo se enfoca en realizar la poligonizaciónenuna única pasada, sin lanecesidad de unproceso para cerrar cracks. Además, introducen una adaptación del algoritmo a un reciente modelo de definición de superficies implícitas basado en vectores (Vector Field Distance Transform) [FDB07]. En este trabajo, Fournier detecta varios problemas en el algoritmo original de Marching Triangles. El caso (a) de la figura 2.10 muestra uno de estos problemas, donde un triángulo muy estrecho es creado desde una arista muy corta. Además, aunque este nuevo triángulo solapa otro ya existente en el modelo, el polígono no es descartado debido a que su esfera de restricción de Delaunay no contiene algún vértice de la malla. El caso (b) destapa otra deficiencia del algoritmo original. En el ejemplo se crea un nuevo triángulo que aparentemente es bueno, pero que no tiene en cuenta que tiene un vértice cercano dejando un espacio libre muy estrecho. Esto provocará que en iteraciones más avanzadas, o bien se cree un triángulo muy estrecho (deformado),

38 26 Capítulo 2. Estado del arte o bien se genere un crack en la zona. El último caso de la figura 2.10 presenta otro problema en la construcción de triángulos. En esta ocasión, el vértice proyectado intersecta un triángulo existente,y sin embargo la esfera de restricción permite su construcción. Este caso es muy similar al visto en la figura 2.9, ya que se tiene solo en cuenta que el nuevo triángulo sea topológicamente bueno con respecto al resto de la malla, pero no tiene en cuenta que el resto de la malla lo sea con el nuevo vértice. Las diferentes mejoras que plantean para el algoritmo, en su versión para campos escalares, se resumen en: Mejora para la estimación del nuevo vértice: para adaptar el triángulo a la curvatura, se proyecta un punto cierta distancia dependiente de la arista frontera, al igual que se propuso en [AG01]. A continuación, localizando el vóxel más cercano sobre la superficie implícita, e interpolando a entre éste y su vóxel de signo opuesto (al otro lado de la superficie implícita), se obtiene el punto más cercano sobre la superficie. Mejora al test de Delaunay: debidoaquelaesferadedelaunayespropensa a producir cracks en la malla, una nueva esfera es propuesta en este trabajo que relaja la restricción, y que permite que más triángulos sean aceptados. Se utiliza una esfera más pequeña que pasa por el nuevo vértice y el punto medio de la arista a procesar, y por tanto centrada en el punto medio de ambos (ver ejemplo (a) de la figura 2.12). Porque esta nueva esfera no engloba todo el triángulo, es necesario un test adicional para comprobar que no hay intersección entre el nuevo triángulo y los existentes en la malla. Mejora a la construcción de triángulos por alternativas: como adición a las alternativas que el algoritmo original realiza en caso de fallo (usando la arista vecina previa, usando la arista vecina siguiente y usando un vértice solapado), se propone cambio en el caso de encontrarse vértices solapados. Si el vértice solapado produce un fallo en la restricción de Delaunay, es posible que algún otro vértice solapado en la esfera pueda ser construido satisfactoriamente. Por ello se hace necesaria la comprobación no solamente del vértice solapado más cercano, sino de todos los vértices solapados que se localicen.

39 2.4. CONCLUSIONES 27 Mejora al orden de procesamiento de aristas: según el orden de procesado de las aristas frontera en el proceso iterativo del algoritmo de Marching Triangles, se obtienen diferentes triangulaciones en la malla resultante (ver ejemplo (b) de la figura 2.12). El algoritmo original no contempla un orden especifico, sino que utiliza una cola. Fournier probó diferentes alternativas y llegó a la conclusión de que se obtiene mejores resultados, en cuanto a minimizar el número de cracks en la malla se refiere, utilizando un orden de procesado siguiendo el contorno de la malla. Para ello se escogen las aristas siguiendo una dirección, por ejemplo hacia la arista vecina siguiente desde la arista procesada Conclusiones La primera fase del sistema de creación automática de personajes 3D a partir de imágenes 2D es la encargada de traducir el modelo definido por las imágenes en un modelo volumétrico definido implícitamente mediante un conjunto de esferas. Por este motivo, el poligonizador que se presenta en este trabajo ha tenido que ser adaptado a esta representación del modelo implícito inicial. Aunque es sencillo detectar si un punto se encuentra interior, exterior o sobre la superficie implícita definida por un conjunto de esferas, es más complejo obtener el campo de fuerzas interno al modelo mediante el cálculo del gradiente. Es por este motivo que algoritmos de poligonización basados en simulación fueron descartados para este trabajo. El algoritmo de Marching Triangles, en base a la información recopilada, parece ser el algoritmo de poligonización más aceptado en la actualidad. El motivo de esta aceptación es porque la técnica, por estar basada en la restricción de Delaunay, está orientada a la obtención de mallas topológicamente buenas. Los casos (a) y (b) de la figura 2.13 demuestran que la malla obtenida con Marching Triangles tiene una estructura de polígonos bastante homogénea con respecto a la malla que se obtiene con el anterior algoritmo de poligonización de referencia de Marching Cubes, el cual no atiende a la forma de los polígonos que genera. Porque Marching Triangles es el algoritmo de referencia actual, y además existen

40 28 Capítulo 2. Estado del arte Figura 2.13: Malla obtenida con diferentes algoritmos de poligonización para una superficie implícita de esfera: (a) Marching Cubes; (b) Marching Triangles; (c) Marching Quads (imágenes (a) y (b) obtenidas de [HIIT97]). multitud de trabajos que permiten mejorar este algoritmo (sección 2.3), en esta investigación se decidió utilizar una técnica similar para ser usada como segunda fase del sistema de generación automática de personajes 3D. Sin embargo, el algoritmo de Marching Triangles, éste no está enfocado a obtener mallas para su uso en sistemas de animación. Las mallas deformables de personajes suelen estar construidas con polígonos cuadrangulares, situados y orientados en base a la simetría del modelo, ya que estas características facilitan la animación de personaje. En un principio, para obtener mallas de quads, se podría haber realizado una poligonización mediante Marching Triangles y un paso posterior de conversión a malla de quads. Sin embargo, se ha optado por una adaptación de Marching Triangles para generar directamente una malla de quads. Esta adaptación es el algoritmo demarching Quads que se presenta en este documento, y el cual permite además adaptar los quads a la simetría y a la curvatura del modelo. Elejemplo(c)delafigura2.13permitecompararlamallapoligonaldeunmodelo esférico con respecto a la malla que se obtiene con los algoritmos de referencia anteriores. Se puede observar que Marching Quads genera una malla mayoritariamente compuesta por polígonos cuadrangulares.

41 Capítulo 3 Algoritmo de Marching Quads 3.1. Introducción Estructura del algoritmo El algoritmo de Marching Quads que se presenta a continuación es una adaptación de los pasos del algoritmo de Marching Triangles (sección 2.3) para generar polígonos cuadrangulares. Al igual que en Marching Triangles se parte de un polígono inicial, que en este caso es un quad, e iterativamente se añaden nuevos a la frontera de la malla hasta completar la superficie del modelo. El algoritmo de Marching Quads consta de los siguientes pasos: 1. Se localiza un quad sobre la superficie implícita, se añaden todos los elementos del quad semilla al modelo poligonal M y se introducen las cuatro aristas en la cola de aristas a computar C e, ya que son frontera de la malla. 2. Algoritmo demarching Quads. a) Se obtiene una arista e b del frente de la cola C e. Si la cola se encuentra vacía, se finaliza el algoritmo de poligonización accediendo al paso 3. b) Dos puntos P 1 y P 2 son proyectados desde cada uno de los vértices V 1 y V 2 de la arista e b una distancia constante l proj en el plano del quad frontera Q b (V 1,V 2,V 3,V 4 ), y perpendiculares a la arista e b. c) Para cada uno de los dos puntos proyectados P 1 y P 2, se localizan los puntos más cercanos a la superficie implícita V new1 y V new2. 29

42 30 Capítulo 3. Algoritmo de Marching Quads d) Si la mallam contiene unvértice V near1 cercano a V new1, entonces V new1 = V near1. Análogamente, se localiza el vértice más cercano a V new2 si existiese. e) Utilizando la arista e b, y los dos nuevos vértices V new1 y V new2, se crea un nuevo quad Q new (V 1,V new1,v new2,v 2 ). Si el modelo tiene orientación opuesta a Q new en alguno de los dos nuevos vértices (normales de la superficieimplícita en V new1 yv new2 opuestasalanormaldeq new ),entonces se descarta la creación de un quad desde la arista e b añadiendo ésta arista a la lista de aristas candidatas a producir cracks C c, y se vuelve al paso 2a. f) Sisedetectaronvértices cercanosparalosnuevos vérticesv new1 yv new2 en el paso 2d, y estos se encuentran unidos por una arista, se crea un nuevo quad Q op = (V 1,V new1,v new2,v 2 ) y se prueba la restricción de Delaunay en él. Si pasa la restricción Q op, entonces se añade a M junto a las dos nuevas aristas que se crean, las cuales también son añadidas a C e. Si la arista e op (V new1,v new2 ) se encuentra en la lista de aristas de crack C c, entonces se elimina dela lista ya que no producirá crack por dejar de ser frontera de malla. Finalmente se continúa procesando aristas volviendo al paso 2a. Si no pasa la restricción, o no se detectó una arista opuesta, se continúan probando otras alternativas. g) Se comprueba que Q new pasa la restricción de Delaunay. Si pasa la restricción se añade Q new a M, así como V new1, V new2 y las tres nuevas aristas que se forman en el quad. Además, por ser estas nuevas aristas frontera de malla, se añaden a C e. Además, por haber producido un quad e b, se vuelve al paso 2a. Si no pasa la restricción se continúa probando otras alternativas. h) Se prueban tres alternativas de construcción de un nuevo quad utilizando la arista previa e p (V 1,V p ), la arista frontera siguiente e s (V 2,V s ) o ambas aristas. Se comprueba la restricción de Delaunay para cada uno de los

43 3.1. INTRODUCCIÓN 31 quads Q ps (V 1,V p,v s,v 2 ), Q p (V 1,V p,v new2,v 2 ) y Q s (V 1,V new1,vs,v 2 ) de estas alternativas. Si alguno de los quads Q ps, Q p o Q s pasa la restricción, entonces se añade el polígono a M junto a los nuevos vértices y aristas que se creen, y éstas se añaden también a la cola C e. Además, por haberse utilizado aristas existentes e p y e s, se eliminan de la lista de aristas de crack C c si estuviesen contenidas en ella. Por último, por haberse producido un quad, se vuelve al paso 2a. Si no pasa la restricción se continúa el algoritmo. i) Si todas las alternativas anteriores han fallado, entonces la arista e b es descartada sin producir un nuevo quad para la malla M. Es por ello que la arista e b se introduce en la lista de aristas candidatas a producir cracks C c. Se vuelve al paso 2a para continuar procesando otras aristas. 3. Cuando no hay más aristas que procesar, el algoritmo de Marching Quads acaba. Si la malla resultante M contiene cracks, se procede a su cierre mediante el algoritmo detallado en la sección Problemas a resolver Este algoritmo que se propone se compone de cuatro problemas complejos bien diferenciados que han tenido que ser resueltos de forma aislada: Marching Quads: Este problema se corresponde con el paso 2 del algoritmo descrito anteriormente. Este problema es un proceso iterativo que pretende anexar un nuevo quad a una arista del borde la malla mediante diversas alternativas de construcción. Este problema engloba todo lo referente a los cambios en el algoritmo de Marching Triangles para que pueda generar polígonos cuadrangulares. Búsqueda del punto más cercano sobre la superficie implícita: En el paso 2c es necesario que los puntos proyectados, para que puedan ejercer como vértices del nuevo quad, se encuentren sobre la superficie implícita. Es por ello

44 32 Capítulo 3. Algoritmo de Marching Quads que se necesita una técnica que permita localizar el punto más cercano sobre la superficie definida por el conjunto de esferas del modelo implícito. Búsqueda del quad inicial: El algoritmo de Marching Quads, al igual que los algoritmos de poligonización basados en rastreo de superficie, necesitan de una malla inicial desde donde iniciar el proceso iterativo de anexión de quads (correspondiente al paso 1 del algoritmo descrito). Es por ello que se necesita una técnica que permita localizar un quad semilla que se sitúe sobre la superficie implícita y además, para versiones basadas en la simetría del modelo, que este quad inicial se sitúe sobre el plano de simetría. Cierre de cracks: Porque este algoritmo que se propone, al igual que Marching Triangles, obtiene mallas con cracks (paso 3 del algoritmo), es necesario un procedimiento final que permita cerrar los agujeros. En la sección 3.2 se detallará el algoritmo de poligonización Marching Quads. La sección 3.3 mostrará la solución desarrollada en este trabajo para abordar el problema de búsqueda del punto más cercano sobre la superficie implícita. La sección 3.4 explicará la técnica que se propone para localizar un quad inicial sobre la superficie implícita, y el plano de simetría. Finalmente, la sección 3.5 tratará sobre el algoritmo que se ha desarrollado para cerrar los cracks que se obtienen al finalizar el algoritmo de poligonización Poligonización de la superficie implícita: Marching Quads D Delaunay Surface Constraint aplicado a quads El algoritmo de Marching Quads, al igual que Marching Triangles, está basado en la creación de nuevos polígonos que se anexan a la frontera de la malla si logran pasar una restricción que permite mantener una correcta estructura de malla. Esta restricción es una extensión del algoritmo de Delaunay para triangular nubes de puntos, aunque orientado a superficies en el espacio 3D. En concreto, la restricción de superficie de Delaunay en 3D sostiene que un

45 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 33 triángulo T puede añadirse a la malla, si no existe parte de la malla que se encuentre dentro de la esfera de Delaunay circunscrita en T. Esta esfera es la tridimensionalización del circumcírculo del triángulo, que es el círculo que pasa por los tres vértices del polígono y que, por tanto, se encuentra centrado en el circumcentro del mismo, siendo éste el punto equidistante a los tres vértices. A las zonas de la malla con diferente orientación con respecto al nuevo triángulo, esta restricción no les afecta ya que se corresponden con regiones diferentes del modelo, lo que sigue permitiendo una buena triangulación. Porque un triángulo es un simplex, o sea el polígono más pequeño posible en las dos dimensiones, siempre existe un círculo que pasa por todos los vértices. Sin embargo, en un polígono cuadrangular esto no es siempre posible. Por este motivo la restricción de Delaunay no puede aplicarse directamente a quads, ya que se dan casos en los que no existe una esfera que pase por los cuatro vértices del polígono. En este trabajo hemos propuesto una alternativa a la restricción aplicable a quads. Porque un quad puede verse como una anexión de dos triángulos a través de una arista diagonal al quad, puede definirse una esfera de Delaunay para cada uno de los dos triángulos en los que se divide un quad, de forma que la unión de ambas esferas genere un volumen de restricción. Un quad puede dividirse en dos triángulos de dos formas diferentes, en base a cual de las dos diagonales del polígono es la escogida para la partición. Por tanto, hay que determinar un convenio que permita elegir cual de las dos posibles divisiones es mejor. Esta elección es necesaria ya que los triángulos resultantes de la partición, y por extensión sus esferas de Delaunay, difieren según la división realizada. El polígono ideal es el equilátero y por tanto, aproximaciones a él, son los quads deseables de ser generados por el algoritmo. Esta restricción para quads que se propone genera dos esferas idénticas solapadas en polígonos equiláteros, permitiendo que el volumen de restricción se ajuste bastante al quad, provocando que este tipo de quad sea aceptado con más facilidad. El ejemplo (a) de la figura 3.1 muestra que la restricción se ajusta mejor en un polígono equilátero, en comparación con los quads deformados de (b). Proponemos utilizar la diagonal de mayor longitud para dividir el quad. Esta

46 34 Capítulo 3. Algoritmo de Marching Quads elección es debida a que los triángulos resultantes de dividir el quad por la diagonal más larga produce un volumen de restricción mayor que los triángulos obtenidos como división del quad por su diagonal menor. Es preferible un volumen de restricción mayor ya que a mayor diferencia entre diagonales más romboide es el quad, y por tanto polígono que deseamos evitar. El ejemplo (b) de la figura 3.1 muestra gráficamente que la división de un quad mediante su diagonal más larga genera un volumen de restricción mayor. (a) (b1) (b2) Figura 3.1: Restricción de Delaunay aplicada a quads. (a) Un quad equilátero produce dos esferas solapadas que minimizan el volumen de restricción. (b) Un quad deforme donde la división mediante su diagonal mayor (b1) genera un volumen de restricción mayor que la división del quad mediante la diagonal menor (b2). Ampliación a la restricción de Delaunay para quads La restricción de Delaunay aplicable a quads que se ha presentado no es suficiente para definir la bondad de un quad, ya que solamente controla que el polígono no afecte a la estructura de la malla. El hecho de que un quad no sea un polígono simplex genera una serie de situaciones que no se presentaban en la restricción para triángulos, las cuales generan quads deformados. En este trabajo se proponen tres restricciones añadidas que controlan estas situaciones. Quad aplastado Porque un quad excesivamente aplastado podría dar un falso positivo al testear la restricción de Delaunay, es necesario limitar la delgadez del polígono. Simplemente se comprueba que la longitud de una de las diagonales no supere el doble de la longitud de la otra. Además, se comprueba también que la

47 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 35 longitud del segmento que une los puntos medios de dos aristas opuestas tampoco sobrepase el doble de la longitud del segmento que une las otras dos aristas. Gráficamente pueden analizarse ambos casos en el ejemplo (a) de la figura 3.2. Quad retorcido o doblado Otra deformación de quad a evitar es la de retorcimiento dequad, o dicho de otromodo, que dosaristas del quad se crucen. La manera de detectar este defecto es, una vez dividido el quad en dos triángulos, comprobar que los vectores normales de ambos son opuestos. En el caso (b) de la figura 3.2 muestra un quad retorcido cuyo triángulo v 1 v 2 v 3 posee orientación opuesta a v 1 v 3 v 4. Este mismo test también permite descartar quads que se encuentran muy doblados través de una de las diagonales. Quad cóncavo Otro tipo de quad que se deben evitar son los cóncavos. Para detectarlos, se comprueba que alguno de los vértices del quad no se encuentre interior al triángulo que forman los otros tres vértices. Debido a que el vértice no tiene porqué estar contenido en el mismo plano que el triángulo, ha de proyectarse en dicho plano previamente. La figura 3.2 muestra en el caso (c) un quad cóncavo. Puede verse cómo el vértice v 2 se encuentra interno al triángulo que forman los otros tres vértices. V4 V4 l1 d1 l2 d2 V3 V2 V2 (a1) (a2) (b) (c) V1 V1 V3 Figura 3.2: Restricciones para evitar malos quads. (a) Quad achatados detectados porque una distancia entre lados l 1 es doble que la otra l 2 (a1) o una diagonal d 1 es doblequelaotrad 2 (a2).(b)quadretorcido.(c)quadcóncavodetectadolocalizando un vértice V 2 interior al triángulo que forman los otros tres T(V 1,V 3,V 4 ).

48 36 Capítulo 3. Algoritmo de Marching Quads Creación del nuevo quad candidato Esteprocedimiento comienza apartirdeuna aristafronterae b quesehaobtenido de la cola de aristas que restan por procesar C e, y crea un nuevo quad candidato Q new. En concreto, en este apartado se detallarán los pasos 2a, 2b, 2c, 2d y 2e del algoritmo. El paso 2a se encuentra detallado en la sección 3.4, y el paso 2c se encuentra detallado en la sección 3.3. Búsqueda de los dos nuevos vértices para el nuevo quad: paso 2b El paso 2b del algoritmo proyecta dos puntos desde la arista frontera una distancia constante l proj. Esta distancia es calculada cuando se construye el quad inicial, procedimiento detallado en la sección 3.4, y permite que el resto de quads de la malla se ajusten al tamaño de este primer quad para obtener una malla homogénea. La proyección de los nuevos puntos esta distancia constante, perpendicularmente a la arista que se está computando e b y en el plano de su polígono Q b, posibilita que el quad se aproxime a la equilateralidad. La proyección de puntos de este trabajo difiere con respecto al algoritmo de Marching Triangles debido a la diferencia geométrica de un triángulo con respecto a un cuadrado. La figura 3.3 muestra esta diferencia, donde se proyecta un punto desde el medio de la arista e b en el caso de los triángulos, y dos puntos desde los vértices de la arista en el caso de quads. En ambos ejemplos puede observarse que el objetivo de la proyección es obtener el polígono con una forma equilátera. El paso 2c permite ajustar el quad aproximado del paso anterior a la superficie implícita. Para ello se ejecuta un procedimiento para localizar los puntos más cercanos sobre la superficie implícita desde los puntos proyectados, procedimiento que se detalla en la sección 3.3. Detección de vértices cercanos: paso 2d En la imagen 23 se mostró un problema del algoritmo de Marching Triangles detectado en [Fou09], que sucede cuando un nuevo vértice es construido en la cercanía de un vértice existente. Existen casos, como el mostrado en el caso (b) de la figura 2.9, donde un triángulo válido es construido próximo a un vértice existente.

49 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 37 Pproj P2 P1 lproj lproj lproj V2 V1 eb V2 eb V1 (a) (b) Figura 3.3: Comparación de proyección de los nuevos vértices para (a) Marching Triangles y para (b) Marching Quads. Aunque la malla mantiene una topología correcta al añadir el nuevo triángulo, un crack se producirá en la zona, o en su defecto se construirá un triángulo deformado debido a la estrechez de la zona. El algoritmo de Marching Quads también presenta este mismo problema, como puede observarse gráficamente en la figura 3.4. Un quad puede ser construido de forma correcta, y sin embargo generar una zona libre de la malla muy estrecha donde un nuevo quad no puede ser creado, o en caso de permitirse su construcción tendría una geometría poco deseable. Incluso, en el caso de tener que cerrar esa zona de crack, el quad deformado tendría que ser construido. Si se hubiese detectado la existencia de un vértice cercano a uno de los nuevos vértices que se proyectaron, y se utilizara este vértice cercano para la creación del nuevo quad en lugar del nuevo, podrían evitarse estas zonas estrechas que producen cracks. La figura 3.4 muestra el resultado de haber desechado el nuevo vértice sustituyéndolo por un vértice cercano. Para detectar los vértices cercanos (paso 2d), una vez localizados los dos vértices nuevos V new1 y V new2, se centra una pequeña esfera en dichos vértices de radio 1 3 l proj y se buscan vértices de la malla interiores a la esfera. En casó de encontrarse varios vértices, se escoge el más cercano al punto proyectado. La figura 3.4 muestra esta esfera que se propone, y que habría detectado la existencia de un vértice cercano.

50 38 Capítulo 3. Algoritmo de Marching Quads Near Sphere lproj eb eb (a) (b) Figura 3.4: Detección de vértices cercanos. (a) Un quad es construido de forma correcta pero deja una zona de crack debido a que un vértice se construye cerca de otro. Si se hubiera detectado el vértice cercano utilizando la esfera de cercanía, entonces (b) un quad podría haberse construido evitando el crack. Construcción del nuevo quad: paso 2e Utilizando los dos nuevos vértices que se encuentran sobre la superficie implícita, y en adición a los vértices de la arista frontera a computar e b, se construye el nuevo quad Q new (V 1,V new1,v new2,v 2 ). Además, en este paso también se controla que los dos vértices se correspondan localmente con el modelo, pues alguno de los nuevos vértices podría corresponderse con una zona errónea de la malla. Para controlar esto, se comprueba que el vector normal de la superficie implícita en el vértice candidato no se oponga al vector normal de Q new. En la figura 3.5 se muestra un ejemplo en 2D de un vértice correspondiente a una zona errónea debido a que la superficie implícita contiene una zona estrecha. La proyección de un nuevo punto obtiene un punto sobre la superficie que es opuesto al nuevo quad que se generaría, lo que provoca que se descarte la arista que se está procesando. Se puede observar que, en caso de añadir el nuevo quad, el modelo poligonal resultante recortaría la zona estrecha del modelo, perdiéndose detalles del mismo.

51 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 39 Qb V lproj Pproj Qb V Qnew Vnew Pproj Implicit Surface Implicit Surface (a) (b) Figura 3.5: Ejemplo en 2D de (a) una proyección de un punto P proj (b) que localiza un punto sobre la superficie implícita V new que está en una zona errónea del modelo. El quad Q new que se crea recorta parte del modelo Alternativas de nuevos quads Este apartado detalla los pasos 2f, 2g, 2h, y 2i. Estos pasos tratan de construir un nuevo quad para anexar a e b mediante diversas alternativas de construcción, comprobando en todas ellas que pasen la restricción dedelaunay aplicada a quads. Detección de arista opuesta: paso 2f Se ha decidido omitir la alternativa de Marching Triangles que se propone en el informe técnico [HIIT97] para construir un quad que permita cerrar zonas enfrentadas de la malla utilizando un vértice que se solape con la esfera de Delaunay de T new. El motivo es que si se encuentra algún vértice que solape el volumen de restricción de Q new, este puede situarse erróneamente de modo que el quad quede deformado, además de que depende del otro vértice nuevo para el nuevo quad. Sin embargo presentamos una alternativa similar que, en vez de detectar algún vértice que se solape, lo que se detecta es alguna arista frontera e op que se encuentre enfrentada a la arista e b una distancia cercana a l proj, utilizándola para cerrar parte de la malla creando un quad Q op con buena estructura morfológica. Aún así, para asegurarse que Q op mantiene la topología de la malla, se ha de comprobar la restricción de Delaunay. Una arista se encuentra enfrentada a e b si en el paso 2d del algoritmo se han encontrado vértices cercanos que sustituyen a los dos vértices proyectados V new1 y

52 40 Capítulo 3. Algoritmo de Marching Quads V new2, y además éstos se encuentran unidos por una arista. En este caso se puede unir esta arista e op a e b para permitir cerrar la malla, aunque para ello, los quads frontera de ambas aristas Q op y Q b han de tener misma orientación. En la figura 3.6 puede observarse un caso de detección de vértices cercanos en los puntos proyectados, los cuales se encuentran unidos por una arista. Obsérvese que ambas aristas encaradas pueden unirse para formar un quad que permita cerrar localmente la malla. Near Spheres eop eop lproj eb eb (a) (b) Figura 3.6: (a) Tras proyectar los nuevos vértices, las esferas de cercanía detectan dos vértices cercanos que se encuentran unidos por una arista e op. (b) Utilizando esta arista opuesta se puede construir un quad para cerrar zonas enfrentadas de malla. Esta alternativa de construcción de quad es la primera en evaluarse, incluso antes de comprobar directamente que Q new es aceptado por la restricción de Delaunay, debido a que es deseable unir zonas de malla existente de modo que se minimicen los cracks resultantes.

53 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 41 Construcción de quad directo: paso 2g El paso 2g del algoritmo permite validar el nuevo quad Q new que se desea construir utilizando la restricción de Delaunay. Si el quad no se solapa con la malla M, y además tiene una topología buena, el quad se añade al modelo poligonal M. Los nuevos vértices y aristas que se creantambién hande ser añadidasal modelo y, como las nuevas aristas son frontera de malla, han de introducirse también en la cola C e para permitir que el algoritmo las compute posteriormente. En el caso (a) de la figura 3.7 se observa un ejemplo en dos dimensiones de la creación de un nuevo quad, cuya esfera de Delaunay permite que sea anexado anexado a la malla por no solaparse con algún vértice de la malla. Construcción de quad utilizando aristas vecinas: paso2h En ocasiones existen aristas vecinas, que son las aristas unidas a e b que son frontera de malla, las cuales se solapan con el quad directo Q new provocando el descarte de éste. Para poder cerrar estas zonas de malla, pueden utilizarse estas aristas vecinas para poder formar el nuevo quad junto a e b. La arista que se encuentra unida al vértice V 1 de la arista e b continuando la frontera de la malla es la que se denomina arista previa e p (V 1,V p ), siendo V p el vértice de e p no común a e b. Análogamente se define la arista siguiente e s (V 2,V s ) como la arista frontera unida a e b mediante su vértice V 2. Utilizando estas aristas, se puede probar la construcción del nuevo quad de tres manerasdistintas:utilizandoambasaristasvecinasparaformarelquadq ps (V 1,V p,v s,v 2 ) (caso (b) de la figura 3.7); utilizando solamente la arista previa para formar el quad Q p (V 1,V p,v new2,v 2 ) (caso (d) de la figura 3.7); y utilizando solamente la arista siguiente formando el quad Q s (V 1,V new1,vs,v 2 ) (caso (c) de la figura 3.7). Para cada una de las tres alternativas que utilizan aristas vecinas se ha de comprobar la restricción de Delaunay aplicada a quads, para verificar que el quad no solapa parte de la malla y se encuentra bien construido. Si el quad es validado, entonces los nuevos elementos se añaden al modelo M. Hay que tener en cuenta que estas alternativas utilizan aristas existente para

54 42 Capítulo 3. Algoritmo de Marching Quads construir el nuevo quad, de modo que dejarían de ser frontera de la malla. Por este motivo, estas aristas han de eliminarse de la lista de aristas a procesar C e, y además también se eliminan de la lista de aristas candidatas a crack C c si estuviesen. Vnew2 Vnew1 Vp Vs V2 eb V1 V2 eb V1 (a) (b) Vs Vnew1 Vnew2 Vp V2 eb V1 V2 eb V1 (c) (d) Figura 3.7: Ejemplos en 2D de diferentes alternativas de construcción de un quad en el algoritmo de Marching Quads: (a) de forma directa, (b) utilizando la arista vecina previa y siguiente (c), utilizando la arista vecina siguiente y (d) utilizando la arista vecina previa. Cracks en la malla resultante: paso 2i El paso2i del algoritmoviene aindicar que, si no sepudoconstruir elnuevo quad con ninguna de las anteriores alternativas, entonces la arista e b será descartada sin generar un quad. Aunque esta arista podría ser cogida como arista vecina o solapada en iteraciones posteriores, lo más probable es que la zona termine conteniendo un crack. Aunque existen técnicas añadidas al algoritmo para minimizar los cracks que se obtienen tras la poligonización, éstos son inevitables. Por ello, es necesario un procedimiento al final del algoritmo que permita cerrar estos cracks. Esta técnica de cierre de cracks se encuentra detallada en la sección 3.5.

55 3.2. POLIGONIZACIÓN DE LA SUPERFICIE IMPLÍCITA: MARCHING QUADS 43 Para que el procedimiento de cierre de cracks conozca cuales son las aristas frontera al acabar el algoritmo de poligonización, se utiliza una lista de aristas candidatas a crack C c. Aquellas aristas e b que no producen un nuevo quad son añadidas en esta lista, aunque podrías ser eliminadas de ella si la arista es escogida posteriormente como arista vecina o enfrentada Cracks debido a vértices escogidos erróneamente En la sección 2.3 se comentó sobre otro de los problemas del algoritmo de Marching Triangles, el cual también se encuentra presente en este algoritmo que se propone. En el trabajo [AG01], los autores detectaron que un triángulo podría estar bien construido al ser validado por la restricción de Delaunay, y sin embargo ser el detonante de un futuro crack. En la sección se expuso un problema del algoritmo Marching Triangles en el que triángulos, que aparentemente son buenos, generan cracks debido a que provocan que algún polígono existente deje de cumplir la restricción de Delaunay. En el algoritmo de Marching Quads esta situación también puede darse, como es el caso (a) de la figura 3.8, donde la arista frontera del quad Q genera un nuevo polígono Q new que pasa la restricción. Sin embargo, nótese que el quad Q new provoca que el ya existente polígono Q no pase la restricción, debido a un solapamiento de uno de los vértices de Q new con la esfera de restricción de Q. La zona que queda libre resultará probablemente en un crack, cuyo cierre puede generar una mala poligonización. Puede observarse que el problema lo provoca el nuevo vértice, el cual se encuentra situado muy cerca de una arista existente, y además muy próxima al medio de ésta, provocando que el nuevo vértice no pueda encontrar un vértice cercano de la arista. El caso (b) de la figura 3.8 muestra el resultado de no haber computado la arista frontera de Q, dejando que se compute previamente la arista de Q. El resultado en este caso es la construcción de un quad más correcto. Aunque no se pueda construir un quad en la zona libre por alguna alternativa resultando en una zona de crack, el procedimiento de cierre de cracks puede construir un triángulo topológicamente mejor en comparación con el primer caso.

56 44 Capítulo 3. Algoritmo de Marching Quads Q Q eb Qnew Qnew eb Q Q (a) (b) Figura 3.8: (a) Creación de un quad Q new que pasa la restricción, pero que provoca que uno de los vértices de Q new solape la esfera de Delaunay de un quad existente Q. (b) Alternativa de computar previamente el quad Q Test de topología correcta de malla con respecto a un quad Para evitar la construcción de estos quads aparentemente buenos que perjudican a existentes quads, y paralelamente a la restricción de Delaunay, es necesario un método que detecte que los quads de la malla M continúen validando la restricción. Lá técnica implementada realiza un recorrido por todos los quads que pertenecen a la malla, comprobando que la esfera de restricción de cada quad no solape al nuevo quad. En caso de que alguna esfera intersecte el nuevo quad, entonces debe ser descartado para no perjudicar la malla existente. Es necesario descartar de esta restricción que se propone a los quads vecinos de la arista a computar, ya que por cercanía, sus esferas de Delaunay siempre van a solaparalnuevo quad.además,paranocomputarlaesferadedelaunaycadavezque se realice este test, dicha esfera es calculada en la creación del quad, almacenándose en la propia estructura de datos del polígono para posteriores cálculos con ella. Los pasos del algoritmo que basan la creación del nuevo quad usando una arista opuesta y usando las dos aristas vecinas no realizan este nuevo test. Esto es debido

57 3.3. BÚSQUEDA DEL PUNTO MÁS CERCANO SOBRE LA SUPERFICIE IMPLÍCITA 45 a que ambos pasos no generan nuevos vértices, que son los elementos causantes del problema que se ha descrito Búsqueda del punto más cercano sobre la superficie implícita El modelo implícito que utiliza este trabajo, se define por un esqueleto implícito de puntos, cuya superficie viene definida por los puntos que se encuentran a una cierta distancia de cada elemento del esqueleto. Visto de otro modo, la superficie implícita es la resultante de la unión de un conjunto de esferas, correspondiéndose cada una con un elemento esquelético. Esta forma de representación implícita es la que se obtiene de la primera fase del sistema de creación de personajes 3D a partir de modelos definidos en 2D. La computación del punto P s más cercano a la superficie implícita, desde un puntop o exterioralamisma,esunatarearelativamentesencilla.bastaconproyectar el punto P o sobre cada esfera del modelo implícito, y escoger el punto proyectado más cercano a P o. Sin embargo, esta búsqueda se hace mucho más compleja si se realiza desde un punto P i interior a la superficie implícita. En el caso de que el punto se encuentre en el interior de una única esfera, el procedimiento es idéntico a buscarlo desde un punto exterior. Sin embargo, si el punto se encuentra interior a varias primitivas implícitas, el punto proyectado puede no corresponderse a la superficie implícita, sino uno interior a la misma. En estos casos, es muy complejo definir una dirección donde proyectar hacia la superficie del modelo. Por otraparte, existen situacionesenlasqueelpunto máscercano sobrelasuperficie implícita P s, genera malos quads que pueden ser descartados por la restricción de Delaunay. Este caso se da en zonas de alta curvatura del modelo, donde el punto proyectado se aleja de la superficie implícita provocando la obtención de un punto P s, cuya distancia a la arista, difiere considerablemente de la distancia de proyección l proj. El resultado es la obtención de un nuevo quad aplastado, o alargado, que fácilmente podría ser descartado por la restricción de Delaunay.

58 46 Capítulo 3. Algoritmo de Marching Quads La figura 3.9 muestra el resultado de la construcción de un quad acortado por el problema de alta curvatura en la zona. El punto proyectado P proj se aleja de la superficie implícita, obteniendo un punto sobre la superficie muy cerca del inicio de la proyección, provocando un acortamiento en el quad Q new. Puede observarse como el tamaño de los quads se mantiene constante hasta que se alcanza la zona de alta curvatura. Pproj Pproj Qb Qnew Vnew Qb Qnew Vnew (a) Implicit Surface (b) Implicit Surface Figura 3.9: (a) Superficie muy curva donde el punto proyectado P proj obtiene un punto sobre la superficie V new que genera un quad muy corto. (b) Manteniendo constante la proyección al buscar el punto sobre la superficie, se puede obtener un punto V new que mantenga la estructura equilatera del nuevo quad Q new Algoritmo de búsqueda de punto cercano a la superficie Teniendo en cuenta ambos problemas, los relativos a la complejidad a la hora de buscar el punto más cercano y la deformación de quads en zonas de alta curvatura, se propone una alternativa que permite localizar un punto cercano sobre la superficie implícita manteniendo la equilateralidad del quad. Esta técnica restringe la búsqueda del punto cercano sobre la superficie implícita a una distancia l proj de la arista. Para ello, se construye una circunferencia de radio l proj en el plano perpendicular a la arista e b, y se centra en el vértice que inicia la proyección. A continuación, se localizan los puntos donde la circunferencia corta a la superficie implícita, y se escoge el más cercano a P proj.

59 3.3. BÚSQUEDA DEL PUNTO MÁS CERCANO SOBRE LA SUPERFICIE IMPLÍCITA 47 Este método se basa en la detección de todos los puntos de la superficie implícita que se encuentran a una distancia l proj de la arista a computar e b, para ver cual es el más cercano al punto que se quiere aproximar a la superficie. De este modo, el nuevo quad mantendrá una longitud homogénea con la malla. Para que el quad sea equilátero, el nuevo vértice ha ser perpendicular a la arista a computar e b, y es por ello que se buscan puntos que se encuentren en su plano perpendicular. El caso (b) de la figura 3.9 muestra gráficamente el resultado de haber aplicado este método. Obsérvese como la circunferencia obtiene dos puntos sobre la superficie candidatos, siendo el elegido para construir el nuevo quad el que se encuentra más cercano a P proj. Este algoritmo que se propone busca inicialmente todas las intersecciones de que hay entre la circunferencia y cada primitiva esférica. Si una intersección se encuentra interior a la superficie implícita, entonces ésta es descartada por no encontrarse sobre la superficie implícita. Finalmente, de la lista de candidatos, se escoge aquel punto que se encuentre más cercano al punto P proj. El vector normal a un punto de la superficie implícita se calcula como la normalización del vector (P C), donde P es el punto de la superficie, y C es el centro de la primitiva esférica que se corresponde con P. Estos vectores normales se calculan simultáneamente con la búsqueda de puntos candidatos Formulación matemática de intersección circunferenciaesfera Para obtener la intersección entre una circunferencia y una esfera, se ha de resolver un sistema matemático de ecuaciones utilizando la ecuación del plano de la circunferencia, la ecuación de la esfera donde la circunferencia se encuentra circunscrita y la ecuación de la esfera correspondiente a la primitiva de la superficie implícita. La definición matemática de cada primitiva esférica es: (x C x ) 2 +(y C y ) 2 +(z C z ) 2 r 2 = 0 (3.1)

60 48 Capítulo 3. Algoritmo de Marching Quads Donde C(C x,c y,c z ) es el centro de la esfera y r es el radio. La definición matemática de la circunferencia viene dada por la esfera y el plano que contienen a la misma, ya que una circunferencia puede verse como la intersección entre un plano y una esfera. Para un plano definido por un punto P y un vector normal al plano N, todo punto contenido en él debe cumplir que su vector con respecto al punto ha de ser perpendicular a la normal del plano. (x P x ) 2 +(y P y ) 2 +(z P z ) 2 lproj 2 = 0 (3.2) (x P x,y P y,z P z ) (N x,n y,n z ) = 0 (3.3) Donde P es el centro de la circunferencia, N es la normal del plano donde está contenida la circunferencia, y l proj es el radio de la circunferencia. Resolviendo este sistema de tres ecuaciones puede no obtenerse alguna solución, indicando que la circunferencia no intersecta a la esfera; una solución, indicando que la circunferencia intersecta a la esfera en un único punto; o dos soluciones, indicando que la circunferencia intersecta a la esfera en dos puntos distintos Búsqueda del quad inicial Para que el algoritmo de Marching Quads pueda comenzar, es condición necesaria la existencia de una malla inicial M de al menos un quad, de cuya frontera comenzar la construcción de quads. En este trabajo se comienza de un quad semilla que, como ha de formar parte del modelo poligonal, ha de tener sus cuatro vértices ajustados a la superficie implícita, y además ha de ser lo más equilátero posible. En versiones iniciales de Marching Quads, es primer quad se localizaba de forma aleatoria, escogiendo una dirección cualquiera que permitiera localizar un punto de la superficie implícita, desde donde iniciar la creación del quad. Sin embargo en versiones últimas del proyecto, tal y como se verá enla sección de mejoras, el plano de simetría del modelo implícito cobra importancia. Esto provoca una restricción añadida al quad inicial, el cual debe situarse en este plano de simetría. Por este motivo, en este apartado se detallará el algoritmo para localizar un quad

61 3.4. BÚSQUEDA DEL QUAD INICIAL 49 inicial sobre la superficie implícita, y sobre el plano de simetría del modelo Algoritmo de búsqueda de quad inicial Existen varias formas de definir un plano. En este proyecto se ha trabajado utilizando la representación donde un plano de simetría viene definido por un punto aleatorio del plano P p y un vector normal al plano N p. El algoritmo de búsqueda de quad inicial está descompuesto en los siguientes pasos: 1. Se localiza un punto P s sobre la superficie implícita contenido en el plano de simetría, a partir del punto P p. En base al radio de la esfera implícita de menor tamaño, se genera un valor de distancia de proyección l ip para definir el tamaño del quad inicial. 2. Se proyecta el punto P s una distancia de l ip en la dirección del gradiente N s de la superficie implícita en el punto P s, obteniéndose el punto P q. 3. A partir del gradiente inverso N s, se obtienen cuatro vectores separados en forma piramidal, formando ángulos de 90 o entre ellos. 4. La proyección sobre la superficie implícita de la pirámide formada por los cuatro rayos anteriores, los cuales se originan a partir del punto P q, obtienen los cuatro vértices del quad inicial Detalle de los pasos del algoritmo En primer lugar se localiza un punto P s que se encuentre situado en la superficie implícita y sobre el plano de simetría. Además se obtiene la normal a la superficie en dicho plano. A continuación se tratará de crear un quad centrado en P s mediante un método que consiste en alejar el punto una pequeña distancia de la superficie y proyectar una pirámide de base cuadrangular sobre la superficie implícita, cuya base es centrada en el punto de la superficie. La proyección de la pirámide obtiene un quad perfectamente equilátero, a no ser que la proyección intersecte más de una primitiva.

62 50 Capítulo 3. Algoritmo de Marching Quads Paso 2 La distancia desde donde se lanza la pirámide influye en el tamaño del quad inicial. Esta distancia l ip se escoge en función del radio de la esfera implícita de menor tamaño para evitar recortar zonas de alta curvatura, y es modificado por un factor que permite al usuario variar la resolución general de la malla. El paso2permitelocalizarel pico delapirámidep proj moviendo el punto sobrela superficie P s una distancia l ip hacia el exterior del modelo. Para que el quad resulte lo más equilátero posible, la dirección escogida es el gradiente de la superficie en el punto. Paso 3 El paso 3 genera los cuatro rayos que, al lanzarse a partir del punto proyectado del paso anterior, generarán una pirámide de proyección. La figura 3.10 muestra estos cuatro rayos R 1, R 2, R 3 y R 4. Partiendo del inverso del gradiente de la superficie, o lo que es lo mismo, el vector que va de P proj a P s, se rota éste 45 o sobre el eje de la normal del plano para generar un rayo R 0 que determina la abertura de la pirámide. Como es deseable que el quad inicial tenga aristas paralelas y perpendiculares al plano de simetría, se rota 45 o R 0 sobre el eje del gradiente de la superficie para obtener el primer rayo R 1. Los restantes rayos se obtienen con rotaciones de 90 o sobre el eje del gradiente. Paso 4 El paso 4 intersecta los cuatro rayos que conforman la pirámide con la superficie implícita para determinar los cuatro vértices que, siendo unidos por aristas, formarán el quad inicial Cálculo de la distancia de proyección Antes de terminar la computación del quad semilla, la distancia de proyección l proj ha de ser recalculada para que se reajuste con respecto al tamaño del quad creado. Para ello, la distancia l proj se inicializa como una media de la longitud de

63 3.5. CIERRE DE CRACKS 51 Plane V2 R2 Pproj R1 R0 V1 Pproj R2 R3 V2 R1 R4 lip V1 V4 Ps V3 Implicit Surface Ps R3 R4 V3 V4 Plane (a) (b) Figura 3.10: Pirámide de proyección para creación del quad inicial en (a) vista superior y (b) vista lateral. Se lanzan los rayos R desde el punto proyectado P proj en un ángulo de 45 o para generar la pirámide cuya intersección con la superficie implícita obtiene los 4 vértices del quad semilla. La orientación de los rayos R se realiza en base al plano de simetría. las aristas de dicho quad. De este modo, el resto de quads que se traten de construir proyectarán sus nuevos vértices esta distancia para ajustarse al tamaño de arista del quad inicial, y así obtener una malla homogénea Cierre de cracks La malla poligonal que se obtiene tras aplicar el algoritmo de Marching Quads a una superficie implícita contiene diversos agujeros, por lo que se encuentra incompleta. Esto es debido a que el algoritmo, en caso de no poder crear un quad correcto desde un arista frontera, deja ésta libre sin polígono que cierre la zona local de la malla. Porque estos cracks que se producen son indeseables para modelos orientados a sistemas de animación (y otras aplicaciones gráficas), es necesario un segundo paso en el algoritmo de Marching Quads que permita cerrar cada uno de los agujeros resultantes. En este trabajo se propone un algoritmo desarrollado para tal cometido,

64 52 Capítulo 3. Algoritmo de Marching Quads permitiendo completar la malla a partir de las aristas frontera de la malla que surgen tras la poligonización Introducción al algoritmo de cierre de cracks Cuando un quad no puede ser construido por el poligonizador, suele ser debido a que el quad solapa parte de la malla. Es por ello que la distancia entre bordes de la malla en los cracks se aproxima a la longitud l p roj de los quads. Esta característica posibilita el cierre de cracks sin necesidad de tener que crear nuevos vértices, simplemente uniendo por aristas los ya existentes en el crack. Los cracks suelen estar presentes en zonas muy irregulares de la frontera de la malla, o zonas con cambios bruscos de curvatura. Como consecuencia, en muchas ocasiones no puede ser construido un quad que cierre cierta zona del crack, debido a que el polígono puede resultar torcido, doblado o no convexo. Además, en cracks con número impar de aristas frontera, es imposible cerrarlo exclusivamente con polígonos cuadrangulares, pues un hueco de tres aristas siempre va a quedar libre. Por ambas razones que imposibilitan añadir un quad se permite la creación de triángulos en estos casos extremos, y de esta forma mantener un correcto mallado del modelo. Aún así, en la medida de lo posible se prioriza la creación de polígonos cuadrangulares. Algoritmo de cierre de cracks Al finalizar el algoritmo de poligonización, se obtiene un conjunto C c de aristas frontera causantes de los cracks de la malla poligonal. El algoritmo que se plantea detecta uno a uno los cracks, y para cada uno de ellos, crea nuevas aristas que permitan unir los vértices del crack. La detección de cracks se calcula iterando de la siguiente manera: 1. Si el conjunto de aristas C c se encuentra vacío, la malla no contiene ningún crack. Se finaliza el algoritmo. 2. Se obtiene una arista inicial e 0 del conjunto C c.

65 3.5. CIERRE DE CRACKS A partir de la arista e 0 se obtienen las aristas vecinas siguientes e 1, e 2,..., e n (e i arista vecina siguiente de e i 1 ), siendo la arista e 0 la siguiente de e n. Esto permite obtener un subconjunto C a de aristas de C c que se corresponde con un agujero de la malla. 4. Se extraen del conjunto C c todas las aristas del subconjunto C a. Las aristas resultantes en C c forman parte de otros cracks que se cerrarán en posteriores iteraciones de este algoritmo. 5. Un procedimiento para cerrar un crack permite unir los vértices de las aristas frontera de C a para generar nuevos quads, o triángulos si proceden, y de este modo cerrar el agujero. 6. Una vez cerrado el crack C a, se vuelve al primer paso por si quedaran más cracks que cerrar. Básicamente, el algoritmo de cierre de cracks se compone de un proceso iterativo en el que, para cada iteración, se cierra un crack de la malla. A su vez, cada iteración del proceso se compone de dos fases: 1. Aislamiento de un crack (pasos 2, 3 y 4): se detecta un agujero de la malla. 2. Cierre de crack (paso 5): se cierra el agujero detectado Aislamiento de un crack Esta fase detecta un agujero en la malla y crea una estructura para almacenar el mismo. Esta estructura de crack se compone de una lista circular doblemente enlazada, donde cada nodo de la misma se corresponde con una arista del agujero, y los nodos siguiente y anterior con sus aristas vecinas. De esta manera, esta lista permite representar estructuralmente el crack. Además, cada nodo almacena información adicional como los ángulos que la arista forma con sus vecinas. El proceso de creación de la estructura de crack es iniciado a partir de una arista aleatoria e 0. Para ello, se crea un nodo que almacene dicha arista, y se localiza su arista siguiente e i = e 1, comenzando el siguiente proceso iterativo:

66 54 Capítulo 3. Algoritmo de Marching Quads 1. Se crea un nodo con la arista e i, se calcula el ángulo que forma con la arista previa e i 1 y se añade a los nodos correspondientes a e i y e i Se actualiza el nodo e i 1 para indicar que su nodo siguiente es e 1, y a su vez se actualiza el nodo de e 1 para indicar que su nodo previo es e i Se localiza la arista siguiente e i+1 4. Si e i+1 = e 0, entonces se ha cerrado la frontera del agujero terminando el algoritmo de aislamiento de crack, y en caso contrario, se vuelve a iterar utilizando e i = e i+1 Cuando el algoritmo finaliza, la lista circular ha de ser cerrada enlazando e 0 con e n, siendo ésta la última arista encontrada. Además, en ambos nodos hay que actualizar el ángulo que forman ambas aristas. Y, como un último paso de esta fase para la obtención de la estructura de un crack Cerramiento de un crack Introducción a la técnica Una vez detectado el agujero, éste se cierra creando quads de forma iterativa (o triángulos en los casos en que un quad no pueda ser añadido). Estos quads se crean a partir de los vértices existentes utilizando tres aristas consecutivas del crack, y añadiendo una nueva que permita cerrar el polígono. Sin embargo, las tres aristas consecutivas del crack que se van a utilizar para cerrar parte del agujero mediante un quad no pueden ser escogidas de manera arbitraria, pues se producen diferentes mallados de cracks. Para ello hay que añadir a cada arista del crack un peso que indique la bondad del quad de cierre que utiliza dicha arista y sus dos vecinas. Nosotros proponemos que la bondad sea definida en función del ángulo que la arista forma con sus vecinas. Porque es deseable que se cierren antes zonas muy cerradas del crack, se ha de dar prioridad a aquellas aristas que forman un ángulo más cerrado con sus vecinas. En concreto, el peso de las aristas es escogido como la

67 3.5. CIERRE DE CRACKS 55 suma de los ángulos que se forman con cada vecina en ambos extremos de la arista, priorizando en este caso las aristas con menor peso. La figura 3.11 muestra un crack de cinco aristas donde se muestran los ángulos que forman aristas consecutivas, y el peso de cada arista (suma de los ángulos con sus vecinas). Este ejemplo, contempla tres alternativas para cerrar parte del crack mediante un quad, utilizando la arista de peso 180 o, 200 o y 250 o respectivamente. Puede observarse cómo el mejor quad se obtiene utilizando la arista de menor peso (caso (a)). Figura 3.11: (a) Cierre de parte del crack utilizando la arista de menor peso (180). (b) Cierre de parte del crack utilizando la arista de peso 200. (c) Cierre de parte del crack utilizando la arista de mayor peso (250). Algoritmo de cierre de un crack El algoritmo es un proceso iterativo que construye polígonos utilizando tres aristas del crack (dos en caso de tríangulos) para cerrar el agujero progresivamente. Los pasos del algoritmo son: 1. Si el crack tiene solamente tres aristas, se construye un triángulo y se salta al paso 8.

68 56 Capítulo 3. Algoritmo de Marching Quads 2. Si el crack contiene solamente cuatro aristas, se construye directamente un quad accediendo posteriormente al paso Se realiza un ordenamiento de los nodos del crack mediante una cola C o que prioriza a los nodos de menor peso. 4. Si lacola C o se encuentra vacía, el algoritmosalta al paso 6, yen caso contrario se coge la arista e i que está al frente. 5. Se construye un quad Q n ew uniendo e i 1, e i, e i+1 y e new, siendo esta última la nueva arista que une las vecinas. Si Q new es estructuralmente bueno, se acepta y se accede al paso 8, en caso contrario se vuelve a 4 para coger otra arista candidata. 6. En caso de no haberse podido crear algún quad, se construye un triángulo en aquella esquina del crack con menor ángulo,y cuyo triángulo no solape parte del crack. 7. Si el nuevo triángulo puede fusionarse con un vecino formando un buen quad, se realiza dicha transformación de polígonos. 8. Se actualiza la estructura de crack eliminando los nodos de las aristas usadas para formar el nuevo polígono, se añade la nueva arista a la estructura creando un nuevo nodo y se actualizan los ángulos y pesos de los nodos afectados. 9. Si no quedan elementos en el crack el algoritmo finaliza, y en caso contrario, se vuelve a primer paso del algoritmo para continuar creando polígonos. Detalle de los pasos para cerrar un crack Pasos 1, 2 y 3: se detecta que sólo queda un polígono para cerrar el agujero, y en este caso se construye directamente. Por contra, si no existe un polígono directo de cierre, se ha de localizar una arista candidata para generar uno nuevo. Para ello, el paso 3 se encarga de ordenar los nodos dando prioridad a las aristas de mayor peso. Pasos 4 y 5: se intenta a crear el nuevo quad según el ordenamiento de las aristas. Para ello se coge la mejor arista candidata, y se construye un quad que una la arista

69 3.5. CIERRE DE CRACKS 57 del nodo, sus vecinas y una nueva. Si el quad no se encuentra retorcido ni doblado, es convexo, y además no solapa parte del crack, entonces el quad es aceptado. En caso contrario, se continúa probando con las sucesivas aristas candidatas. Para comprobar la doblez de un quad basta con chequear la oposición de las normales de los triángulos que dividen al polígono. La comprobación de no convexidad, se realiza verificando que alguno de los vértices del quad no se encuentre interior al triángulo que forman los otros tres vértices del polígono. Sin embargo, aunque estas comprobaciones permiten verificar la correcta topología del quad, no bastan para certificar que el quad cierra correctamente una zona de la malla. Esto es debido a que se pueden dar casos como el de la figura 3.12, donde un vértice del crack solapa el quad candidato. Figura 3.12: Se muestra un crack en la imagen izquierda. La imagen central cierra parte del crack utilizando el convenio de utilizar la arista de menor peso, pero se solapa con parte de la malla. La imagen de la derecha muestra la detección de vértices del crack solapados mediante una esfera. Para evitar la construcción de quads de cierre incorrectos, se propone una restricción añadida que detecta vértices solapados del crack. Esta restricción, se basa en la comprobación de la no existencia de parte de la malla solapada con una esfera que

70 58 Capítulo 3. Algoritmo de Marching Quads englobe al quad. Esta esfera es situada en el baricentro del polígono, siendo su radio la distancia al vértice más lejano. Debido a que se supone correcta la topología de la malla en el algoritmo de Marching Quads, solamente es necesario comprobar que no se solapen los vértices pertenecientes al crack. La figura 3.12 muestra la esfera de restricción que permitiría detectar el problema del ejemplo. Paso 6: En caso de que el algoritmo no logre crear algún quad, se cierra parte del quad mediante un polígono triangular, utilizando dos aristas del crack y una nueva. En este caso no se necesita comprobar la topología del triángulo, aunque si se necesita chequear que el triángulo no solape parte del crack. Para ello, se construye un prisma triangular proyectando el triángulo una cierta distancia constante, y luego se comprueba que el prisma no englobe a algún vértice del crack. Es necesario un ordenamiento de aristas candidatas que esté enfocado a la construcción de triángulos. Este ordenamiento es calculado de manera similar al de quads pero, debido a que sólo dos aristas del crack se necesitan para crear el triángulo, el peso escoge únicamente el ángulo que forman las dos aristas. Con esto se pretende cerrar esquinas del crack muy cerradas. Paso 7: Puede darse el caso de construcción de un nuevo triángulo anexo a otro existente. El paso del algoritmo permite detectar estos casos, comprobar que ambos triángulos se unen en un buen quad y, en este caso, fusionar ambos triángulos para minimizar el número de polígonos triangulares en la malla. Paso 8: Tanto si se ha creado un triángulo, como si lo que se ha creado es un quad, la estructura de crack ha de ser actualizada. Este paso es el encargado de ello, eliminando los nodos que pertenecen a las aristas utilizadas en la creación del nuevo polígono y, en caso de haberse creado una nueva arista, añadiendo el nuevo nodo correspondiente. Además, los ángulos y los pesos de los nodos que han sido afectados por la construcción del nuevo polígono han de ser recalculados. Paso 9: Como último paso del algoritmo se realiza una simple comprobación para detectar si el crack ha sido cerrado. Si aún quedan aristas en frontera en el crack, se

71 3.5. CIERRE DE CRACKS 59 repite otra iteración del algoritmo para continuar generando polígonos que permitan rellenar lo que queda de crack.

72 60 Capítulo 3. Algoritmo de Marching Quads

73 Capítulo 4 Mejoras en Marching Quads 4.1. Aceleración del algoritmo Marching Quads Análisis del problema Durante el algoritmo de Marching Quads se realizan varios test sobre la malla completa. Debido a que el número de elementos de la malla aumenta con el avance del algoritmo, el algoritmo se hace cada vez más lento. En este trabajo se propone una mejora para acelerar algunas comprobaciones que se realizan sobre la malla, explotando el principio de localidad. El algoritmo de Marching Quads verifica, para cada uno de los posibles casos de construcción de quads, la restricción de Delaunay sobre el quad candidato. Por este motivo en cada iteración del algoritmo se recorren varias veces todos los vértices de la malla para comprobar la restricción. Incluso, algunos de los casos recorren la malla dos veces al comprobar también la restricción de topología de malla correcta, detallada en la sección Cuando se computa una arista frontera e b, el nuevo quad solapa una cierta región delamallalocalae b.estazonadelamallaseencuentradelimitadaporunadistancia aproximada a la longitud de proyección l proj. 61

74 62 Capítulo 4. Mejoras en Marching Quads Solución al problema Porque el nuevo quad va a localizarse en una zona local, se propone utilizar una esfera centrada en e b y de radio F l l proj, siendo F l un factor que permite aumentar ligeramente la distancia de proyección para tener un margen de seguridad. Utilizando estaesfera,sepuedeobtenerunsubconjuntolocalm s delamallam encadaiteración del algoritmo detectando los elementos de M que se encuentran solapados por la esfera de localidad. Comprobar la restricción de Delaunay sobre la malla reducida M s reduce el cálculo de una iteración, al evitar varias veces recorrer un número más elevado de elementos. Una característica de esta mejora de localidad es su naturaleza acelerativa con respecto al algoritmo original. El motivo es que contra más elementos hay en la malla, más cantidad de ellos son evitados por la reducción de la malla. De este modo, esta mejora se va haciendo más efectiva cuanto más avanza el algoritmo de poligonización. Aun así, Marching Quads sigue siendo un algoritmo decelerativo ya que, debido a que la malla crece progresivamente en número de elementos, la reducción de malla ha de realizar más cálculos Crecimiento del algoritmo en base a la simetría del modelo Los modelos de personajes suelen tener una malla con una cierta simetría que, si no es idéntica, al menos es estructural. Por ejemplo, un personaje humanoide bípedo, tiene una mitad estructural de un brazo, una pierna, medio tronco y media cabeza; y una mitad simétrica que se corresponde a la estructura anterior. Por otra parte, el algoritmo de Marching Quads básico genera el crecimiento de la malla de forma aleatoria, comenzando desde el quad semilla y extendiéndose hacia todas direcciones. Esto es porque la lista de aristas a procesar utiliza un ordenamiento FIFO, basado por tanto en la antigüedad de la arista.

75 4.3. MARCHING QUADS ADAPTATIVO A LA CURVATURA DEL MODELO63 En la sección se comentó una alternativa al orden de procesamiento, la cual fue desarrollada en el trabajo de Fournier [Fou09]. El orden en el que computan las aristas en este trabajo, se realiza siguiendo el contorno de la malla en dirección hacia la siguiente arista frontera. El resultado de este cambio en el orden es la obtención de mejores mallas, en cuanto a la minimización de cracks se refiere. Nosotros proponemos una alternativa al orden de procesamiento de las aristas orientada a mejorar la estructura de la malla poligonal en base a la simetría del modelo. Nuestra técnica parte desde un quad semilla situado en el plano de simetría del modelo, y luego se añaden los nuevos quads dando prioridad las aristas frontera en base a la cercanía al plano de simetría. Para ello se utiliza una cola de prioridad para las aristas a procesar, cuyo orden se base en la cercanía del punto medio de la arista con su proyección en el plano de simetría. Este algoritmo basado en simetría permite empezar la construcción de quads en el plano de simetría generando una malla mejor estructurada. Progresivamente se va cerrando la malla en zonas más alejadas de la simetría obteniendo cracks en estas zonas. La imagen 5.5 muestra este crecimiento de malla hasta que se completa un modelo poligonal cuya estructura se ajusta a la simetría. Para que el algoritmo empiece a construir desde el plano de simetría, es un requisito de esta mejora que el quad inicial se encuentre situado en dicho plano y con orientación paralela a él. El algoritmo que se detalló en la sección 3.4 para localizar el quad semilla contempla estos requisitos Marching Quads adaptativo a la curvatura del modelo Análisis del problema Para que el algoritmo básico de Marching Quads tenga una resolución acorde al modelo, y no se pierdan características topológicas en zonas de alta curvatura, la distancia constante de proyección l proj, y en definitiva el tamaño de los quads, se define en base a la esfera de menor tamaño. De este modo, los polígonos de la malla resultante se ajustan a una resolución correcta para la zona de máxima curvatura

76 64 Capítulo 4. Mejoras en Marching Quads del modelo. Sin embargo, en modelos con una estructura muy compleja donde las primitivas implícitas más pequeñas difieren considerablemente de las más grandes, la resolución de la malla poligonal se hace demasiado densa por estar el tamaño de quad ajustado alaesferademenortamaño(ver ejemplosuperiordelaimagen5.7).además, lagran cantidad de polígonos que se generan en este tipo de modelos provoca una notable ralentización del algoritmo, debido a que la restricción de Delaunay progresivamente realiza más cálculos por computar mayor número de elementos en la malla. Incluso, esta ralentización es significativa utilizando la mejora acelerativa de simplificación de malla local detallada en la sección 4.1. Se puede pensar en aumentar el tamaño de quad para disminuir el número de polígonos del modelo, por ejemplo calculando el factor de resolución en base al tamaño medio de las esferas. Aunque esto es correcto, y permitiría disminuir el tiempo de cálculo obteniendo una resolución acorde al modelo, se poligonizarían mal las zonas del modelo con alta curvatura, pudiéndose incluso recortar partes del mismo Algoritmo adaptativo Adaptación de la proyección a la curvatura Se propone el uso una distancia de proyección l proj variable, la cual se define acorde a la curvatura local de la superficie, idea que ya fue desarrollada por Akkouche y Galin en [AG01] para ser utilizada en el algoritmo de Marching Triangles. Adaptar la distancia de proyección permite generar quads de tamaño menor en zonas de alta curvatura para evitar perder detalles del modelo, y generar quads de mayor tamaño en zonas muy planares sin que supngan una perdida de calidad en el modelo (ver ejemplos inferiores de la imagen 5.7). Para evitar el cálculo de la curvatura de la superficie nosotros proponemos utilizar el tamaño de la esfera, ya que el tamaño de ésta es proporcional a la curvatura de su superficie. La distancia de proyección l proj puede ser calculada en base al radio de la esfera implícita local, de modo que a mayor radio la distancia de proyección se decremente.

77 4.3. MARCHING QUADS ADAPTATIVO A LA CURVATURA DEL MODELO65 Cálculo de la proporción en el quad inicial A la hora de crear el quad inicial, su tamaño es escogido de manera proporcional al tamaño de la primitiva implícita donde está situado. El tamaño del quad inicial es escogido por el usuario mediante el factor de resolución, el cual indica aproximadamente el tamaño del quad con respecto a la curvatura (tamaño de su esfera). Para que el resto de quads mantengan una proporción similar al quad semilla entre la curvatura y el tamaño de quad, se ha de calcular un factor de proporción que relacione el tamaño del quad inicial con el tamaño de la esfera implícita donde se sitúa. Tamaño del quad inicial En primer lugar se calcula una medida del tamaño del quad inicial como la distancia media de los lados del polígono,ya que la proyección se basa en esa longitud. IQ size = l 1+l 2 +l 3 +l 4 4, donde l i es la longitud de cada arista del quad. Curvatura en el quad inicial A continuación, se calcula el valor de la curvatura de la superficie en el quad inicial, como una media de los radios de las primitivas esféricas que se corresponden a cada uno de los cuatro vértices del quad inicial. IS size = S v1+s v2 +S v3 +S v4 4, donde S vi se corresponde con el tamaño de la primitiva en el vértice i. Factor de proporción El factor de proporción es una relación entre el tamaño del quad inicial con respecto a la curvatura de dicho quad. F Qsize = IQ size IS size Cálculo de la proyección para los nuevos quads El algoritmo de Marching Quads adaptativo, en vez de proyectar los nuevos puntos una distancia constante l proj como en el algoritmo básico, esta distancia ha de recalcularse en cada paso del algoritmo utilizando la curvatura local. Cómo no

78 66 Capítulo 4. Mejoras en Marching Quads puede ser anticipada la curvatura en el punto destino de la proyección, se estima la curvatura utilizando la del origen de la proyección, el quad frontera Q b. La curvatura del quad Q b es calculada del mismo modo que IS size, como una media de los radios de las primitivas implícitas de cada vértice. Multiplicando este valor por el factor de proporción, se obtiene el tamaño de un lado de quad proporcional a la curvatura de la zona, y por tanto éste es el valor l proj al que se desea ajustar el nuevo quad.

79 Capítulo 5 Resultados experimentales Enestecapítulosemostraránalgunosdelosresultadosquesehanobtenidoconel poligonizador Marching Quads que se presenta en este documento, y el cual permite convertir a malla poligonal de quads, modelos de superficies implícitas definidas como un conjunto de esferas. En algunas imágenes, el modelo implícito del modelo es mostrado para ser comparado con la malla poligonal. Estas visualizaciones implícitas se han obtenido dibujando cada primitiva esférica mediante una aproximación poligonal de alta resolución generada mediante OpenGL. Los quads resultantes en la malla poligonal son visualizados en color amarillo anaranjado, dibujándose en color azul sus caras traseras para permitir localizar agujeros en la malla. Los triángulos que genera el algoritmo de cierre de cracks son visualizados en color verde claro para poder distinguir entre ambos tipos de polígonos 1. Varias de las pruebas que se presentan en este capítulo son mostradas sin cerrar cracks, para permitir enfocar los ejemplos a las características que se desean analizar del algoritmo de Marching Quads. Las imágenes que se muestran en esta sección muestran varios datos sobre el modelo. Se muestra un valor aproximado del número de polígonos que se han generado en la malla poligonal que, en caso de mallas con cracks se corresponden exclusiva- 1 En escala de grises los triángulos y las caras traseras se visualizan de un tono más claro que los quads 67

80 68 Capítulo 5. Resultados experimentales mente con quads. Además, se muestra el tiempo de generación 2 de la malla por el poligonizador, excluyendo el algoritmo de cierre de cracks. Además, se muestra un factor de tamaño de quad que permite definir la resolución de la malla, y el cual se detallará más adelante. En los modelos implícitos se muestran la cantidad de primitivas esféricas que contienen. Este capítulo esta dividido en dos partes: una primera donde se expondrán resultados del poligonizador en modelos básicos, para analizar su funcionamiento y el de sus mejoras; y una segunda parte donde se mostrarán resultados aplicado a modelos complejos Características de Marching Quads Algoritmo básico Esfera La prueba más básica del algoritmo es la realizada para un modelo implícito de una única primitiva, la esfera, ya que se corresponde con el volumen tridimensional más básico y simétrico. La figura 5.1 muestra la malla poligonal generada para la esfera, y su visualización en facetas, del modelo de esfera tras aplicar el algoritmo de poligonización. Además, se muestra el resultado de la misma malla tras aplicar el algoritmo de cierre de cracks. Nótese como éste último ejemplo genera algunos polígonos triangulares en las zonas que se encontraban con agujeros. Factor de tamaño de quad Un parámetro muy importante en el poligonizador Marching Quads es el factor de resolución de malla. Este valor permite definir el tamaño de los quads de la malla en función al radio de una esfera, como un porcentaje del tamaño de la misma. Para versiones no adaptativas el factor se aplica a la esfera de menor tamaño para no perder características morfológicas del modelo en zonas de alta curvatura. Por 2 Se ha utilizado para las pruebas un Intel Core 2 T GHz

81 5.1. CARACTERÍSTICAS DE MARCHING QUADS 69 ejemplo, un valor de 0.1 define el tamaño de los quads de la malla como un 10% de la longitud del radio de la esfera más pequeña. Figura 5.1: Poligonización de una esfera utilizando Marching Quads básico, antes (izquierda) y después (derecha) de cerrar los cracks. Figura 5.2: Resultados de aplicar Marching Quads utilizando diferentes valores del factor de resolución de malla. De izquierda a derecha valores de 3% del radio de la esfera, 6% del radio y 8% del radio. La figura 5.2 permite ver la malla del modelo de esfera en tres resoluciones: con un tamaño de quad del 3% con respecto al radio de la esfera, con un 6% y con un 8%. Puede apreciarse la variación del tamaño de los quads en los tres casos.

82 70 Capítulo 5. Resultados experimentales Se puede percibir que, a mayor número de polígonos generados, el tiempo de cálculo crece de manera no lineal, 2.5 segundos 1500 polígonos frente a los 44 segundos de aproximadamente el doble de polígonos. Esto es debido a que el algoritmo progresivamente amplía el número de quads de la malla. Como en cada iteración del algoritmo se ha de computar la restricción de Delaunay para todos los elementos de la malla, es obvio que el tiempo de cálculo en cada iteración será mayor cuanto más elementos contiene el modelo. Cierre de cracks La figura 5.3 muestra más detalladamente un ejemplo de cierre de cracks, donde se compara la malla con agujeros con respecto a la malla que resulta tras aplicar el algoritmo de cierre. Puede observarse que los quads creados en la zona de crack suelen ser más deformes, y que partes del agujero es sellado en ocasiones utilizando un polígono triangular. Modelo de 5 esferas La figura 5.4 muestra la malla obtenida tras aplicar el algoritmo sobre un modelo de cinco primitivas esféricas. Además, se muestra la malla poligonal tras cerrar todos sus cracks Mejora acelerativa del algoritmo De las pruebas realizadas sobre el modelo de esfera y el modelo de cinco bolas, para una misma resolución de malla de factor 3% y 6% respectivamente, se ha obtenido la tabla 5.1 que permite comparar los tiempos de cálculo del algoritmo básico con el algoritmo con mejora acelerativa. Los resultados empíricos muestran que la mejora permite casi triplicar la rapidez del algoritmo, siendo más efectiva cuanto más número de polígonos contiene el la malla final.

83 5.1. CARACTERÍSTICAS DE MARCHING QUADS 71 Figura 5.3: Comparación de una malla poligonal con agujeros con respecto a la misma malla tras aplicar el algoritmo de cierre de cracks. Modelo MQ Básico MQ con Aceleración Aceleración esfera (Factor 3%) 44 segundos 16,5 segundos X2,66 5 bolas (Factor 6%) 314 segundos 110 segundos X2,85 Cuadro 5.1: Comparativa de tiempos del algoritmo de Marching Quads básico, con respecto al algoritmo con la mejora acelerativa. Se muestran resultados para el modelo de esfera y el modelo de cinco esferas.

84 72 Capítulo 5. Resultados experimentales Figura 5.4: Modelo Implícito de cinco esferas (imagen superior izquierda), malla del modelo obtenida por Marching Quads básico (imagen derecha) y malla que se obtiene tras cerrar los cracks (imagen inferior izquierda) Mejora de quads ajustados a la simetría del modelo En este trabajo se ha presentado una alternativa de construcción de la malla en la que los quad se ajusten a la simetría del modelo. Esta mejora alterna el orden de procesamiento de las aristas para que la construcción de nuevos quads se realice desde el plano de simetría. La figura 5.5 muestra varios momentos del algoritmo en el modelo de cinco bolas donde puede observarse como la malla crece desde el plano de simetría hacia zonas más alejadas.

85 5.1. CARACTERÍSTICAS DE MARCHING QUADS 73 Figura 5.5: De izquierda a derecha y de arriba a abajo, se muestra la malla del modelo de 5 esferas en distintos instantes del algoritmo de Marching Quads con la mejora de simetría. Se observa que los quads se construyen desde el plano de simetría del modelo. La figura 5.6 muestra las mallas resultantes tras aplicar el algoritmo utilizando un procesado de aristas FIFO y tras aplicar el procesado de aristas en base a la

86 74 Capítulo 5. Resultados experimentales cercanía al plano de simetría. Nótese que el primer caso los quads están generados correctamente pero de forma aleatoria, y que en el segundo caso los quads mantienen una buena estructura en zonas cercanas al plano de simetría. Se puede ver que la malla poligonal basada en simetría: Tiene un mallado mejor. No hay penalización significativa en el cómputo del modelo. Genera más polígonos, y por tanto minimiza el tamaño de los cracks Mejora de quads adaptados a la curvatura de la superficie Otras de las mejoras que se proponen en este trabajo es la de adaptar el tamaño de los quads a la curvatura local del modelo. Los dos primeros casos de la figura 5.7 permiten comparar la malla del modelo de cinco bolas obtenida con el algoritmo básico, con respecto a la misma malla obtenida con tras aplicar el algoritmo adaptativo. Se puede observar que en el primer caso los quads mantienen un tamaño uniforme basado en el tamaño de la esfera de menor tamaño. Por contra, en la malla obtenida de forma adaptativa, puede observarse que el tamaño de quad varía en función del radio de la esfera implícita donde se sitúa el polígono. Aunque la malla adaptativa genera menos polígonos, la percepción del modelo es similar a la malla obtenida de forma no adaptativa. Además, minimizar el número de polígonos implica que el tiempo de cómputo sea mucho menor utilizando la mejora adaptativa. La comparación del segundo y tercer caso de la figura 5.7 permite demostrar que, independientemente del factor de tamaño de quad, los polígonos se adaptan el tamaño a la curvatura y que lo que varía es la resolución general de la malla.

87 5.1. CARACTERÍSTICAS DE MARCHING QUADS 75 Figura 5.6: Comparativa, para el modelo de cinco esferas, entre malla obtenida con crecimiento aleatorio (Marching Quads básico) y malla obtenida mediante Marching Quads con mejora de crecimiento basado en simetría.

88 76 Capítulo 5. Resultados experimentales Figura 5.7: Comparativa entre malla obtenida con el algoritmo básico y malla obtenida de forma adaptativa, para el modelo de cinco bolas.

89 5.2. RESULTADOS EN MODELOS IMPLÍCITOS COMPLEJOS Resultados en modelos implícitos complejos A continuación se muestran varios resultados del poligonizador para modelos complejos que contienen un número elevado de primitivas esféricas. Las pruebas se han realizado utilizando el algoritmo de poligonización Marching Quads incluyendo la mejora acelerativa, el crecimiento de malla basado en simetría y la mejora que permite adaptar el tamaño de los quads a la curvatura del modelo. que incluye las tres mejoras aplicado a modelos implícitos que contienen una gran cantidad de primitivas esféricas. Además, a todos los ejemplos se les ha aplicado el algoritmo de cierre de cracks. La figura 5.8 muestra los resultados de un modelo de árbol de 693 esferas. La figura 5.9 muestra los resultados para un modelo de humanoide de 1000 esferas y la figura 5.10 muestra otro humanoide en postura de agachado también de 1000 esferas. Por último, en la figura 5.11 se muestra un modelo de perro de 520 esferas.

90 78 Capítulo 5. Resultados experimentales Figura 5.8: P oligonización del modelo de árbol. Poligonización de modelo de árbol (693 esferas). Arriba se muestra el árbol con una resolución de tamaño de quad de 10% del radio de la esfera y abajo se muestra con resolución de 20%.

91 5.2. RESULTADOS EN MODELOS IMPLÍCITOS COMPLEJOS 79 Figura 5.9: Poligonización del modelo de humanoide (1000 esferas). A la izquierda se muestra el modelo implícito y las dos imágenes de la derecha muestran la malla poligonal con una resolución de tamaño de quad de 20% del radio de la esfera.

92 80 Capítulo 5. Resultados experimentales Figura 5.10: Poligonización del modelo de humanoide sentado (1000 esferas). A la izquierda se muestra el modelo implícito y las dos imágenes de la derecha muestran el modelo poligonal con una resolución de tamaño de quad de 10% del radio de la esfera.

93 5.2. RESULTADOS EN MODELOS IMPLÍCITOS COMPLEJOS 81 Figura 5.11: Poligonización del modelo de perro (520 esferas). A la izquierda se muestra el modelo implícito y las dos imágenes de la derecha muestran el modelo poligonal con una resolución de tamaño de quad de 15% del radio de la esfera.

94 82 Capítulo 5. Resultados experimentales

95 Capítulo 6 Conclusiones y trabajos futuros 6.1. Conclusiones Características de Marching Quads Como muestran los resultados presentes en el capítulo anterior, el poligonizador de superficies implícitas permite obtener mallas de quads con las siguientes características: En general, los quad que el algoritmo construye tienen una morfología bastante buena por la similitud que tienen con un cuadrado, que es el polígono perfecto por su equilateralidad. La malla poligonal es una aproximación muy fiel al modelo, ya que por una parte todos los vértices están sobre la superficie del modelo, y por otra parte el tamaño de los quads está ajustado a la curvatura de modo que se pierdan pocas características morfológicas del modelo. Los tiempos de cómputo para la versión adaptativa son bastante aceptables para ser usado como preprocesado del sistema de creación de personajes 3D automático. La mejora de aceleración consigue decrementar considerablemente el tiempo de cómputo del algoritmo. Además, sus efectos se incrementan cuanto más compleja es la malla poligonal resultante, en cuanto al número de polígonos que contiene. El crecimiento de los quads basado en simetría permite que, en general, los 83

96 84 Capítulo 6. Conclusiones y trabajos futuros quad se encuentren orientados según la simetría del modelo, y además que la malla se encuentre mejor estructurada en zonas cercanas a al plano de simetría, minimizando los cracks en el modelo. Además, esta característica no influye en el tiempo de procesado del algoritmo Limitaciones Polígonos deformados en las zonas de cracks El algoritmo de poligonización Marching Quads trata de construir quads con una morfología cercana a la equilateralidad para que la calidad de la malla final sea aceptable. Todos los resultados del capítulo anterior que muestran mallas con cracks muestran que, efectivamente, la calidad de los quads es bastante buena. Sin embargo, hay situaciones en las que el algoritmo es incapaz de crear un buen quad dejando un agujero en la malla. El algoritmo de cierre de cracks (ver figura 5.3) permite cerrar correctamente todos los agujeros, aunque para ello se ve forzado a la construcción de polígonos algo deformes y algunos triángulos. A pesar de ello, la calidad de la malla sigue manteniendo una correcta topología. Además, modelos de animación diseñados con herramientas CAD por modeladores también incluyen algunos polígonos triangulares. Limitaciones en Marching Quads básico El algoritmo básico, debido a su homogeneidad en el tamaño de los polígonos, tiene el inconveniente de que en modelos muy complejos, donde existe una considerable diferencia de tamaño entre la esfera de mayor y menor tamaño, se obtiene una malla con un número bastante elevado de polígonos. Esto es debido a que el tamaño es escogido en base a la esfera más pequeña, lo que provoca que en las zonas de superficies de menor curvatura (esferas grandes) se creen polígonos demasiado pequeños. Estos quads construidos en zonas planares, podrían haber sido de un tamaño superior sin que ello supusiese una notable perdida de fidelidad con el modelo. En la figura 6.1 se muestra este problema en el modelo de árbol, donde los extremos de las raíces del árbol están formados por primitivas muy pequeñas en

97 6.1. CONCLUSIONES 85 comparaciónconlasprimitivasdelacopadel árbol.esto provoca quetodoel modelo contenga un tamaño diminuto de quads. Además, que la malla crezca excesivamente en cuanto a número de polígonos, tiene el inconveniente de que el algoritmo se hace muy pesado en cuanto a cálculo, obteniéndose el modelo en tiempos desorbitados. Figura 6.1: Problema de poligonización no adaptativa en modelos complejos. El tamaño de quad es ajustado a la zona de mayor curvatura, resultando en un número de polígonos excesivo, y un tiempo de cálculo, excesivos. Se podría pensar en utilizar un tamaño basado en el tamaño medio de las primitivas. Aunque esto permitiría obtener quads mayores que minimizaran el número de

TIPOS DE RESTRICCIONES

TIPOS DE RESTRICCIONES RESTRICCIONES: Las restricciones son reglas que determinan la posición relativa de las distintas geometrías existentes en el archivo de trabajo. Para poder aplicarlas con rigor es preciso entender el grado

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Movimiento a través de una. José San Martín

Movimiento a través de una. José San Martín Movimiento a través de una curva José San Martín 1. Introducción Una vez definida la curva sobre la cual queremos movernos, el siguiente paso es definir ese movimiento. Este movimiento se realiza mediante

Más detalles

CÁLCULO PARA LA INGENIERÍA 1

CÁLCULO PARA LA INGENIERÍA 1 CÁLCULO PARA LA INGENIERÍA 1 PROBLEMAS RESUELTOS Tema 3 Derivación de funciones de varias variables 3.1 Derivadas y diferenciales de funciones de varias variables! 1. Derivadas parciales de primer orden.!

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

BARRA DE HERRAMIENTAS DE BOCETO:

BARRA DE HERRAMIENTAS DE BOCETO: INTRODUCCIÓN: Autodesk Inventor es un sistema de modelado sólido basado en operaciones geométrica, que proporciona todas las herramientas necesarias para ejecutar proyectos de diseño, desde el primer boceto

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Extracción de Frontera (Boundary Extraction) La frontera de un conjunto A, escrita como β(a), se puede obtener erosionando A por B y luego calcular la diferencia entre A y su erosión. Esto es β ( A) =

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

Tutorial 1/3 Marzo 2003. omv@ole.com

Tutorial 1/3 Marzo 2003. omv@ole.com Tutorial 1/3 Marzo 2003 DISEÑO DE UNA ALACENA EN 3D A continuación se detallan todos los pasos para diseñar la alacena de la portada. Se presupone que se tienen conocimientos básicos de Autocad en 2D para

Más detalles

En este tutorial aprenderemos las técnicas básicas de tratamiento de imágenes vectoriales con Flash.

En este tutorial aprenderemos las técnicas básicas de tratamiento de imágenes vectoriales con Flash. LAS IMÁGENES VECTORIALES EN FLASH. En este tutorial aprenderemos las técnicas básicas de tratamiento de imágenes vectoriales con Flash. Ya hemos visto en el tutorial anterior la diferencia entre las imágenes

Más detalles

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina 25. 28108 Alcobendas, Madrid. www.ahorracom.com

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina 25. 28108 Alcobendas, Madrid. www.ahorracom.com PAGTE Plan de Ahorro y Gestión de Telecomunicaciones para Empresas En Ahorracom nos ponemos de su parte. Por eso nos interesa que usted, nuestro cliente, esté al tanto de todos los procesos que llevamos

Más detalles

Gestión de la Configuración

Gestión de la Configuración Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

1. Producto escalar, métrica y norma asociada

1. Producto escalar, métrica y norma asociada 1. asociada Consideramos el espacio vectorial R n sobre el cuerpo R; escribimos los vectores o puntos de R n, indistintamente, como x = (x 1,..., x n ) = n x i e i i=1 donde e i son los vectores de la

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Proyecto Fin de Carrera

Proyecto Fin de Carrera Proyecto Fin de Carrera Gestión del Proyecto para una Plataforma online de intercambio, compra o venta de ayudas técnicas. Consultora: Ana Cristina Domingo Troncho Autor: Álvaro Fanego Lobo Junio de 2013

Más detalles

Introducción al diseño híbrido con ZW3D

Introducción al diseño híbrido con ZW3D Introducción al diseño híbrido con ZW3D Con este tutorial podrá aprender el diseño 3D con un programa CAD 3D híbrido de modelado de sólidos y superficies combinadas. El objetivo es dibujar un grifo en

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

REPARACIÓN DE FICHEROS

REPARACIÓN DE FICHEROS Corrección de imperfecciones REPARACIÓN DE FICHEROS El objetivo de este capitulo es mostrar algunos problemas típicos que pueden aparecer al importar geometría creada externamente, y el modo de abordar

Más detalles

Roberto Quejido Cañamero

Roberto Quejido Cañamero Crear un documento de texto con todas las preguntas y respuestas del tema. Tiene que aparecer en él todos los contenidos del tema. 1. Explica qué son los modos de presentación en Writer, cuáles hay y cómo

Más detalles

Construcción de superficies implicitas en 3D a partir de una nube de puntos utilizando Marching Triangles

Construcción de superficies implicitas en 3D a partir de una nube de puntos utilizando Marching Triangles Construcción de superficies implicitas en 3D a partir de una nube de puntos utilizando Marching Triangles Diego Arévalo Ovalle Octubre 2014 Abstract Hilton and Illingworth introduced a new surfaced-based

Más detalles

COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO

COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO Sonia Aguilera Piqueras y Pablo Flores Martínez Departamento de Didáctica de la Matemática Universidad de Granada 1. Introducción

Más detalles

UNA LECCIÓN DE ESTEREOMETRÍA ASISTIDA POR COMPUTADORA

UNA LECCIÓN DE ESTEREOMETRÍA ASISTIDA POR COMPUTADORA IV CIEMAC S. Mata, C. Quesada 1 UNA LECCIÓN DE ESTEREOMETRÍA ASISTIDA POR COMPUTADORA Sergio Mata C. Cristian Quesada F. Resumen Con el desarrollo de este trabajo se pretende mejorar el proceso de enseñanza-

Más detalles

UNIVERSIDAD COMPLUTENSE DE MADRID

UNIVERSIDAD COMPLUTENSE DE MADRID TIEMPO: INSTRUCCIONES GENERALES Y VALORACIÓN 120 minutos. INSTRUCCIONES: La prueba consiste en la realización de cinco ejercicios, a elegir entre dos opciones, denominadas A y B. El alumno realizará una

Más detalles

CAPÍTULO 7 7. CONCLUSIONES

CAPÍTULO 7 7. CONCLUSIONES CAPÍTULO 7 7. CONCLUSIONES 7.1. INTRODUCCIÓN 7.2. CONCLUSIONES PARTICULARES 7.3. CONCLUSIONES GENERALES 7.4. APORTACIONES DEL TRABAJO DE TESIS 7.5. PROPUESTA DE TRABAJOS FUTUROS 197 CAPÍTULO 7 7. Conclusiones

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia. APUNTES PARA EL CURSO PROCESOS COGNITIVOS: RESOLUCIÓN DE PROBLEMAS Y TOMA DE DECISIONES Elaborado por Vicente Sisto Campos. Se trata de la confluencia de la capacidad analítica del equipo de identificar

Más detalles

CONCEPTOS DE LA FUERZA

CONCEPTOS DE LA FUERZA CONCEPTOS DE LA FUERZA PAPEL DE LA FUERZA EN EL RENDIMIENTO DEPORTIVO La mejora de la fuerza es un factor importante en todas las actividades deportivas, y en algunos casos determinantes (en el arbitraje

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

LÍMITES Y CONTINUIDAD DE FUNCIONES

LÍMITES Y CONTINUIDAD DE FUNCIONES Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos

Más detalles

1.- Introducción y objetivos

1.- Introducción y objetivos 1.- Introducción y objetivos El objetivo principal de este proyecto, desarrollado en el Departamento de Tecnología Electrónica de la Universidad de Valladolid (UVA) es realizar un entorno que ayude a los

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

COORDENADAS CURVILINEAS

COORDENADAS CURVILINEAS CAPITULO V CALCULO II COORDENADAS CURVILINEAS Un sistema de coordenadas es un conjunto de valores que permiten definir unívocamente la posición de cualquier punto de un espacio geométrico respecto de un

Más detalles

Operación de Microsoft Excel

Operación de Microsoft Excel Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,

Más detalles

Curso: Arquitectura Empresarial basado en TOGAF

Curso: Arquitectura Empresarial basado en TOGAF Metodología para desarrollo de Arquitecturas (ADM) El ADM TOGAF es el resultado de las contribuciones continuas de un gran número de practicantes de arquitectura. Este describe un método para el desarrollo

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Actividades con GeoGebra

Actividades con GeoGebra Conectar Igualdad - "Netbooks Uno a Uno" Actividades con GeoGebra Nociones básicas, rectas Silvina Ponce Dawson Introducción. El GeoGeobra es un programa que permite explorar nociones matemáticas desde

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

5.4. Manual de usuario

5.4. Manual de usuario 5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin

Más detalles

Unidad V: Integración

Unidad V: Integración Unidad V: Integración 5.1 Introducción La integración es un concepto fundamental de las matemáticas avanzadas, especialmente en los campos del cálculo y del análisis matemático. Básicamente, una integral

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

I.E.S. ANDRÉS DE VANDELVIRA DEPARTAMENTO DE TECNOLOGÍA SISTEMAS DE REPRESENTACIÓN GRÁFICA: PERSPECTIVA. J.Garrigós

I.E.S. ANDRÉS DE VANDELVIRA DEPARTAMENTO DE TECNOLOGÍA SISTEMAS DE REPRESENTACIÓN GRÁFICA: PERSPECTIVA. J.Garrigós I.E.S. ANDRÉS DE VANDELVIRA DEPARTAMENTO DE TECNOLOGÍA J.Garrigós I.E.S. ANDRÉS DE VANDELVIRA DEPARTAMENTO DE TECNOLOGÍA 1 1.INTRODUCCIÓN Los sistemas de representación en perspectiva, tienen como objetivo

Más detalles

Draw: objetos en 3D, diagramas de flujo y exportación

Draw: objetos en 3D, diagramas de flujo y exportación 1 de 15 30/11/2010 22:11 Draw: objetos en 3D, diagramas de flujo y exportación Draw es una herramienta de dibujo gráfico vectorial, aunque puede hacer algunas operaciones sobre graficos rasterizados. Ofrece

Más detalles

La explicación la haré con un ejemplo de cobro por $100.00 más el I.V.A. $16.00

La explicación la haré con un ejemplo de cobro por $100.00 más el I.V.A. $16.00 La mayor parte de las dependencias no habían manejado el IVA en los recibos oficiales, que era el documento de facturación de nuestra Universidad, actualmente ya es formalmente un CFD pero para el fin

Más detalles

Cap. 24 La Ley de Gauss

Cap. 24 La Ley de Gauss Cap. 24 La Ley de Gauss Una misma ley física enunciada desde diferentes puntos de vista Coulomb Gauss Son equivalentes Pero ambas tienen situaciones para las cuales son superiores que la otra Aquí hay

Más detalles

Autodesk inventor 2010-2011

Autodesk inventor 2010-2011 Autodesk inventor 2010-2011 INDICE -CREACIÓN DE PROTOTIPOS DIGITALES... 3 - INVENTOR 2010 Y 2011... 4 -CREACÍON DE IPARTS EN INVENTOR... 47 Autodesk inventor. Prototipage digital Autodesk inventor. Prototipage

Más detalles

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada Capítulo 2 Silueta 2.1 Silueta La silueta de un objeto es muy importante porque es lo que nos da las pistas visuales de cómo es que está formado, nos dice dónde están sus límites y ayuda a diferenciar

Más detalles

Fundamentos Matemáticos y Físicos para Informática Gráfica. Mallas de Triángulos (2015)

Fundamentos Matemáticos y Físicos para Informática Gráfica. Mallas de Triángulos (2015) Fundamentos Matemáticos y Físicos para Informática Gráfica Mallas de Triángulos (2015) Presentación de la asignatura Objetivos globales de la asignatura: Introducción/recordatorio de algunos conceptos

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

El Futuro de la Computación en la Industria de Generación Eléctrica

El Futuro de la Computación en la Industria de Generación Eléctrica El Futuro de la Computación en la Industria de Generación Eléctrica Retos a los que se enfrenta la industria de generación La industria de generación eléctrica se enfrenta a dos retos muy significativos

Más detalles

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Apertura y Clausura (Opening and Closing) Como vimos, la dilatación y la erosión están muy relacionadas con la forma; la primera operación expande la imagen mientras que la segunda la contrae. La dilatación

Más detalles

CAPITULO 4. Inversores para control de velocidad de motores de

CAPITULO 4. Inversores para control de velocidad de motores de CAPITULO 4. Inversores para control de velocidad de motores de inducción mediante relación v/f. 4.1 Introducción. La frecuencia de salida de un inversor estático está determinada por la velocidad de conmutación

Más detalles

Siguiendo la tendencia sobre las Acciones del Ibex35

Siguiendo la tendencia sobre las Acciones del Ibex35 WWW.CLASESDEBOLSA.COM Siguiendo la tendencia sobre las Acciones del Ibex35 Funcionan los sistemas seguidores de tendencia en las acciones? Estudio realizado por David Urraca con la ayuda de Jorge Ufano

Más detalles

Circuito RL, Respuesta a la frecuencia.

Circuito RL, Respuesta a la frecuencia. Circuito RL, Respuesta a la frecuencia. A.M. Velasco (133384) J.P. Soler (133380) O.A. Botina (133268) Departamento de física, facultad de ciencias, Universidad Nacional de Colombia Resumen. Se estudia

Más detalles

UNIDAD N º 6: Volumen (1ª parte)

UNIDAD N º 6: Volumen (1ª parte) UNIDAD N º 6: Volumen (1ª parte) De manera intuitiva, el volumen de un objeto es el espacio que él ocupa. El procedimiento a seguir para medir el volumen de un objeto dependerá del estado en que se encuentre:

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

Metodología básica de gestión de proyectos. Octubre de 2003

Metodología básica de gestión de proyectos. Octubre de 2003 Metodología básica de gestión de proyectos Octubre de 2003 Dentro de la metodología utilizada en la gestión de proyectos el desarrollo de éstos se estructura en tres fases diferenciadas: Fase de Éjecución

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

Más detalles

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR Manuel González y Javier Cuadrado Departamento de Ingeniería Industrial II, Campus de Esteiro, 15403 Ferrol Universidad de

Más detalles

Capitulo I. Introducción

Capitulo I. Introducción Capitulo I. Introducción 1.1 Descripción del trabajo El ser humano, como todos sabemos tiene la necesidad de comunicarse, de ser escuchado y sobretodo interactuar con los demás seres vivos que lo rodean.

Más detalles

ORIENTACIONES GENERALES SOBRE EL PROCESO DE TRABAJO DE GRADO

ORIENTACIONES GENERALES SOBRE EL PROCESO DE TRABAJO DE GRADO PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD ESTUDIOS AMBIENTALES Y RURALES MAESTRIA EN DESARROLLO RURAL ORIENTACIONES GENERALES SOBRE EL PROCESO DE TRABAJO DE GRADO SOBRE LO QUE ESPERA LA MAESTRÍA DEL TRABAJO

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

>ÍNDICE INTRODUCCIÓN OFRECER VEHÍCULO NECESITAR VEHÍCULO GRUPOS MIS GESTIONES

>ÍNDICE INTRODUCCIÓN OFRECER VEHÍCULO NECESITAR VEHÍCULO GRUPOS MIS GESTIONES GUÍA DE USUARIO >ÍNDICE > 1 2 EL ENTORNO DE TRABAJO 2.1 SECCIÓN DE BIENVENIDA 2.2 SECCIÓN OFREZCO 2.2.1 ZONA DE INFORMACIÓN Y OPCIONES 2.2.2 ZONA DE CONTENIDO 2.3 SECCIÓN NECESITO COCHE 2.4 SECCIÓN 2.4.1

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Composición de objetos tridimensionales en 3D Studio

Composición de objetos tridimensionales en 3D Studio 19 de Junio de 2007 UNIVERSIDAD DE VALLADOLID COMPOSICIÓN DE OBJETOS TRIDIMENSIONALES EN 3D STUDIO Informática Gráfica (doctorado) Emilio González Montaña Contenido Introducción... 3 Geometría sólida constructiva...

Más detalles

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu EDU082 Resumen SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA Lic. Maikel León Espinosa mle@uclv.edu.cu Departamento de Ciencia de la Computación Universidad Central Marta Abreu de Las Villas Carretera

Más detalles

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid MANUAL DE EMPRESA Modo de entrar en ÍCARO Para comenzar a subir una oferta de empleo, el acceso es a través del siguiente enlace: http://icaro.uam.es A continuación, aparecerá la página de inicio de la

Más detalles

POWER POINT. Iniciar PowerPoint

POWER POINT. Iniciar PowerPoint POWER POINT Power Point es la herramienta de Microsoft Office para crear presentaciones que permiten comunicar información e ideas de forma visual y atractiva. Iniciar PowerPoint Coloque el cursor y dé

Más detalles

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final INTRODUCCION En principio surgió la idea de un buscador que brinde los resultados en agrupaciones de

Más detalles

KIG: LA GEOMETRÍA A GOLPE DE RATÓN. Asesor de Tecnologías de la Información y de las Comunicaciones

KIG: LA GEOMETRÍA A GOLPE DE RATÓN. Asesor de Tecnologías de la Información y de las Comunicaciones KIG: LA GEOMETRÍA A GOLPE DE RATÓN Asesor de Tecnologías de la Información y de las Comunicaciones GNU/LINEX Mariano Real Pérez KIG KDE Interactive geometry (Geometría interactiva de KDE) es una aplicación

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Contenidos. INFORME ENCUESTA TELEFÓNICA. Curso 2009 10

Contenidos. INFORME ENCUESTA TELEFÓNICA. Curso 2009 10 ENCUESTA DE OPINIÓN DEL ALUMNADO SOBRE LA ACTUACIÓN DOCENTE DEL PROFESORADO UNIVERSIDAD DE SEVILLA Curso 2009-2010 ENCUESTA TELEFÓNICA Contenidos Introducción.... 4 El Cuestionario... 5 El muestreo...

Más detalles

Cálculo Simbólico también es posible con GeoGebra

Cálculo Simbólico también es posible con GeoGebra www.fisem.org/web/union ISSN: 1815-0640 Número 34. Junio de 2013 páginas 151-167 Coordinado por Agustín Carrillo de Albornoz Cálculo Simbólico también es posible con GeoGebra Antes de exponer las posibilidades

Más detalles

I.E.S. Cuenca Minera Dto. Tecnología P.I. : Introducción al diseño 3D: Blender MODELADO

I.E.S. Cuenca Minera Dto. Tecnología P.I. : Introducción al diseño 3D: Blender MODELADO E17: ANIMACIÓN MUÑECO Para repasar parte de lo aprendido hasta ahora, vamos a crear (modelar, aplicar materiales y texturas, poner esqueleto, animar, ) un muñeco fácil. Existen varias técnicas para modelar,

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

1 Estática Básica Prohibida su reproducción sin autorización. CONCEPTOS DE FISICA MECANICA. Conceptos de Física Mecánica

1 Estática Básica Prohibida su reproducción sin autorización. CONCEPTOS DE FISICA MECANICA. Conceptos de Física Mecánica 1 CONCEPTOS DE FISICA MECANICA Introducción La parte de la física mecánica se puede dividir en tres grandes ramas de acuerdo a lo que estudia cada una de ellas. Así, podemos clasificarlas según lo siguiente:

Más detalles

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL SISTEMAS DE COORDENADAS En la vida diaria, nos encontramos con el problema de ordenar algunos objetos; de tal manera que es necesario agruparlos, identificarlos, seleccionarlos, estereotiparlos, etc.,

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,

Más detalles

Curso Online de Microsoft Project

Curso Online de Microsoft Project Curso Online de Microsoft Project Presentación El curso a distancia estudia conceptos generales sobre las tecnologías relacionadas con Internet. Conceptos que cualquier usuario de ordenadores debe conocer

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores Universidad Politécnica de Madrid 5 de marzo de 2010 2 4.1. Planificación

Más detalles

CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL?

CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL? CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL? Los indicadores financieros. Desde hace mucho tiempo se utiliza el sistema de mediciones financiero, desde la época de los egipcios

Más detalles

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA Valor del dinero en el tiempo Conceptos de capitalización y descuento Ecuaciones de equivalencia financiera Ejercicio de reestructuración de deuda T E M A

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

Cifras significativas e incertidumbre en las mediciones

Cifras significativas e incertidumbre en las mediciones Unidades de medición Cifras significativas e incertidumbre en las mediciones Todas las mediciones constan de una unidad que nos indica lo que fue medido y un número que indica cuántas de esas unidades

Más detalles