Sie sind auf Seite 1von 110

PROYECTO FIN DE MASTER

Marching Quads: un poligonizador de supercies impl citas orientado a modelos para animacin. o

AUTOR: Jos Javier Mac Snchez e as a TUTORA: Caroline Larboulette

Junio 2010

Agradecimientos
En primer lugar, agradezco la gran ayuda prestada por mi tutora Caroline, quin e 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. Tambin agradezco a Olivier su ayuda por todos los modelos que ha dise ado, y e n aportado, para utilizar en este trabajo de investigacin. o Por su ayuda en la resolucin de problemas matemticos, agradezco la ayuda al o a departamento de matemticas de la Universidad Rey Juan Carlos, y en especial a a Esther por su inters y dedicacin. e o 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 investigacin, a o permitindome solventar todos los baches que se han cruzado por mi camino, y e as poder llegar con xito a esta tan ansiada meta. e

ii

Agradecimientos

Resumen
Existen multitud de algoritmos enfocados a obtener mallas de pol gonos que permitan aproximar modelos denidos impl citamente. Sin embargo, ninguno de ellos est encaminado a la obtencin de mallas adecuadas para ser utilizadas en a o sistemas de animacin. o Como parte de un sistema de generacin automtica de personajes 3D para anio a macin desde imgenes bidimensionales, proponemos un algoritmo de poligonizacin o a o de supercies impl citas que permite obtener mallas de quads para deformacin en o animaciones, utilizando una restriccin de Delaunay para supercies 3D que hemos o adaptado para quads. Adems, los pol a 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

iv

Resumen

Indice general

Agradecimientos Resumen 1. Introduccin o 1.1. Descripcin del Problema o . . . . . . . . . . . . . . . . . . . . . . . .

III

1 1 1 2 3 3 6 6 7 8 9 9

1.1.1. Mallas de quads de personajes para animacin. . . . . . . . . o 1.1.2. Generacin automtica de personajes. . . . . . . . . . . . . . . o a 1.1.3. Trabajos relacionados. . . . . . . . . . . . . . . . . . . . . . . 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Desarrollo del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Etapas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 1.3.2. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . 1.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . 2. Estado del arte 2.1. Supercies impl citas . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1. Denicin matemtica . . . . . . . . . . . . . . . . . . . . . . 10 o a 2.1.2. Vectores Normales . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.3. Animacin de supercies impl o citas . . . . . . . . . . . . . . . 11 2.1.4. Visualizacin de supercies impl o citas . . . . . . . . . . . . . . 12 v

vi

INDICE GENERAL 2.2. Poligonizacin de supercies impl o citas . . . . . . . . . . . . . . . . . 12 2.2.1. Marching Cubes . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.2. Tcnicas de simulacin de part e o culas . . . . . . . . . . . . . . 15 2.2.3. Tcnicas de rastreo de supercie . . . . . . . . . . . . . . . . . 17 e 2.3. Marching Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.1. Marching Triangles adaptativo . . . . . . . . . . . . . . . . . . 22 2.3.2. Marching Triangles con restriccin para aristas . . . . . . . . . 24 o 2.3.3. Marching Triangles evitando generacin de cracks . . . . . . . 25 o 2.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3. Algoritmo de Marching Quads

29

3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 o 3.1.1. Estructura del algoritmo . . . . . . . . . . . . . . . . . . . . . 29 3.1.2. Problemas a resolver . . . . . . . . . . . . . . . . . . . . . . . 31 3.2. Poligonizacin de la supercie impl o cita: Marching Quads . . . . . . . 32 3.2.1. 3D Delaunay Surface Constraint aplicado a quads . . . . . . . 32 3.2.2. Creacin del nuevo quad candidato . . . . . . . . . . . . . . . 36 o 3.2.3. Alternativas de nuevos quads . . . . . . . . . . . . . . . . . . 39 3.2.4. Cracks debido a vrtices escogidos errneamente . . . . . . . . 43 e o 3.3. B squeda del punto ms cercano sobre la supercie impl u a cita . . . . . 45 3.3.1. Algoritmo de b squeda de punto cercano a la supercie . . . . 46 u 3.3.2. Formulacin matemtica de interseccin circunferencia-esfera . 47 o a o 3.4. B squeda del quad inicial . . . . . . . . . . . . . . . . . . . . . . . . 48 u 3.4.1. Algoritmo de b squeda de quad inicial . . . . . . . . . . . . . 49 u 3.4.2. Detalle de los pasos del algoritmo . . . . . . . . . . . . . . . . 49 3.4.3. Clculo de la distancia de proyeccin . . . . . . . . . . . . . . 50 a o

INDICE GENERAL

vii

3.5. Cierre de cracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.5.1. Introduccin al algoritmo de cierre de cracks . . . . . . . . . . 52 o 3.5.2. Aislamiento de un crack . . . . . . . . . . . . . . . . . . . . . 53 3.5.3. Cerramiento de un crack . . . . . . . . . . . . . . . . . . . . . 54 4. Mejoras en Marching Quads 61

4.1. Aceleracin del algoritmo Marching Quads . . . . . . . . . . . . . . . 61 o 4.1.1. Anlisis del problema . . . . . . . . . . . . . . . . . . . . . . . 61 a 4.1.2. Solucin al problema . . . . . . . . . . . . . . . . . . . . . . . 62 o 4.2. Crecimiento del algoritmo en base a la simetr del modelo . . . . . . 62 a 4.3. Marching Quads adaptativo a la curvatura del modelo . . . . . . . . . 63 4.3.1. Anlisis del problema . . . . . . . . . . . . . . . . . . . . . . . 63 a 4.3.2. Algoritmo adaptativo . . . . . . . . . . . . . . . . . . . . . . . 64 5. Resultados experimentales 67

5.1. Caracter sticas de Marching Quads . . . . . . . . . . . . . . . . . . . 68 5.1.1. Algoritmo bsico . . . . . . . . . . . . . . . . . . . . . . . . . 68 a 5.1.2. Mejora acelerativa del algoritmo . . . . . . . . . . . . . . . . . 70 5.1.3. Mejora de quads ajustados a la simetr del modelo . . . . . . 72 a 5.1.4. Mejora de quads adaptados a la curvatura de la supercie . . 74 5.2. Resultados en modelos impl citos complejos . . . . . . . . . . . . . . 77 6. Conclusiones y trabajos futuros 83

6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.1.1. Caracter sticas de Marching Quads . . . . . . . . . . . . . . . 83 6.1.2. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.1.3. Comparacin con otros algoritmos . . . . . . . . . . . . . . . . 87 o

viii

INDICE GENERAL 6.1.4. Otras aplicaciones del algoritmo . . . . . . . . . . . . . . . . . 90

6.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.2.1. Mejora adaptativa . . . . . . . . . . . . . . . . . . . . . . . . 90 6.2.2. Aceleracin por simetr . . . . . . . . . . . . . . . . . . . . . 92 o a 6.2.3. Mejora de orientacin de quads por simetr . . . . . . . . . . 93 o a 6.2.4. Mejora en la b squeda del punto cercano a la supercie . . . . 93 u 6.2.5. Remallado en zonas de mallas enfrentadas . . . . . . . . . . . 93 6.2.6. Remallado en zonas de cracks . . . . . . . . . . . . . . . . . . 94 Bibliograf a 98

Indice de guras
1.1. Animacin de mallas mediante esqueleto . . . . . . . . . . . . . . . . o 1.2. Sistema de generacin automtica de modelos . . . . . . . . . . . . . o a 1.3. Boceto 2D y modelo de malla poligonal . . . . . . . . . . . . . . . . . 2 3 4

2.1. Denicin matemtica de una esfera. . . . . . . . . . . . . . . . . . . 11 o a 2.2. Supercie impl cita basada en esqueleto. . . . . . . . . . . . . . . . . 11 2.3. Patrones de Marching Cubes . . . . . . . . . . . . . . . . . . . . . . . 16 2.4. Mejoras a Marching Cubes . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5. Algoritmo de Hartmann . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6. Algoritmo edge-spinning . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.7. Restriccin de supercie 3D de Delaunay. . . . . . . . . . . . . . . . . 20 o 2.8. Pasos del algoritmo Marching Triangles . . . . . . . . . . . . . . . . . 20 2.9. Buen tringulo que generar crack . . . . . . . . . . . . . . . . . . . . 23 a a 2.10. Problemas que presenta el algoritmo de Marching Triangles . . . . . . 23 2.11. Algoritmo de Edge-Constrained Marching Triangles . . . . . . . . . . 25 2.12. Mejora de Fournier al algoritmo Marching Triangles . . . . . . . . . . 25 2.13. Comparacin entre algoritmos de poligonizacin . . . . . . . . . . . . 28 o o 3.1. Restriccin de Delaunay aplicable a quads . . . . . . . . . . . . . . . 34 o 3.2. Restricciones para evitar malos quads. . . . . . . . . . . . . . . . . . 35 ix

INDICE DE FIGURAS 3.3. Proyeccin de puntos para quads. . . . . . . . . . . . . . . . . . . . . 37 o 3.4. Deteccin de vrtices cercanos . . . . . . . . . . . . . . . . . . . . . . 38 o e 3.5. Fallo en la proyeccin de un nuevo vrtice . . . . . . . . . . . . . . . 39 o e 3.6. Creacin de quad utilizando arista enfrentada . . . . . . . . . . . . . 40 o 3.7. Alternativas de construccin de quads en Marching Quads . . . . . . 42 o 3.8. Problema: quad que provoca fallo de restriccin en existente . . . . . 44 o 3.9. Problema: quad deformado en supercie muy curva . . . . . . . . . . 46 3.10. Generacin del quad inicial . . . . . . . . . . . . . . . . . . . . . . . . 51 o 3.11. Alternativas para cerrar un crack. . . . . . . . . . . . . . . . . . . . . 55 3.12. Solapamiento de quad con crack . . . . . . . . . . . . . . . . . . . . . 57 5.1. Marching Quads bsico sobre esfera . . . . . . . . . . . . . . . . . . . 69 a 5.2. Comparativa de variacin del factor de tama o de quad . . . . . . . . 69 o n 5.3. Cierre de Cracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.4. Poligonizacin del modelo de 5 esferas. . . . . . . . . . . . . . . . . . 72 o 5.5. Crecimiento de la malla ajustado a la simetr . . . . . . . . . . . . . 73 a 5.6. Resultado de mejora de simetr . . . . . . . . . . . . . . . . . . . . . 75 a 5.7. Comparacin para mejora adaptativa . . . . . . . . . . . . . . . . . . 76 o 5.8. P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.9. Poligonizacin del modelo de humanoide. . . . . . . . . . . . . . . . . 79 o 5.10. Poligonizacin del modelo de humanoide sentado. . . . . . . . . . . . 80 o 5.11. Poligonizacin del modelo de perro. . . . . . . . . . . . . . . . . . . . 81 o 6.1. Problema de poligonizacin no adaptativa en modelos complejos . . . 85 o 6.2. Recorte del algoritmo adaptativo debido a estrechez del modelo. . . . 88 6.3. Modelo de perro recortado por el algoritmo adaptativo. . . . . . . . . 89 6.4. Solucin a la limitacin del algoritmo adaptativo. . . . . . . . . . . . 92 o o

Cap tulo 1 Introduccin o


1.1.
1.1.1.

Descripcin del Problema o


Mallas de quads de personajes para animacin. o

En el mundo de la animacin por computadora, se encuentra ampliamente exo tendido el uso de modelos de mallas poligonales, las cuales estn formadas por un a conjunto de pol gonos en el espacio 3D. La unin de todos estos pol o gonos por medio de sus aristas, permite representar la supercie del modelo. En animacin de personajes, a la malla poligonal se la denomina piel, ya que se o corresponde con la parte exterior y visible del modelo al que representa. Sin embargo, para poder animar fcilmente el personaje, se utiliza un conjunto de elementos a estructurales internos a la piel del modelo el cual, por analog con los elementos a estructurales de animales y humanos, se denomina esqueleto del modelo. Un modelo de malla poligonal con esqueleto utiliza tcnicas de skinning para e 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 animacin, automticamente se encarga de deformar la malla poligonal acorde o a a las poses que dene el artista. La gura 1.1 muestra tres poses distintas de un esqueleto formado por tres huesos, y la deformacin de la piel correspondiente. o En sistemas de visualizacin en tiempo real como los videojuegos, los elementos o de las mallas suelen ser pol gonos triangulares. Dada la caracter stica coplanar del tringulo, y por ser el pol a gono ms simple, el renderizado de estas mallas es muy a 1

Cap tulo 1. Introduccin o

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 e toda la malla se mueva conjuntamente. (c) Malla unida a ambos huesos de forma ponderada. El movimiento del esqueleto provoca una deformacin suave en la malla. o (d) Malla unida totalmente al hueso izquierdo. El movimiento del hueso derecho provoca que la malla no sea alterada. rpido. Sin embargo, las mallas de quads obtienen mejores resultados cuando se desea a subdividir o deformar una malla. Debido a que la animacin se basa en continuas o deformaciones del modelo, estos pol gonos de cuatro vrtices son ms adecuados e a para mallas orientadas a este propsito. o Para obtener modelos poligonales, existen multitud de herramientas CAD (Dise o Asistido por Computador), tales como Autodesk Maya [May10], Autodesk 3D n 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 n 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.

1.1.2.

Generacin automtica de personajes. o a

Debido a que un dibujante tradicional de personajes suele no tener conocimientos sobre herramientas CAD, ser ideal un proceso automtico que obtuviera modelos a a 3D orientados a su uso para animacin, a partir de bocetos del personaje dise ados o n en 2D por el artista. Adicionalmente, para poder utilizar la malla obtenida en animaciones, el sistema deber generar automticamente una estructura esqueltica a a e adaptada al modelo.

1.2. OBJETIVOS

Otra caracter stica interesante para el artista 2D ser la de permitirle generar a poses del modelo 3D, dibujando stas en 2D. Un proceso automtico ser el ene a a cargado de detectar el posicionamiento de la estructura esqueltica para mover el e esqueleto de la malla de manera acorde al dibujo. La motivacin para la investigacin de este trabajo, es la de crear una herrao o mienta que permita automatizar la obtencin de un modelo poligonal con estructura o esqueltica, y para su uso en animacin, a partir de imgenes bidimensionales que e o a dena el modelo 3D por medio de varias vistas ortogonales.

1.1.3.

Trabajos relacionados.

Actualmente, se est desarrollando un sistema similar que permite generar moa delos 3D desde siluetas dibujadas en diferentes vistas 2D utilizando geometr solida a constructiva [RDI10a, RDI10b]. La gura 1.2 muestra un modelo de avin dibujado o en vista frontal y lateral que es convertido en un modelo tridimensional. El sistema que nosotros deseamos est orientado no a objetos estticos, sino en a a modelos de caracteres que permitan ser animados.

Figura 1.2: Sistema de generacin automtica de modelos a partir de siluetas dibuo a jadas en 2D desarrollado en [RDI10a, RDI10b]. Un modelo de avin dibujado en o vista frontal y lateral (izquierda) es convertido en un modelo 3D (derecha).

1.2.

Objetivos

Se desea desarrollar un sistema que permita obtener mallas poligonales orientadas a la animacin de personajes, a partir de una denicin del modelo dada por varias o o imgenes bidimensionales correspondientes a vistas ortogonales (superior, lateral, a frontal, . . . ).

Cap tulo 1. Introduccin o

El resultado nal del sistema que se desea dise ar ha de ser una malla de pol n gonos cuadrangulares, conteniendo un sistema esqueltico asociado para poder animar e el modelo. Adems, cualquier caracter a stica que pueda ser a adida al modelo resuln tante para mejorar su uso para animaciones, deber ser contemplada en la investia gacin. o La gura 1.3 muestra un modelo denido en 2D en sus vistas frontal y superior. La parte derecha de la imagen muestra el mismo modelo denido tridimensionalmente como una malla poligonal de quads, la cual ha sido dise ada a mano con n la herramienta Autodesk Maya [May10]. Lo que se pretende es conseguir que este proceso de generacin de la malla poligonal se realice de manera automtica, sin o a 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 n mover la estructura esqueltica del modelo 3D obtenido en el sistema anteriormente e descrito, a partir de poses representadas en dibujos bidimensionales. El sistema que se desea desarrollar, dada su complejidad, est dividido en cuatro a bloques ms simples: a Obtencin de un modelo impl o cito: Desarrollar una tcnica que permita e detectar las siluetas de las imgenes bidimensionales, fusionarlas y obtener un a volumen tridimensional denido de forma impl cita.

1.2. OBJETIVOS

Poligonizacin del modelo impl o cito: Debido a que el modelo resultante es deseable que est denido de forma expl e cita mediante una supercie poligonal, se necesita desarrollar un algoritmo que permita pasar del volumen especicado de forma impl cita a una supercie de pol gonos, preferiblemente quads. Esqueletizacin de la malla: De las imgenes 2D se pueden obtener l o a neas centrales en el modelo como l neas esquelticas del mismo. Fusionando estos e 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 tcnica que permita detectar las e e uniones entre huesos, observando aquellas zonas del volumen impl cito donde hay cambios. Denicin de poses: Se pretende hacer una coincidencia entre las estructuo ras esquelticas de bocetos 2D con el esqueleto tridimensional. De esta forma, e se podr hacer una traduccin automtica de una pose en el modelo bidimena o a sional a la pose correspondiente en el modelo 3D. Este documento presenta una tcnica dise ada para resolver el problema plane n teado en el segundo bloque. Se propone un algoritmo que permite obtener una malla poligonal de quads que aproxime la supercie del modelo denido de forma impl cita mediante un conjunto de esferas. Los objetivos iniciales a alcanzar en esta investigacin sobre poligonizacin de o o supercies impl citas eran: Investigacin, estudio y anlisis sobre supercies impl o a citas y algoritmos de poligonizacin de las mismas. Esta tarea inicial permitir conocer como se o a encuentra el estado del arte en esta rea de conocimiento y, mediante un a anlisis, poder recopilar la informacin necesaria que permita el dise o del a o n 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.

Cap tulo 1. Introduccin o

Basndose en que los personajes suelen tener una cierta simetr se deseaba a a, investigar alternativas del poligonizador que obtenga mallas adaptadas a la simetr del modelo. a Ser util un equilibrado de los parmetros del programa que permita obtener, a a en tiempo razonable, mallas con un n mero de pol u gonos adecuado. Cualquier parmetro que inuya en la calidad nal de la malla tambin deber de ser a e a analizado. Al igual que en los modelos generados mediante herramientas CAD, el tama o n de los pol gonos deber ser variable en funcin de la curvatura del modelo. a o

1.3.
1.3.1.

Desarrollo del proyecto


Etapas de desarrollo

La investigacin desarrollada, la cual se presenta en este documento, ha consiso tido de varias etapas: 1. En primer lugar se ha realizado una recopilacin de informacin en el campo o o de los modelos impl citos, y de poligonizaciones de stos. El estudio y anlisis e a de esta informacin, permiti escoger el algoritmo de poligonizacin ms cono o o a veniente para el sistema general de creacin automtica de personajes 3D. En o a concreto, el algoritmo escogido como punto de partida de este trabajo, ha sido el de Marching Triangles. 2. A continuacin se pas a una fase en la que se implement Marching Triano o o gles para poder analizar su funcionamiento, e investigar cmo adaptarlo para o alcanzar los objetivos marcados. 3. El siguiente paso fue el de dise ar las estructuras de datos del programa. Para n poder comunicar la fase de deteccin de imgenes 2D con el poligonizador, o a se dise un formato de chero para denir las supercies impl no citas que son entrada de datos del poligonizador. Luego, se dise una estructura de datos no para las supercies impl citas y otra para mallas de Quads, estructuras que

1.3. DESARROLLO DEL PROYECTO

durante el desarrollo del proyecto han ido evolucionando para adaptarse a nuevos requerimientos y modicaciones. 4. La siguiente etapa, el grueso de este proyecto de investigacin, ha consistido en o la implementacin del poligonizador Marching Quads. Primero se ha dise ado o n un algoritmo bsico, y a continuacin se le han a adido varias mejoras que se a o n presentarn en este documento. a 5. Una bater de pruebas nales ha permitido validar el algoritmo y obtener a unas conclusiones de la investigacin. Tambin ha posibilitado la deteccin o e o de problemas y excepciones que abren una v de posibles mejoras futuras, a documentadas en el cap tulo 6. La metodolog que se ha seguido, en concreto para los pasos 3 y 4 de las fases a anteriores, ha sido evolutiva e incremental. Se parti de un dise o del algoritmo o n bsico y, en base al anlisis de resultados y a los nuevos requerimientos a a adir, a a n el algoritmo ha evolucionado hasta alcanzar la versin nal que se presenta en este o documento. Debido al carcter investigativo del proyecto, se ha utilizado un mtodo de prueba a e y error. Este mtodo consiste en formular hiptesis para resolver una tarea, probar la e o idea y, en funcin del anlisis de los resultados, validar la hiptesis. Como resultado o a o del anlisis, nuevas ideas pueden surgir que permiten evolucionar el sistema. a

1.3.2.

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 versin 9.10 Karmic Koala [Ubu10]. El cdigo hace uso de la librer QGLVieo o a wer versin 2.3.5 [QGL10] para el manejo de puntos, vectores y cuaterniones, stos o e ultimos usados para rotaciones de vectores. Con la nalidad de visualizar los modelos impl citos iniciales y las mallas poligonales resultantes, se ha desarrollado un visor basado en las librer grcas OpenGL as a versin 4 [Ope10]. Este visor ofrece adems un entorno de pruebas y desarrollo del o a algoritmo. Tambin se ha manejado el visor interactivo de escenarios 3D GeomView e

8 en su versin 1.9.4 [Geo10]. o

Cap tulo 1. Introduccin o

Esta documentacin del proyecto ha sido redactada y compilada con la herrao


A mienta para procesado de textos L TEX, utilizando el conjunto de herramientas Mik-

Tex versin 2.8 [Mik10] para el sistema operativo Windows XP SP 3. Se ha utilizado o el entorno de desarrollo eclipse versin Galileo [ecl10] utilizando el plugin Texlipse o versin 1.4 [tex10]. o

1.4.

Estructura del documento

En el siguiente cap tulo, se abordar el estado del arte relacionado a este trabajo a de investigacin. Dicho cap o tulo se encuentra dividido en tres partes: supercies impl citas, algoritmos de poligonizacin de supercies impl o citas, y una ultima parte donde se detallarn los trabajos enfocados al algoritmo de poligonizacin Marching a o 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 investigacin. Este algoritmo est seccionado en cuatro partes que o a sern analizadas por separado. a A continuacin, el cap o tulo 4 muestra tres mejoras que se han dise ado e implen mentado para el algoritmo bsico. Primero se comentar una mejora de aceleracin a a o computacional del algoritmo, a continuacin se hablar sobre una tcnica que pero a e mite obtener una malla basada en la simetr del modelo impl a cito, y nalmente se detallar una mejora para adaptar el tama o de los pol a n gonos a la curvatura del modelo. El cap tulo 5, exhibe los resultados obtenidos por esta nueva tcnica que se e presenta. Y un ultimo cap tulo 6 expone las conclusiones que se han analizado de los resultados generados. Adems, este ultimo cap a tulo ofrecer una serie de lineas de a investigacin futuras para mejorar el algoritmo, basadas en las carencias observadas o durante la interpretacin de los resultados. o

Cap tulo 2 Estado del arte


El trabajo que se propone en este documento se trata de un algoritmo de poligonizacin de supercies impl o citas. Por ello, en este cap tulo se har un recorrido por a varios trabajos enfocados en este campo. En primer lugar se ver una introduccin a a o las supercies impl citas. En una segunda seccin, se abordarn varias tcnicas exiso a e tentes para convertir supercies impl citas en mallas poligonales, y se terminar el a cap tulo detallando el algoritmo de poligonizacin de supercies impl o citas Marching Triangles, en el cual est basada la tcnica que proponemos. a e

2.1.

Supercies impl citas

Bloomenthal et al. realizaron un estudio bastante detallado y amplio sobre supercies impl citas [BcBB+ 97]. Para ellos, una supercie impl cita es una supercie denida en el espacio 3D de forma matemtica, mediante una funcin denominada a o funcin impl o cita o potencial. El volumen del modelo impl cito se da para puntos cutos valores de funcin o potencial son inferiores a un valor umbral d. Valores de funcin que igualan al valor o umbral se corresponden con puntos de la supercie del modelo, y valores superiores se corresponden con puntos externos al modelo. Generalmente se suele utilizar d = 0 como valor umbral. 9

10

Cap tulo 2. Estado del arte

2.1.1.

Denicin matemtica o a

El punto P (x, y, z) pertenece a la supercie impl cita si f (x, y, z) = 0, siendo f la funcin impl o cita. La forma ms simple de supercie impl a cita en 3D es la esfera, cuya funcin o matemtica es f (x, y, z) = (x a)2 + (y b)2 + (z c)2 r 2 , donde C(a, b, c) es a 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 ecuacin anterior, pertenecen a puntos de la o supercie de la esfera. Si el valor de la funcin fuera positivo, entonces el punto se o localizar fuera de la esfera, y en el caso contrario, que resulte un valor negativo, el a punto pertenecer al espacio interior de la misma. Normalmente, como es en el caso a anterior, el valor de la funcin impl o cita se corresponde con una medida de distancia entre el punto y la supercie impl cita.

2.1.2.

Vectores Normales

Condicin necesaria para poder denir vectores normales a la supercie, la funo cin impl o 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 , f ) x y z sobre las coordenadas del punto. f =

Por ejemplo, supongamos el caso de una esfera de radio unidad y centrada en el origen, cuya funcin es f (x, y, z) = x2 + y 2 + z 2 1. El vector normal de la esfera, o se corresponde con f = ( f , f , f ) = (2x, 2y, 2z). La gura 2.1 muestra puntos x y z localizados en el plano XY (z = 0), y sobre la supercie impl cita de esta esfera de ejemplo, y los vectores normales asociados a cada punto. Para funciones no derivables, una aproximacin puede ser calculada utilizando o mtodos de clculo numrico. Sin embargo, para un punto cuyo vector normal no e a e 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 u puntos singulares.

2.1. SUPERFICIES IMPL ICITAS

11

N (- 2 , 2 , 0) n (- 2 /2, 2 /2, 0)

N (0, 2, 0) n (0, 1, 0)

P (0, 1, 0)

P (- 2 /2, 2 /2, 0) N (-2, 0, 0) n (-1, 0, 0) P (-1, 0, 0)

Figura 2.1: (P) Puntos sobre la supercie impl cita x2 + y 2 + z 2 = 1, (N) normal y (n) vector normal unitario.

Figura 2.2: (a) Esqueleto impl cito. (b) Supercie impl cita que genera el esqueleto. (c) Prototipo para obtener una rpida via sualizacin (imagen obtenida de [BW90]). o

2.1.3.

Animacin de supercies impl o citas

Una supercie impl cita puede denirse mediante esqueletos. Los esqueletos pueden estar formados por puntos, segmentos, o incluso poliedros. Una distancia denida para cada elemento del esqueleto, permite obtener los puntos pertenecientes a la supercie impl cita. El ejemplo (a) de la gura 2.2 muestra un esqueleto formado por segmentos, y el caso (b) muestra la supercie impl cita que genera dicho esqueleto. El esqueleto ms bsico es el punto, el cual dene una esfera centrada en dicho a a punto, y con un radio igual a la distancia denida. Una coleccin de puntos, con una o distancia asociada a cada uno, genera una supercie impl cita como unin de todas o estas esferas. Este trabajo utiliza este tipo de denicin de supercies impl o citas basado en un conjunto de primitivas esfricas. e El movimiento de los esqueletos impl citos implica cambios en la supercie impl cita. De esta manera, se pueden fcilmente animar modelos impl a citos al deformarse la supercie por medio de elementos estructurales. [Par02] contiene un apartado donde se habla sobre la animacin de supercies impl o citas, mtodos de deteccin e o de colisiones mediante aproximaciones a mallas poligonales, e incluso de un mtodo e para deformar la supercie como respuesta a colisiones.

12

Cap tulo 2. Estado del arte

Aun as las mallas poligonales siguen siendo el tipo de modelos ms extendido , a en animaciones. Es por ello que se necesitan algoritmos, como el que se presenta en este trabajo, que permitan convertir una supercie impl cita en un modelo poligonal que aproxime al modelo.

2.1.4.

Visualizacin de supercies impl o citas

La visualizacin de supercies impl o citas puede realizarse fcilmente utilizando a traza de rayos, mediante la b squeda de puntos del espacio donde los rayos cou lisionan con la supercie impl cita del modelo, resolviendo de forma matemtica. a Sin embargo, este mtodo es lento, dicultando tareas que necesitan un tiempo de e visualizado interactivo como el modelado de supercies impl citas. Existen otros mtodos enfocados a obtener prototipos de la supercie impl e cita rpidamente, tales como la rasterizacin, deteccin de contornos o muestreos [BW90, a o o DTG96, WH94]. Sin embargo, estos mtodos no obtienen buenas visualizaciones ya e que estn enfocados a obtener una visualizacin muy rpida. El ejemplo (c) de la a o a gura 2.2 muestra una visualizacin por prototipo mediante muestras discretas sobre o la supercie impl cita. Una alternativa ms rpida que la traza de rayos para el visualizado es la de a a obtener una aproximacin del modelo mediante una malla poligonal. En la siguiente o seccin se mostraran varias tcnicas enfocadas a obtener mallas de pol o e gonos que aproximen una supercie de un modelo denido impl citamente.

2.2.

Poligonizacin de supercies impl o citas

Tal y como se ha visto en la seccin anterior, los modelos denidos impl o citamente tienen muchas ventajas pero, en algunas ocasiones, es necesaria una versin del moo delo denida mediante una malla poligonal. Algunos motivos de porqu poligonizar e una supercie impl cita son: Para generar una buena visualizacin del modelo impl o 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

2.2. POLIGONIZACION DE SUPERFICIES IMPL ICITAS

13

impl cito basados en tcnicas de escultura [DC04, FCG01], las cuales necesitan e obtener buenas visualizaciones en tiempos interactivos. Para estos casos, es posible visualizar el modelo mediante una aproximacin de malla poligonal. o En ocasiones, es necesario trabajar con mtodos que necesiten discretizar una e supercie impl cita (mtodos nitos, deteccin de colisiones, . . . ). En estos cae o sos, la poligonizacin del modelo permite obtener un conjunto nito de puntos o sobre la supercie correspondindose a los vrtices de la malla. e e Es muy com n el uso de modelos poligonales en el mundo de la computacin u o grca, incluso algunos autores lo consideran como el estndar para reprea a sentar supercies geomtricas, y la mayor de sistemas grcos (videojuegos, e a a aplicaciones mdicas, sistemas de simulacin, . . . ) tratan con este tipo de moe o delos. 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 automtico que genera este tipo de supercies. En estos casos, se requiere una a poligonizacin del modelo. o

En nuestro sistema de creacin automtica de personajes 3D, la tcnica que o a e permite obtener un modelo tridimensional a partir de la denicin bidimensional o obtiene una denicin del mismo de forma impl o cita, mediante una coleccin de o primitivas esfricas. Por ello, se hace necesaria una fase que permita poligonizar la e supercie para su uso en sistemas de animacin. o En general, las tcnicas de poligonizacin de supercies impl e o citas se pueden dividir en tres grupos distintos. Muestreo espacial: Son tcnicas que dividen el espacio para localizar puntos e sobre la supercie 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 supercie: Estas tcnicas parten de una malla poligonal inicial o e muestras iniciales, y tratan posteriormente de ajustar los vrtices o muestras a e la supercie. Este ajuste suele realizarse mediante una simulacin de part o culas que permite a las muestras converger hacia la supercie hasta llegar a un

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 supercie: Estas tcnicas comienzan a partir de pol e 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 n gonos mientras se recorre la supercie impl cita, hasta que se consigue cerrar la malla.

2.2.1.

Marching Cubes

Una de las tcnicas de poligonizacin de supercies impl e o citas ms inuyentes ha a sido la de Marching Cubes [LC87]. La tcnica surgi por la necesidad de visualizar e o modelos 3D denidos mediante una coleccin de imgenes mdicas obtenidas por o a e escneres (resonancias magnticas, tomograf . . . ). Esta visualizacin permitir a e as, o a analizar ms fcilmente a un especialista mdico las imgenes que se obtienen de los a a e a escneres. a El sistema se compone de dos fases: una primera tcnica permite la fusin de e o imgenes en un modelo denido impl a citamente, y una segunda donde se utiliza el algoritmo de Marching Cubes para generar la malla de tringulos que un sistema a de visualizacin puede manejar para permitir al mdico interactuar con el modelo. o e Este sistema, en esencia es similar al de creacin de personajes 3D, pues consta de o una fase que permite fusionar imgenes 2D y de otra que permite obtener la malla a de pol gonos. El algoritmo de poligonizacin Marching Cubes descompone el espacio en cubos o de igual tama o, evalundose en los vrtices de los mismos la funcin impl n a e o cita. A continuacin se detectan aquellos cubos que han evaluado con signo contrario o alguno de los vrtices. Cmo los puntos que eval an a cero pertenecen a la supercie e o u impl cita, estos cubos son los que cortan a la supercie impl cita. Un cubo tiene 8 vrtices que pueden tener dos estados diferentes, dentro o fuera e de la supercie, por lo que existen 28 = 256 maneras distintas en las que la supercie impl cita puede cortar un cubo. Por simetr este conjunto de patrones puede ser a, reducido a 14 (ver gura 2.3). Utilizando estos patrones, la supercie poligonal se

2.2. POLIGONIZACION DE SUPERFICIES IMPL ICITAS obtiene interpolando en las aristas de todos los cubos del espacio.

15

Para nalizar el modelo se generan las normales mediante interpolacin de las o normales de los vrtices de los cubos, y se realiza un mapeo de texturas a partir de e las imgenes mdicas. a e Esta tcnica sufre de varios inconvenientes. Uno de ellos es la ambig edad que e u surge en algunos casos, debido a que un cubo puede corresponderse con varios patrones. Enfocados a este problema existen diversas tcnicas que lo resuelven, y una e de ellas utiliza como poliedro de divisin espacial el tetraedro [MW97], el cual no o provoca ambig edades. u Otro inconveniente de Marching Cubes es la generacin de multitud de tringulos o a deformados (tringulos de forma alargada) debido al tama o constante de la para n ticin espacial, y los cuales deben de ser evitados. Para resolver este problema, en o [Blo88] Bloomenthal presenta una mejora adaptativa a la particin espacial utilizano do Octrees (ver ejemplo (a) de la gura 2.4). Esta tcnica descompone el espacio en e 8 cubos, y gradualmente va descomponiendo aquellos cubos que cortan la supercie impl cita hasta alcanzar un cierto tama o m n nimo para los cubos. Aunque todas estas tcnicas reproducen una buena aproximacin del modelo, e o son computacionalmente costosas. Adems, porque estas tcnicas no se centran en a e mantener buena topolog de la malla resultante, se obtienen multitud de tringulos a a algo deformados.

2.2.2.

Tcnicas de simulacin de part e o culas

Ya se vio en la seccin 2.1.4 cmo una supercie impl o o cita puede ser muestreada usando mtodos basados en f e sicas para su visualizacin. La misma idea se puede o utilizar para obtener una malla poligonal, tal y como se presenta en [dFdMGTV92]. Este trabajo muestra dos formas de realizar la simulacin f o sica. La primera es utilizar un sistema de part culas dinmico, simulado mediante el campo de fuerza a que genera el gradiente del modelo. Cuando la simulacin llega a un equilibrio, o debido a que las part culas buscan minimizar la energ potencial, stas se localizan a e sobre la supercie impl cita. Adems, las part a culas se encuentran distanciadas de forma uniforme y adaptadas a la curvatura de la supercie. Para obtener la malla

16

Cap tulo 2. Estado del arte

Figura 2.3: Diferentes patrones en los que un cubo puede cortar a la supercie impl cita (imagen extra de [LC87]). da

Figura 2.4: (a) Mejora adaptativa a Marching Cubes utilizando un Octree. (b) Tcnica de rastreo de supercie mediane te cubos (imgenes extra a das de [Blo88]).

poligonal, la nube de part culas resultantes se triangula mediante el algoritmo de Delaunay [Del34]. La otra simulacin f o sica que presentan, se realiza mediante un sistema de masamuelle. Este sistema comienza con una triangulacin espacial, cuyos pol o gonos se encuentran conectados por muelles. Utilizando el gradiente como fuerza de deformacin, la malla inicial tiende hacia la supercie, a la vez que los muelles permiten o distanciar a los vrtices de forma uniforme. e Aunque estas tcnicas obtienen buenos resultados, es necesario que la supercie e impl cita requiera de un campo de fuerzas para poder realizar la simulacin. Debido o a que el clculo del gradiente es una tarea compleja en los modelos impl a 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 simulacin fueron o descartados en esta investigacin. o

2.2. POLIGONIZACION DE SUPERFICIES IMPL ICITAS

17

2.2.3.

Tcnicas de rastreo de supercie e

Estas tcnicas comienzan desde un pol e gono inicial, localizado sobre la supercie impl cita, e iterativamente van a adiendo pol n gonos a la frontera de la malla hasta lograr cerrarla. La construccin de los nuevos pol o gonos son obligados a ajustarse a la supercie impl cita para ir recorriendo la supercie del modelo. Bloomenthal present una tcnica de poligonizacin basado en rastreo de supero e o cie [Blo88] (ver ejemplo (b) de la gura 2.4). Su propuesta parte de un cubo semilla sobre la supercie impl cita, e iterativamente va recorriendo la supercie mediante la construccin de ms cubos. Utilizando los patrones de Marching Cubes en cada o a cubo, se va generando la malla poligonal. Sin embargo, esta tcnica genera tringulos e a algo deformados al igual que Marching Cubes. Otra tcnica de rastreo de supercies es la propuesta por Hartmann [Har98], la e cual se descompone de varios pasos. En el primero de ellos, se localiza un punto sobre la supercie y se crea un hexgono centrado en dicho punto, y se localizan los a puntos ms cercanos sobre la supercie para cada uno de los vrtices del hexgono. a e a De este modo se obtienen los seis primeros tringulos de la malla. a De forma iterativa, el algoritmo intenta crear nuevos hexgonos desde los vrtices a e que bordean de la malla, priorizando el orden de procesamiento en base al ngulo a de los vrtices en la zona exterior de la malla. A partir del vrtice escogido se genera e e un nuevo hexgono detectando aquellos vrtices cercanos (ver gura 2.5). a e Otra tcnica de recorrido de supercie es Edge Spinning [CS04]. Al igual que las e anteriores, se parte de un tringulo inicial localizado sobre la supercie impl a cita, y de forma iterativa se anexan nuevos tringulos para completar la malla. Para ello, se a buscan nuevos vrtices sobre la supercie impl e cita que permitan formar un nuevo pol gono desde una arista del borde de la malla. La b squeda del nuevo vrtice se realiza proyectando un punto a una cierta u e distancia desde la arista frontera en el plano de su tringulo, y sobre un c a rculo centrado en la arista que permita garantizar que el nuevo pol gono no es deformado. Computando la funcin impl o cita y el gradiente, se rota el punto proyectado de manera iterativa hasta encontrar un punto que descanse sobre la supercie impl cita (ver gura 2.6).

18

Cap tulo 2. Estado del arte

Este algoritmo permite validar los tringulos que se crean computando el ngulo a a que forman con las aristas vecinas. Los tres casos posibles de construccin del nuevo o tringulo son: construccin directa, construccin utilizando alguna de las aristas a o o vecinas o, en caso de arista vecina corta, proceder a una reparacin de la malla. o La tcnica, controla que los nuevos vrtices que se crean no se encuentren cerca de e e la frontera de la malla. En estos casos se fusionan ambas fronteras, o bien fusionando el nuevo vrtice con el cercano encontrado, o bien fusionando el vrtice cercano al e e nuevo.

Figura 2.5: Hexgono que permite poligoa nizar parte de la supercie impl cita en el algoritmo de Hartmann (imagen extra da de [Har98]).

Figura 2.6: Principio de construccin o de un nuevo tringulo por el algorita mo de edge-spinning (imagen extra de da [CS04]).

Otra tcnica de poligonizacin de supercies por rastreo de supercie es la dee o nominada Marching Triangles [HSIW96a, HSIW96b], muy similar a al algoritmo anterior aunque restringiendo la creacin de los nuevos tringulos a un test de too a polog basado en la triangulacin de Delaunay [Del34]. a o En nuestro sistema de creacin automtica de personajes 3D, la calidad de la o a malla poligonal es ms prioritaria que la rapidez de computacin de la misma. El a o motivo es la nalidad del modelo para su uso en animaciones que requieren una buena estructura topolgica de la malla, sin necesidad de obtencin de la ella en o o tiempos interactivos. De los algoritmos anteriores, el algoritmo de Marching Triangles es quizs el a que mejor calidad de malla obtiene, ya que basa la construccin de los pol o gonos en una restriccin topolgica. Adems, este algoritmo es uno de los ms aceptados o o a a actualmente para poligonizar supercies impl citas, existiendo una amplia variedad

2.3. MARCHING TRIANGLES de trabajos encaminados a mejorarlo [HIIT97, AG01, MF02, Fou09].

19

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 seccin se o detallar este algoritmo junto a los trabajos relacionados. a

2.3.

Marching Triangles

El algoritmo de Marching Triangles, presentado por Hilton et l. [HSIW96a], a es una tcnica de poligonizacin de supercies impl e o citas basado en el rastreo de supercie, la cual fue dise ada para poligonizar supercies extra n das como fusin de o un rango de imgenes [HSIW96b]. a Es algoritmo parte de un tringulo semilla localizado sobre la supercie impl a cita, e iterativamente a ade nuevos tringulos desde las aristas que bordean la malla n a hasta que se completa la malla. Para preservar una correcta topolog de la malla, a un nuevo tringulo solamente puede ser anexado a la malla si pasa la restriccin a o de supercie 3D de Delaunay, la cual permite validar que el pol gono mantiene una buena estructura de malla. La restriccin de Delaunay para supercies 3D aprueba la anexin de un nueo o vo tringulo Tnew a la frontera de la malla, si alguna parte de sta con la misma a e orientacin que Tnew , no se encuentra dentro de la circumesfera del tringulo Tnew , o a siendo sta la esfera que pasa por los tres vrtices de dicho tringulo. Esta restriccin e e a o est basada en el algoritmo de Delaunay para triangular una nube de puntos, pero a extendida para supercies triangulares en el espacio 3D. En la gura 2.7 se muestra un ejemplo de tringulo, y su esfera circunscrita que a hace de restriccin. Esta esfera est situada en el circumcentro Ct del tringulo y pasa o a a por los tres vrtices del mismo. En caso de que alguna parte de la malla estuviese e dentro de la esfera, entonces el algoritmo descarta la construccin del tringulo. o a 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 tringulo a a partir de ella. Por cada iteracin del algoritmo, donde se computa una de las aristas o frontera de la lista ebound = e(xi , xj ), los pasos que realiza el algoritmo son:

20

Cap tulo 2. Estado del arte

Figura 2.7: Restriccin de supercie o 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 tcnico posn e terior (Imagen extra de [HIIT97]). da

1. Estimacin del nuevo vrtice del tringulo localizando un punto aproximado o e a xproj al proyectar una distancia constante lproj desde el punto medio de la arista, y en el plano del tringulo frontera Tbound (xj , xi , xk ). a 2. Se busca el punto xnew sobre la supercie impl cita ms cercano a xproj . a 3. Se descarta esta arista (termina este paso de iteracin) si la orientacin de o o la supercie impl cita en xnew , dada por su normal nnew , es opuesta a la del modelo nT (normal del nuevo tringulo Tnew (xi , xj , xnew )): nT nnew < 0. Este a paso asegura que el nuevo vrtice no se corresponde con una zona errnea del e o modelo, sino a la geometr local del objeto. a 4. Se aplica la restriccin de Delaunay en 3D al nuevo tringulo Tnew = T (xi , xj , xnew ). o a 5. Si Tnew pasa la restriccin, entonces se a ade Tnew , xnew y las aristas e(xj , xnew ) o n y e(xnew , xi ) a la malla actual. Estas aristas nuevas adems son a adidas a la a n lista de aristas frontera para ser computadas en una iteracin del algoritmo o posterior, y as permitir a la malla crecer. 6. En el caso de que la restriccin falle, se repiten los dos pasos anteriores 4 y 5 utio lizando los vrtices frontera adyacentes: el vrtice vecino previo Tprev (xi , xj , xprev ) e e

2.3. MARCHING TRIANGLES

21

y el vrtice vecino siguiente Tnext (xi , xj , xnext ). Este paso intenta crear tringue a los que conecten vrtices de la malla que permitan cerrar zonas de la malla. e 7. Si en los tres intentos de creacin de un tringulo falla la restriccin (de forma o a o directa, usando arista anterior y usando arista posterior), entonces la arista ebound es descartada sin producir un nuevo tringulo para la malla. a El algoritmo de Marching Triangles, por estar basado en triangulaciones de Delaunay, genera mallas topolgicamente correctas (tringulos que tienden a la equio a lateralidad), y es computacionalmente ms rpido que el anterior algoritmo de refea a rencia ms extendido, el de Marching Cubes. a Sin embargo, este nuevo algoritmo genera cracks en zonas de la malla donde las fronteras se encuentran enfrentadas, ya que la restriccin impide cerrar la zona. o Por este motivo, los mismos autores proponen una solucin a este problema en un o reporte tcnico posterior [HIIT97]. e La solucin que aportan es la de a adir un paso ms al algoritmo de intento de o n a construccin del nuevo tringulo. Este paso trata de crear el nuevo tringulo utilizano a a do un vrtice solapado. Para ello, se busca si hay alg n tringulo Toverlap de la malla e u a que se encuentre dentro de la esfera de Delaunay del tringulo Tnew (xi , xj , xnew ), a ambos con misma orientacin. En este caso, se aplican los pasos 4 y 5 del algoritmo o para testear la restriccin de Delaunay al tringulo T (xi , xj , xoverlap ) donde xoverlap o a es el vrtice ms cercano del tringulo solapado Toverlap . e a a En la gura 2.8 se muestran ejemplos de cuatro de los pasos ms importantes del a algoritmo de Marching Triangles, donde la arista que se est computando se corresa ponde con ebound = e(xi , xj ), que pertenece al tringulo frontera Tbound (xj , xi , xk ). a El ejemplo (a) est asociado al paso 1 del algoritmo, el cual estima el nuevo vrtice a e del tringulo a travs de una distancia constante de proyeccin. El ejemplo (b) se a e o corresponde con el paso 4 del algoritmo donde se testea la restriccin de Delaunay o para el tringulo que usa el nuevo vrtice proyectado. En (c), correspondiente al paso a e 6, se muestra un tringulo creado usando la arista vecina siguiente, y la esfera para a chequear la restriccin. En el ejemplo (d) se muestra el paso a adido en el reporte o n tcnico para cerrar la malla. Ntese como el vrtice solapado es utilizado para crear e o e un tringulo que permite unir la parte superior e inferior de la malla, evitando una a

22 brecha en la zona.

Cap tulo 2. Estado del arte

2.3.1.

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 aparicin de cracks en la o malla, incluso utilizando la alternativa de solapamiento del reporte tcnico. Esto es e debido a que la restriccin de Delaunay solamente tiene en cuenta la topolog del o a nuevo tringulo con respecto a la malla actual, sin tener en cuenta futuros tringulos a a que podr haber tenido una mejor esfera de restriccin. an o En la gura 2.9 se est computando la arista e probando la restriccin de Delaua o nay para el tringulo T usando la esfera S. Esta restriccin valida la construccin del a o o nuevo tringulo, ya que no hay parte de la malla dentro de la esfera. Sin embargo, a el nuevo punto xp no satisface la restriccin para una existente arista frontera en el o tringulo T, ya que se encuentra dentro de su esfera de restriccin S. Por contra, a o ntese que si se hubiese procesado antes la arista de T en vez de la de T, el punto o xp podr haber quedado ms intermedio a ambas aristas evitando el crack. a a Conscientes de que cracks se producen en la malla, y de que stos son dif e 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 vrtices del crack sin crear nuevos, en base a que el tama o e n del crack no excede el tama o de un tringulo porque en caso contrario la restriccin n a o de Delaunay habr permitido la construccin de alguno. Este algoritmo tiene dos a o fases:

Particin del contorno: de forma iterativa se busca una arista del crack que o pueda ser unida a un vrtice del mismo, de forma que el tringulo resultante e a divida al crack en dos ms peque os. Esta divisin se realiza iterativamente en a n o cada uno de los cracks resultantes hasta que un m nimo de tama o de crack n es alcanzado, o el crack no puede ser partido en ms mitades. a

2.3. MARCHING TRIANGLES

23

Figura 2.9: Ejemplo de tringulo T que a pasa la restriccin de Delaunay, pero que o posiblemente generar un crack por no tea nerse en cuenta un tringulo T de la malla a existente (imagen extra de [AG01]). da

Figura 2.10: Tres problemas que presenta el algoritmo de Marching Triangles. (a) Tringulo que cruza otro existente debia do a una arista corta. (b) Tringulo que a no localiza la existencia de un vrtice cere cano. (c) Tringulo que solapa otro exisa tente (imagen extra de [MF02]). da

Mallado del contorno: se naliza rellenando los huecos existentes mediante tringulos. En este paso hay que diferenciar entre dos casos distintos: el de a huecos simples y el de emparejamiento de contornos enfrentados, el cual es ms a complejo. La dicultad de este ultimo 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 n tringulos de forma que su tama o se adapte la curvatura del modelo. Para ello se a n var la distancia de proyeccin en funcin a la curvatura de la supercie impl a o o cita donde el nuevo tringulo va a ser creado. Aunque se puede evaluar las hessianas de a la funcin campo para anticipar la curvatura de la arista a computar, ellos proponen o una alternativa ms rpida en tres pasos: a a Correccin geomtrica: se proyecta el punto medio xm de la arista a compuo e tar e sobre la supercie impl cita para obtener el punto xs . Computacin del punto de partida: siguiendo la direccin tangencial a o o la supercie t, se proyecta xs una distancia d =
3 ||e|| 2

para aproximar un

24

Cap tulo 2. Estado del arte

tringulo equiltero. La distancia e es la media entre las longitudes de la a a arista a computar y sus vecinas para mantener un tama o medio de tringulo. n a Adems se utiliza un l a mite m nimo de distancia para que, en regiones planas, no se creen tringulos demasiado peque os despus de haber atravesado una a n e regin de alta curvatura. o Computacin del vrtice sobre la supercie: mediante biseccin entre un o e o punto fuera de la supercie impl cita y otro interior, y utilizando el gradiente de la funcin impl o cita, se aproxima el punto obtenido en el paso anterior a la supercie impl cita.

En este mismo trabajo, ambos autores tambin proponen el uso de su algoritmo e como parte de una herramienta de modelado impl cito interactiva basado en esqueletos. Para ello, utilizan una tcnica incremental que permite eliminar tringulos de e a una zona de la malla donde la supercie impl cita ha sido modicada, 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, ajustndose los nuevos tringulos a la nueva supercie modelada. a a

2.3.2.

Marching Triangles con restriccin para aristas o

McCormick y Fisher desarrollaron una tcnica [MF02] orientada a mejorar las e 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 a la pared de un edicio), ya que estas aristas suelen ser recortadas por el algoritmo de Marching Triangles (ver ejemplo (a) de la gura 2.11). La tcnica que proponen los autores permite preservar las aristas que se encuene tran 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 continuacin, utilizan el algoritmo de Marching Triangles para generar o los pol gonos del modelo, restringiendo estos a las aristas de discontinuidades antes creadas (ver ejemplo (b) de la gura 2.11).

2.3. MARCHING TRIANGLES

25

Figura 2.11: (a) Detalle de esquina en un modelo recortada por Marching Triangles. (b) Deteccin de l o neas de dobleces por algoritmo Edge-Constrained Marching Triangles y aristas de pol gonos restringidas a la l nea de doblez (imgenes exa tra das de [MF02]).

Figura 2.12: (a) Modicacin de la esfera o de restriccin en el algoritmo de Fournier. o (b1 ) Malla resultante de computar la arista A antes que B y (b2 ) comparacin de o la malla al computar primero la arista B (imgenes extra a das de [Fou09]).

2.3.3.

Marching Triangles evitando generacin de cracks o

Existe un proyecto ms reciente de mejora del algoritmo Marching Triangles a desarrollado por Fournier [Fou09]. Este trabajo se enfoca en realizar la poligonizacin en una unica pasada, sin la necesidad de un proceso para cerrar cracks. Adems, o a introducen una adaptacin del algoritmo a un reciente modelo de denicin de suo o percies 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 gura 2.10 muestra uno de estos problemas, donde un tringulo muy estrecho es creado desde una arista muy corta. Adems, a a aunque este nuevo tringulo solapa otro ya existente en el modelo, el pol a gono no es descartado debido a que su esfera de restriccin de Delaunay no contiene alg n o u vrtice de la malla. e El caso (b) destapa otra deciencia del algoritmo original. En el ejemplo se crea un nuevo tringulo que aparentemente es bueno, pero que no tiene en cuenta que a tiene un vrtice cercano dejando un espacio libre muy estrecho. Esto provocar que e a en iteraciones ms avanzadas, o bien se cree un tringulo muy estrecho (deformado), a a

26 o bien se genere un crack en la zona.

Cap tulo 2. Estado del arte

El ultimo caso de la gura 2.10 presenta otro problema en la construccin de o tringulos. En esta ocasin, el vrtice proyectado intersecta un tringulo existente,y a o e a sin embargo la esfera de restriccin permite su construccin. Este caso es muy similar o o al visto en la gura 2.9, ya que se tiene solo en cuenta que el nuevo tringulo sea a topolgicamente bueno con respecto al resto de la malla, pero no tiene en cuenta o que el resto de la malla lo sea con el nuevo vrtice. e Las diferentes mejoras que plantean para el algoritmo, en su versin para campos o escalares, se resumen en: Mejora para la estimacin del nuevo vrtice: para adaptar el tringulo o e a a la curvatura, se proyecta un punto cierta distancia dependiente de la arista frontera, al igual que se propuso en [AG01]. A continuacin, localizando el o vxel ms cercano sobre la supercie impl o a cita, e interpolando a entre ste y e su vxel de signo opuesto (al otro lado de la supercie impl o cita), se obtiene el punto ms cercano sobre la supercie. a Mejora al test de Delaunay: debido a que la esfera de Delaunay es propensa a producir cracks en la malla, una nueva esfera es propuesta en este trabajo que relaja la restriccin, y que permite que ms tringulos sean aceptados. o a a Se utiliza una esfera ms peque a que pasa por el nuevo vrtice y el punto a n e medio de la arista a procesar, y por tanto centrada en el punto medio de ambos (ver ejemplo (a) de la gura 2.12). Porque esta nueva esfera no engloba todo el tringulo, es necesario un test adicional para comprobar que no hay a interseccin entre el nuevo tringulo y los existentes en la malla. o a Mejora a la construccin de tringulos por alternativas: como adicin o a o 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 vrtice e solapado), se propone cambio en el caso de encontrarse vrtices solapados. Si e el vrtice solapado produce un fallo en la restriccin de Delaunay, es posible e o que alg n otro vrtice solapado en la esfera pueda ser construido satisfactou e riamente. Por ello se hace necesaria la comprobacin no solamente del vrtice o e solapado ms cercano, sino de todos los vrtices solapados que se localicen. a e

2.4. CONCLUSIONES

27

Mejora al orden de procesamiento de aristas: seg n el orden de proceu sado 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 gura 2.12). El algoritmo original no contempla un orden especico, sino que utiliza una cola. Fournier prob diferentes alternativas y o lleg a la conclusin de que se obtiene mejores resultados, en cuanto a mio o nimizar el n mero de cracks en la malla se reere, utilizando un orden de u procesado siguiendo el contorno de la malla. Para ello se escogen las aristas siguiendo una direccin, por ejemplo hacia la arista vecina siguiente desde la o arista procesada.

2.4.

Conclusiones

La primera fase del sistema de creacin automtica de personajes 3D a partir o a de imgenes 2D es la encargada de traducir el modelo denido por las imgenes a a en un modelo volumtrico denido impl e citamente mediante un conjunto de esferas. Por este motivo, el poligonizador que se presenta en este trabajo ha tenido que ser adaptado a esta representacin del modelo impl o cito inicial. Aunque es sencillo detectar si un punto se encuentra interior, exterior o sobre la supercie impl cita denida por un conjunto de esferas, es ms complejo obtener el a campo de fuerzas interno al modelo mediante el clculo del gradiente. Es por este a motivo que algoritmos de poligonizacin basados en simulacin fueron descartados o o para este trabajo. El algoritmo de Marching Triangles, en base a la informacin recopilada, parece o ser el algoritmo de poligonizacin ms aceptado en la actualidad. El motivo de esta o a aceptacin es porque la tcnica, por estar basada en la restriccin de Delaunay, o e o est orientada a la obtencin de mallas topolgicamente buenas. Los casos (a) y (b) a o o de la gura 2.13 demuestran que la malla obtenida con Marching Triangles tiene una estructura de pol gonos bastante homognea con respecto a la malla que se obtiene e con el anterior algoritmo de poligonizacin de referencia de Marching Cubes, el cual o no atiende a la forma de los pol gonos que genera. Porque Marching Triangles es el algoritmo de referencia actual, y adems existen a

28

Cap tulo 2. Estado del arte

Figura 2.13: Malla obtenida con diferentes algoritmos de poligonizacin para una o supercie impl cita de esfera: (a) Marching Cubes; (b) Marching Triangles; (c) Marching Quads (imgenes (a) y (b) obtenidas de [HIIT97]). a multitud de trabajos que permiten mejorar este algoritmo (seccin 2.3), en esta o investigacin se decidi utilizar una tcnica similar para ser usada como segunda o o e fase del sistema de generacin automtica de personajes 3D. o a Sin embargo, el algoritmo de Marching Triangles, ste no est enfocado a obtener e a mallas para su uso en sistemas de animacin. Las mallas deformables de personao jes suelen estar construidas con pol gonos cuadrangulares, situados y orientados en base a la simetr del modelo, ya que estas caracter a sticas facilitan la animacin de o personaje. En un principio, para obtener mallas de quads, se podr haber realizado una a poligonizacin mediante Marching Triangles y un paso posterior de conversin a o o malla de quads. Sin embargo, se ha optado por una adaptacin de Marching Triano gles para generar directamente una malla de quads. Esta adaptacin es el algoritmo o deMarching Quads que se presenta en este documento, y el cual permite adems a adaptar los quads a la simetr y a la curvatura del modelo. a El ejemplo (c) de la gura 2.13 permite comparar la malla poligonal de un modelo esfrico con respecto a la malla que se obtiene con los algoritmos de referencia antee riores. Se puede observar que Marching Quads genera una malla mayoritariamente compuesta por pol gonos cuadrangulares.

Cap tulo 3 Algoritmo de Marching Quads


3.1.
3.1.1.

Introduccin o
Estructura del algoritmo

El algoritmo de Marching Quads que se presenta a continuacin es una adapo tacin de los pasos del algoritmo de Marching Triangles (seccin 2.3) para generar o o 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 n de la malla hasta completar la supercie del modelo. El algoritmo de Marching Quads consta de los siguientes pasos: 1. Se localiza un quad sobre la supercie impl cita, se a aden todos los elementos n del quad semilla al modelo poligonal M y se introducen las cuatro aristas en la cola de aristas a computar Ce , ya que son frontera de la malla. 2. Algoritmo deMarching Quads. a) Se obtiene una arista eb del frente de la cola Ce . Si la cola se encuentra vac se naliza el algoritmo de poligonizacin accediendo al paso 3. a, o b) Dos puntos P1 y P2 son proyectados desde cada uno de los vrtices V1 e y V2 de la arista eb una distancia constante lproj en el plano del quad frontera Qb (V1 , V2 , V3 , V4 ), y perpendiculares a la arista eb . c) Para cada uno de los dos puntos proyectados P1 y P2 , se localizan los puntos ms cercanos a la supercie impl a cita Vnew1 y Vnew2. 29

30

Cap tulo 3. Algoritmo de Marching Quads

d ) Si la malla M contiene un vrtice Vnear1 cercano a Vnew1, entonces Vnew1 = e Vnear1 . Anlogamente, se localiza el vrtice ms cercano a Vnew2 si exisa e a tiese. e) Utilizando la arista eb , y los dos nuevos vrtices Vnew1 y Vnew2, se crea e un nuevo quad Qnew (V1 , Vnew1, Vnew2, V2 ). Si el modelo tiene orientacin o opuesta a Qnew en alguno de los dos nuevos vrtices (normales de la sue percie impl cita en Vnew1 y Vnew2 opuestas a la normal de Qnew ), entonces se descarta la creacin de un quad desde la arista eb a adiendo sta arista o n e a la lista de aristas candidatas a producir cracks Cc , y se vuelve al paso 2a. f ) Si se detectaron vrtices cercanos para los nuevos vrtices Vnew1 y Vnew2 en e e el paso 2d, y estos se encuentran unidos por una arista, se crea un nuevo quad Qop = (V1 , Vnew1, Vnew2, V2 ) y se prueba la restriccin de Delaunay o en l. e Si pasa la restriccin Qop , entonces se a ade a M junto a las dos o n nuevas aristas que se crean, las cuales tambin son a adidas a Ce . Si e n la arista eop (Vnew1, Vnew2) se encuentra en la lista de aristas de crack Cc , entonces se elimina de la lista ya que no producir crack por dejar a de ser frontera de malla. Finalmente se contin a procesando aristas u volviendo al paso 2a. Si no pasa la restriccin, o no se detect una arista opuesta, se cono o tin an probando otras alternativas. u g) Se comprueba que Qnew pasa la restriccin de Delaunay. o Si pasa la restriccin se a ade Qnew a M, as como Vnew1 , Vnew2 y las o n tres nuevas aristas que se forman en el quad. Adems, por ser estas a nuevas aristas frontera de malla, se a aden a Ce . Adems, por haber n a producido un quad eb , se vuelve al paso 2a. Si no pasa la restriccin se contin a probando otras alternativas. o u h) Se prueban tres alternativas de construccin de un nuevo quad utilizando o la arista previa ep (V1 , Vp ), la arista frontera siguiente es (V2 , Vs ) o ambas aristas. Se comprueba la restriccin de Delaunay para cada uno de los o

3.1. INTRODUCCION

31

quads Qps (V1 , Vp , Vs , V2 ), Qp (V1 , Vp , Vnew2, V2 ) y Qs (V1 , Vnew1, V s, V2 ) de estas alternativas. Si alguno de los quads Qps , Qp o Qs pasa la restriccin, entonces se o a ade el pol n gono a M junto a los nuevos vrtices y aristas que se e creen, y stas se a aden tambin a la cola Ce . Adems, por haberse e n e a utilizado aristas existentes ep y es , se eliminan de la lista de aristas de crack Cc si estuviesen contenidas en ella. Por ultimo, por haberse producido un quad, se vuelve al paso 2a. Si no pasa la restriccin se contin a el algoritmo. o u i ) Si todas las alternativas anteriores han fallado, entonces la arista eb es descartada sin producir un nuevo quad para la malla M. Es por ello que la arista eb se introduce en la lista de aristas candidatas a producir cracks Cc . Se vuelve al paso 2a para continuar procesando otras aristas. 3. Cuando no hay ms aristas que procesar, el algoritmo de Marching Quads a acaba. Si la malla resultante M contiene cracks, se procede a su cierre mediante el algoritmo detallado en la seccin 3.5. o

3.1.2.

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 construccin. Este problema engloba todo lo referente a los cambios o en el algoritmo de Marching Triangles para que pueda generar pol gonos cuadrangulares. B squeda del punto ms cercano sobre la supercie impl u a cita: En el paso 2c es necesario que los puntos proyectados, para que puedan ejercer como vrtices del nuevo quad, se encuentren sobre la supercie impl e cita. Es por ello

32

Cap tulo 3. Algoritmo de Marching Quads

que se necesita una tcnica que permita localizar el punto ms cercano sobre e a la supercie denida por el conjunto de esferas del modelo impl cito. B squeda del quad inicial: El algoritmo de Marching Quads, al igual que u los algoritmos de poligonizacin basados en rastreo de supercie, necesitan o de una malla inicial desde donde iniciar el proceso iterativo de anexin de o quads (correspondiente al paso 1 del algoritmo descrito). Es por ello que se necesita una tcnica que permita localizar un quad semilla que se sit e sobre la e u supercie impl cita y adems, para versiones basadas en la simetr del modelo, a a que este quad inicial se sit e sobre el plano de simetr u 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 nal que permita cerrar los agujeros. En la seccin 3.2 se detallar el algoritmo de poligonizacin Marching Quads. La o a o seccin 3.3 mostrar la solucin desarrollada en este trabajo para abordar el probleo a o ma de b squeda del punto ms cercano sobre la supercie impl u a cita. La seccin 3.4 o explicar la tcnica que se propone para localizar un quad inicial sobre la supercie a e impl cita, y el plano de simetr Finalmente, la seccin 3.5 tratar sobre el algoritmo a. o a que se ha desarrollado para cerrar los cracks que se obtienen al nalizar el algoritmo de poligonizacin. o

3.2.
3.2.1.

Poligonizacin de la supercie impl o cita: Marching Quads


3D Delaunay Surface Constraint aplicado a quads

El algoritmo de Marching Quads, al igual que Marching Triangles, est basado a en la creacin de nuevos pol o gonos que se anexan a la frontera de la malla si logran pasar una restriccin que permite mantener una correcta estructura de malla. Esta o restriccin es una extensin del algoritmo de Delaunay para triangular nubes de o o puntos, aunque orientado a supercies en el espacio 3D. En concreto, la restriccin de supercie de Delaunay en 3D sostiene que un o

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: MARCHING QUADS

33

tringulo T puede a adirse a la malla, si no existe parte de la malla que se encuentre a n dentro de la esfera de Delaunay circunscrita en T . Esta esfera es la tridimensionalizacin del circumc o rculo del tringulo, que es el c a rculo que pasa por los tres vrtices e del pol gono y que, por tanto, se encuentra centrado en el circumcentro del mismo, siendo ste el punto equidistante a los tres vrtices. A las zonas de la malla con e e diferente orientacin con respecto al nuevo tringulo, esta restriccin no les afecta o a o ya que se corresponden con regiones diferentes del modelo, lo que sigue permitiendo una buena triangulacin. o Porque un tringulo es un simplex, o sea el pol a gono ms peque o posible en a n las dos dimensiones, siempre existe un c rculo que pasa por todos los vrtices. Sin e embargo, en un pol gono cuadrangular esto no es siempre posible. Por este motivo la restriccin de Delaunay no puede aplicarse directamente a quads, ya que se dan o casos en los que no existe una esfera que pase por los cuatro vrtices del pol e gono. En este trabajo hemos propuesto una alternativa a la restriccin aplicable a o quads. Porque un quad puede verse como una anexin de dos tringulos a travs de o a e una arista diagonal al quad, puede denirse una esfera de Delaunay para cada uno de los dos tringulos en los que se divide un quad, de forma que la unin de ambas a o esferas genere un volumen de restriccin. o Un quad puede dividirse en dos tringulos de dos formas diferentes, en base a a cual de las dos diagonales del pol gono es la escogida para la particin. Por tanto, o hay que determinar un convenio que permita elegir cual de las dos posibles divisiones es mejor. Esta eleccin es necesaria ya que los tringulos resultantes de la particin, o a o y por extensin sus esferas de Delaunay, dieren seg n la divisin realizada. o u o El pol gono ideal es el equiltero y por tanto, aproximaciones a l, son los quads a e deseables de ser generados por el algoritmo. Esta restriccin para quads que se o propone genera dos esferas idnticas solapadas en pol e gonos equilteros, permitiendo a que el volumen de restriccin se ajuste bastante al quad, provocando que este tipo o de quad sea aceptado con ms facilidad. El ejemplo (a) de la gura 3.1 muestra a que la restriccin se ajusta mejor en un pol o gono equiltero, en comparacin con los a o quads deformados de (b). Proponemos utilizar la diagonal de mayor longitud para dividir el quad. Esta

34

Cap tulo 3. Algoritmo de Marching Quads

eleccin es debida a que los tringulos resultantes de dividir el quad por la diagonal o a ms larga produce un volumen de restriccin mayor que los tringulos obtenidos a o a como divisin del quad por su diagonal menor. Es preferible un volumen de restrico cin mayor ya que a mayor diferencia entre diagonales ms romboide es el quad, o a y por tanto pol gono que deseamos evitar. El ejemplo (b) de la gura 3.1 muestra grcamente que la divisin de un quad mediante su diagonal ms larga genera un a o a volumen de restriccin mayor. o

(a)

(b1)

(b2)

Figura 3.1: Restriccin de Delaunay aplicada a quads. (a) Un quad equiltero proo a duce dos esferas solapadas que minimizan el volumen de restriccin. (b) Un quad o deforme donde la divisin mediante su diagonal mayor (b1) genera un volumen de o restriccin mayor que la divisin del quad mediante la diagonal menor (b2). o o

Ampliacin a la restriccin de Delaunay para quads o o La restriccin de Delaunay aplicable a quads que se ha presentado no es suciente o para denir 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 restriccin para o tringulos, las cuales generan quads deformados. En este trabajo se proponen tres a restricciones a adidas que controlan estas situaciones. n

Quad aplastado

Porque un quad excesivamente aplastado podr dar un falso a

positivo al testear la restriccin de Delaunay, es necesario limitar la delgadez del o pol gono. Simplemente se comprueba que la longitud de una de las diagonales no supere el doble de la longitud de la otra. Adems, se comprueba tambin que la a e

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: 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. Grcamente pueden analizarse ambos casos en el ejemplo (a) de la gura 3.2. a

Quad retorcido o doblado Otra deformacin de quad a evitar es la de retorcio miento de quad, o dicho de otro modo, que dos aristas del quad se crucen. La manera de detectar este defecto es, una vez dividido el quad en dos tringulos, comprobar a que los vectores normales de ambos son opuestos. En el caso (b) de la gura 3.2 muestra un quad retorcido cuyo tringulo v1 v2 v3 posee orientacin opuesta a a o v1 v3 v4 . Este mismo test tambin permite descartar quads que se encuentran e muy doblados travs de una de las diagonales. e

Quad cncavo Otro tipo de quad que se deben evitar son los cncavos. Para o o detectarlos, se comprueba que alguno de los vrtices del quad no se encuentre interior e al tringulo que forman los otros tres vrtices. Debido a que el vrtice no tiene a e e porqu estar contenido en el mismo plano que el tringulo, ha de proyectarse en e a dicho plano previamente. La gura 3.2 muestra en el caso (c) un quad cncavo. o Puede verse cmo el vrtice v2 se encuentra interno al tringulo que forman los o e a otros tres vrtices. e
V4 V4 l1 d1 l2 d2 V3 V2 V2

V1

V1

V3

(a1)

(a2)

(b)

(c)

Figura 3.2: Restricciones para evitar malos quads. (a) Quad achatados detectados porque una distancia entre lados l1 es doble que la otra l2 (a1) o una diagonal d1 es doble que la otra d2 (a2). (b) Quad retorcido. (c) Quad cncavo detectado localizando o un vrtice V2 interior al tringulo que forman los otros tres T (V1 , V3 , V4 ). e a

36

Cap tulo 3. Algoritmo de Marching Quads

3.2.2.

Creacin del nuevo quad candidato o

Este procedimiento comienza a partir de una arista frontera eb que se ha obtenido de la cola de aristas que restan por procesar Ce , y crea un nuevo quad candidato Qnew . En concreto, en este apartado se detallarn los pasos 2a, 2b, 2c, 2d y 2e a del algoritmo. El paso 2a se encuentra detallado en la seccin 3.4, y el paso 2c se o encuentra detallado en la seccin 3.3. o B squeda de los dos nuevos vrtices para el nuevo quad: paso 2b u e El paso 2b del algoritmo proyecta dos puntos desde la arista frontera una distancia constante lproj . Esta distancia es calculada cuando se construye el quad inicial, procedimiento detallado en la seccin 3.4, y permite que el resto de quads de la o malla se ajusten al tama o de este primer quad para obtener una malla homognea. n e La proyeccin de los nuevos puntos esta distancia constante, perpendicularmente a o la arista que se est computando eb y en el plano de su pol a gono Qb , posibilita que el quad se aproxime a la equilateralidad. La proyeccin de puntos de este trabajo diere con respecto al algoritmo de o Marching Triangles debido a la diferencia geomtrica de un tringulo con respecto e a a un cuadrado. La gura 3.3 muestra esta diferencia, donde se proyecta un punto desde el medio de la arista eb en el caso de los tringulos, y dos puntos desde los a vrtices de la arista en el caso de quads. En ambos ejemplos puede observarse que e el objetivo de la proyeccin es obtener el pol o gono con una forma equiltera. a El paso 2c permite ajustar el quad aproximado del paso anterior a la supercie impl cita. Para ello se ejecuta un procedimiento para localizar los puntos ms cera canos sobre la supercie impl cita desde los puntos proyectados, procedimiento que se detalla en la seccin 3.3. o Deteccin de vrtices cercanos: paso 2d o e En la imagen 23 se mostr un problema del algoritmo de Marching Triangles o detectado en [Fou09], que sucede cuando un nuevo vrtice es construido en la cere can de un vrtice existente. Existen casos, como el mostrado en el caso (b) de la a e gura 2.9, donde un tringulo vlido es construido prximo a un vrtice existente. a a o e

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: MARCHING QUADS

37

Pproj lproj V2 eb V1

P2 lproj eb V1

P1 lproj

V2

(a)

(b)

Figura 3.3: Comparacin de proyeccin de los nuevos vrtices para (a) Marching o o e Triangles y para (b) Marching Quads.

Aunque la malla mantiene una topolog correcta al a adir el nuevo tringulo, un a n a crack se producir en la zona, o en su defecto se construir un tringulo deformado a a a debido a la estrechez de la zona. El algoritmo de Marching Quads tambin presenta este mismo problema, como e puede observarse grcamente en la gura 3.4. Un quad puede ser construido de a 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 construccin o tendr una geometr poco deseable. Incluso, en el caso de tener que cerrar esa zona a a de crack, el quad deformado tendr que ser construido. a Si se hubiese detectado la existencia de un vrtice cercano a uno de los nuevos e vrtices que se proyectaron, y se utilizara este vrtice cercano para la creacin del e e o nuevo quad en lugar del nuevo, podr evitarse estas zonas estrechas que produan cen cracks. La gura 3.4 muestra el resultado de haber desechado el nuevo vrtice e sustituyndolo por un vrtice cercano. e e Para detectar los vrtices cercanos (paso 2d ), una vez localizados los dos vrtices e e nuevos Vnew1 y Vnew2, se centra una peque a esfera en dichos vrtices de radio 1 lproj n e 3 y se buscan vrtices de la malla interiores a la esfera. En cas de encontrarse varios e o vrtices, se escoge el ms cercano al punto proyectado. La gura 3.4 muestra esta e a esfera que se propone, y que habr detectado la existencia de un vrtice cercano. a e

38
Near Sphere

Cap tulo 3. Algoritmo de Marching Quads

lproj

eb

eb

(a)

(b)

Figura 3.4: Deteccin de vrtices cercanos. (a) Un quad es construido de forma o e correcta pero deja una zona de crack debido a que un vrtice se construye cerca e de otro. Si se hubiera detectado el vrtice cercano utilizando la esfera de cercan e a, entonces (b) un quad podr haberse construido evitando el crack. a

Construccin del nuevo quad: paso 2e o

Utilizando los dos nuevos vrtices que se encuentran sobre la supercie impl e cita, y en adicin a los vrtices de la arista frontera a computar eb , se construye el nuevo o e quad Qnew (V1 , Vnew1, Vnew2, V2 ). Adems, en este paso tambin se controla que los dos vrtices se correspondan a e e localmente con el modelo, pues alguno de los nuevos vrtices podr corresponderse e a con una zona errnea de la malla. Para controlar esto, se comprueba que el vector o normal de la supercie impl cita en el vrtice candidato no se oponga al vector e normal de Qnew . En la gura 3.5 se muestra un ejemplo en 2D de un vrtice correspondiente a e una zona errnea debido a que la supercie impl o cita contiene una zona estrecha. La proyeccin de un nuevo punto obtiene un punto sobre la supercie que es opuesto o al nuevo quad que se generar lo que provoca que se descarte la arista que se a, est procesando. Se puede observar que, en caso de a adir el nuevo quad, el modelo a n poligonal resultante recortar la zona estrecha del modelo, perdindose detalles del a e mismo.

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: MARCHING QUADS

39

Qb

lproj

Qb
Pproj

Qnew Vnew Pproj

Implicit Surface

Implicit Surface

(a)

(b)

Figura 3.5: Ejemplo en 2D de (a) una proyeccin de un punto Pproj (b) que localiza o un punto sobre la supercie impl cita Vnew que est en una zona errnea del modelo. a o El quad Qnew que se crea recorta parte del modelo.

3.2.3.

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 eb mediante diversas alternativas de construccin, o comprobando en todas ellas que pasen la restriccin deDelaunay aplicada a quads. o Deteccin de arista opuesta: paso 2f o Se ha decidido omitir la alternativa de Marching Triangles que se propone en el informe tcnico [HIIT97] para construir un quad que permita cerrar zonas enfrentae das de la malla utilizando un vrtice que se solape con la esfera de Delaunay de Tnew . e El motivo es que si se encuentra alg n vrtice que solape el volumen de restriccin u e o de Qnew , este puede situarse errneamente de modo que el quad quede deformado, o adems de que depende del otro vrtice nuevo para el nuevo quad. a e Sin embargo presentamos una alternativa similar que, en vez de detectar alg n u vrtice que se solape, lo que se detecta es alguna arista frontera eop que se encuene tre enfrentada a la arista eb una distancia cercana a lproj , utilizndola para cerrar a parte de la malla creando un quad Qop con buena estructura morfolgica. A n as o u , para asegurarse que Qop mantiene la topolog de la malla, se ha de comprobar la a restriccin de Delaunay. o Una arista se encuentra enfrentada a eb si en el paso 2d del algoritmo se han encontrado vrtices cercanos que sustituyen a los dos vrtices proyectados Vnew1 y e e

40

Cap tulo 3. Algoritmo de Marching Quads

Vnew2, y adems stos se encuentran unidos por una arista. En este caso se puede a e unir esta arista eop a eb para permitir cerrar la malla, aunque para ello, los quads frontera de ambas aristas Qop y Qb han de tener misma orientacin. o En la gura 3.6 puede observarse un caso de deteccin de vrtices cercanos en o e los puntos proyectados, los cuales se encuentran unidos por una arista. Obsrvese e 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 vrtices, las esferas de cercan detectan e a dos vrtices cercanos que se encuentran unidos por una arista eop . (b) Utilizando e esta arista opuesta se puede construir un quad para cerrar zonas enfrentadas de malla.

Esta alternativa de construccin de quad es la primera en evaluarse, incluso antes o de comprobar directamente que Qnew es aceptado por la restriccin de Delaunay, o debido a que es deseable unir zonas de malla existente de modo que se minimicen los cracks resultantes.

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: MARCHING QUADS Construccin de quad directo: paso 2g o

41

El paso 2g del algoritmo permite validar el nuevo quad Qnew que se desea construir utilizando la restriccin de Delaunay. Si el quad no se solapa con la malla M, o y adems tiene una topolog buena, el quad se a ade al modelo poligonal M. Los a a n nuevos vrtices y aristas que se crean tambin han de ser a adidas al modelo y, como e e n las nuevas aristas son frontera de malla, han de introducirse tambin en la cola Ce e para permitir que el algoritmo las compute posteriormente. En el caso (a) de la gura 3.7 se observa un ejemplo en dos dimensiones de la creacin de un nuevo quad, cuya esfera de Delaunay permite que sea anexado o anexado a la malla por no solaparse con alg n vrtice de la malla. u e

Construccin de quad utilizando aristas vecinas: paso2h o En ocasiones existen aristas vecinas, que son las aristas unidas a eb que son frontera de malla, las cuales se solapan con el quad directo Qnew provocando el descarte de ste. Para poder cerrar estas zonas de malla, pueden utilizarse estas e aristas vecinas para poder formar el nuevo quad junto a eb . La arista que se encuentra unida al vrtice V1 de la arista eb continuando la e frontera de la malla es la que se denomina arista previa ep (V1 , Vp ), siendo Vp el vrtice de ep no com n a eb . Anlogamente se dene la arista siguiente es (V2 , Vs ) e u a como la arista frontera unida a eb mediante su vrtice V2 . e Utilizando estas aristas, se puede probar la construccin del nuevo quad de tres o maneras distintas: utilizando ambas aristas vecinas para formar el quad Qps (V1 , Vp , Vs , V2 ) (caso (b) de la gura 3.7); utilizando solamente la arista previa para formar el quad Qp (V1 , Vp , Vnew2, V2 ) (caso (d) de la gura 3.7); y utilizando solamente la arista siguiente formando el quad Qs (V1 , Vnew1, V s, V2 ) (caso (c) de la gura 3.7). Para cada una de las tres alternativas que utilizan aristas vecinas se ha de comprobar la restriccin de Delaunay aplicada a quads, para vericar que el quad no o 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. n Hay que tener en cuenta que estas alternativas utilizan aristas existente para

42

Cap tulo 3. Algoritmo de Marching Quads

construir el nuevo quad, de modo que dejar de ser frontera de la malla. Por este an motivo, estas aristas han de eliminarse de la lista de aristas a procesar Ce , y adems a tambin se eliminan de la lista de aristas candidatas a crack Cc si estuviesen. e
Vnew2 Vnew1 Vs Vp

V2

eb

V1

V2

eb

V1

(a)
Vs Vnew1 Vnew2

(b)
Vp

V2

eb

V1

V2

eb

V1

(c)

(d)

Figura 3.7: Ejemplos en 2D de diferentes alternativas de construccin de un quad o 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 paso 2i del algoritmo viene a indicar que, si no se pudo construir el nuevo quad con ninguna de las anteriores alternativas, entonces la arista eb ser descartada sin a generar un quad. Aunque esta arista podr ser cogida como arista vecina o solapada a en iteraciones posteriores, lo ms probable es que la zona termine conteniendo un a crack. Aunque existen tcnicas a adidas al algoritmo para minimizar los cracks que e n se obtienen tras la poligonizacin, stos son inevitables. Por ello, es necesario un o e procedimiento al nal del algoritmo que permita cerrar estos cracks. Esta tcnica de e cierre de cracks se encuentra detallada en la seccin 3.5. o

3.2. POLIGONIZACION DE LA SUPERFICIE IMPL ICITA: MARCHING QUADS

43

Para que el procedimiento de cierre de cracks conozca cuales son las aristas frontera al acabar el algoritmo de poligonizacin, se utiliza una lista de aristas o candidatas a crack Cc . Aquellas aristas eb que no producen un nuevo quad son a adidas en esta lista, aunque podr ser eliminadas de ella si la arista es escogida n as posteriormente como arista vecina o enfrentada.

3.2.4.

Cracks debido a vrtices escogidos errneamente e o

En la seccin 2.3 se coment sobre otro de los problemas del algoritmo de Maro o ching Triangles, el cual tambin se encuentra presente en este algoritmo que se e propone. En el trabajo [AG01], los autores detectaron que un tringulo podr estar a a bien construido al ser validado por la restriccin de Delaunay, y sin embargo ser el o detonante de un futuro crack. En la seccin 2.3.1 se expuso un problema del algoritmo Marching Triangles o en el que tringulos, que aparentemente son buenos, generan cracks debido a que a provocan que alg n pol u gono existente deje de cumplir la restriccin de Delaunay. o En el algoritmo de Marching Quads esta situacin tambin puede darse, como o e es el caso (a) de la gura 3.8, donde la arista frontera del quad Q genera un nuevo pol gono Qnew que pasa la restriccin. Sin embargo, ntese que el quad Qnew provoca o o que el ya existente pol gono Q no pase la restriccin, debido a un solapamiento o de uno de los vrtices de Qnew con la esfera de restriccin de Q . La zona que e o queda libre resultar probablemente en un crack, cuyo cierre puede generar una a mala poligonizacin. o Puede observarse que el problema lo provoca el nuevo vrtice, el cual se encuentra e situado muy cerca de una arista existente, y adems muy prxima al medio de sta, a o e provocando que el nuevo vrtice no pueda encontrar un vrtice cercano de la arista. e e El caso (b) de la gura 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 construccin de un quad ms correcto. Aunque no se pueda construir o a un quad en la zona libre por alguna alternativa resultando en una zona de crack, el procedimiento de cierre de cracks puede construir un tringulo topolgicamente a o mejor en comparacin con el primer caso. o

44

Cap tulo 3. Algoritmo de Marching Quads

Q
eb Qnew

Qnew eb

(a)

(b)

Figura 3.8: (a) Creacin de un quad Qnew que pasa la restriccin, pero que provoca o o que uno de los vrtices de Qnew solape la esfera de Delaunay de un quad existente e Q . (b) Alternativa de computar previamente el quad Q

Test de topolog correcta de malla con respecto a un quad a Para evitar la construccin de estos quads aparentemente buenos que perjudican o a existentes quads, y paralelamente a la restriccin de Delaunay, es necesario un o mtodo que detecte que los quads de la malla M contin en validando la restriccin. e u o L tcnica implementada realiza un recorrido por todos los quads que pertenecen a e a la malla, comprobando que la esfera de restriccin de cada quad no solape al o 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 restriccin que se propone a los quads vecinos de o la arista a computar, ya que por cercan sus esferas de Delaunay siempre van a a, solapar al nuevo quad. Adems, para no computar la esfera de Delaunay cada vez que a se realice este test, dicha esfera es calculada en la creacin del quad, almacenndose o a en la propia estructura de datos del pol gono para posteriores clculos con ella. a Los pasos del algoritmo que basan la creacin del nuevo quad usando una arista o opuesta y usando las dos aristas vecinas no realizan este nuevo test. Esto es debido

3.3. BUSQUEDA DEL PUNTO MAS CERCANO SOBRE LA SUPERFICIE IMPLICITA 45 a que ambos pasos no generan nuevos vrtices, que son los elementos causantes del e problema que se ha descrito.

3.3.

B squeda del punto ms cercano sobre la suu a percie impl cita

El modelo impl cito que utiliza este trabajo, se dene por un esqueleto impl cito de puntos, cuya supercie viene denida por los puntos que se encuentran a una cierta distancia de cada elemento del esqueleto. Visto de otro modo, la supercie impl cita es la resultante de la unin de un conjunto de esferas, correspondindose o e cada una con un elemento esqueltico. Esta forma de representacin impl e o cita es la que se obtiene de la primera fase del sistema de creacin de personajes 3D a partir o de modelos denidos en 2D. La computacin del punto Ps ms cercano a la supercie impl o a cita, desde un punto Po exterior a la misma, es una tarea relativamente sencilla. Basta con proyectar el punto Po sobre cada esfera del modelo impl cito, y escoger el punto proyectado ms cercano a Po . a Sin embargo, esta b squeda se hace mucho ms compleja si se realiza desde un u a punto Pi interior a la supercie impl cita. En el caso de que el punto se encuentre en el interior de una unica esfera, el procedimiento es idntico a buscarlo desde un e punto exterior. Sin embargo, si el punto se encuentra interior a varias primitivas impl citas, el punto proyectado puede no corresponderse a la supercie impl cita, sino uno interior a la misma. En estos casos, es muy complejo denir una direccin o donde proyectar hacia la supercie del modelo. Por otra parte, existen situaciones en las que el punto ms cercano sobre la supera cie impl cita Ps , genera malos quads que pueden ser descartados por la restriccin o de Delaunay. Este caso se da en zonas de alta curvatura del modelo, donde el punto proyectado se aleja de la supercie impl cita provocando la obtencin de un punto o Ps , cuya distancia a la arista, diere considerablemente de la distancia de proyeccin lproj . El resultado es la obtencin de un nuevo quad aplastado, o alargado, que o o fcilmente podr ser descartado por la restriccin de Delaunay. a a o

46

Cap tulo 3. Algoritmo de Marching Quads

La gura 3.9 muestra el resultado de la construccin de un quad acortado por o el problema de alta curvatura en la zona. El punto proyectado Pproj se aleja de la supercie impl cita, obteniendo un punto sobre la supercie muy cerca del inicio de la proyeccin, provocando un acortamiento en el quad Qnew . Puede observarse como o el tama o de los quads se mantiene constante hasta que se alcanza la zona de alta n curvatura.

Pproj Pproj Qb
Qnew Vnew

Qb
Qnew Vnew

Implicit Surface

(a)

(b)

Implicit Surface

Figura 3.9: (a) Supercie muy curva donde el punto proyectado Pproj obtiene un punto sobre la supercie Vnew que genera un quad muy corto. (b) Manteniendo constante la proyeccin al buscar el punto sobre la supercie, se puede obtener un o punto Vnew que mantenga la estructura equilatera del nuevo quad Qnew .

3.3.1.

Algoritmo de b squeda de punto cercano a la superu cie

Teniendo en cuenta ambos problemas, los relativos a la complejidad a la hora de buscar el punto ms cercano y la deformacin de quads en zonas de alta curvatura, a o se propone una alternativa que permite localizar un punto cercano sobre la supercie impl cita manteniendo la equilateralidad del quad. Esta tcnica restringe la b squeda del punto cercano sobre la supercie impl e u cita a una distancia lproj de la arista. Para ello, se construye una circunferencia de radio lproj en el plano perpendicular a la arista eb , y se centra en el vrtice que inicia la e proyeccin. A continuacin, se localizan los puntos donde la circunferencia corta a o o la supercie impl cita, y se escoge el ms cercano a Pproj . a

3.3. BUSQUEDA DEL PUNTO MAS CERCANO SOBRE LA SUPERFICIE IMPLICITA 47 Este mtodo se basa en la deteccin de todos los puntos de la supercie impl e o cita que se encuentran a una distancia lproj de la arista a computar eb , para ver cual es el ms cercano al punto que se quiere aproximar a la supercie. De este modo, el a nuevo quad mantendr una longitud homognea con la malla. Para que el quad sea a e equiltero, el nuevo vrtice ha ser perpendicular a la arista a computar eb , y es por a e ello que se buscan puntos que se encuentren en su plano perpendicular. El caso (b) de la gura 3.9 muestra grcamente el resultado de haber aplicado a este mtodo. Obsrvese como la circunferencia obtiene dos puntos sobre la supercie e e candidatos, siendo el elegido para construir el nuevo quad el que se encuentra ms a cercano a Pproj . Este algoritmo que se propone busca inicialmente todas las intersecciones de que hay entre la circunferencia y cada primitiva esfrica. Si una interseccin se encuentra e o interior a la supercie impl cita, entonces sta es descartada por no encontrarse sobre e la supercie impl cita. Finalmente, de la lista de candidatos, se escoge aquel punto que se encuentre ms cercano al punto Pproj . a El vector normal a un punto de la supercie impl cita se calcula como la normalizacin del vector (P C), donde P es el punto de la supercie, y C es el centro de o la primitiva esfrica que se corresponde con P . Estos vectores normales se calculan e simultneamente con la b squeda de puntos candidatos. a u

3.3.2.

Formulacin matemtica de interseccin circunferenciao a o esfera

Para obtener la interseccin entre una circunferencia y una esfera, se ha de reo solver un sistema matemtico de ecuaciones utilizando la ecuacin del plano de a o la circunferencia, la ecuacin de la esfera donde la circunferencia se encuentra ciro cunscrita y la ecuacin de la esfera correspondiente a la primitiva de la supercie o impl cita. La denicin matemtica de cada primitiva esfrica es: o a e

(x Cx )2 + (y Cy )2 + (z Cz )2 r 2 = 0

(3.1)

48

Cap tulo 3. Algoritmo de Marching Quads

Donde C(Cx , Cy , Cz ) es el centro de la esfera y r es el radio. La denicin matemtica de la circunferencia viene dada por la esfera y el plano o a que contienen a la misma, ya que una circunferencia puede verse como la interseccin o entre un plano y una esfera. Para un plano denido por un punto P y un vector normal al plano N, todo punto contenido en l debe cumplir que su vector con e respecto al punto ha de ser perpendicular a la normal del plano.

2 (x Px )2 + (y Py )2 + (z Pz )2 lproj = 0

(3.2) (3.3)

(x Px , y Py , z Pz ) (Nx , Ny , Nz ) = 0

Donde P es el centro de la circunferencia, N es la normal del plano donde est contenida la circunferencia, y lproj es el radio de la circunferencia. a Resolviendo este sistema de tres ecuaciones puede no obtenerse alguna solucin, o indicando que la circunferencia no intersecta a la esfera; una solucin, indicando que o la circunferencia intersecta a la esfera en un unico punto; o dos soluciones, indicando que la circunferencia intersecta a la esfera en dos puntos distintos.

3.4.

B squeda del quad inicial u

Para que el algoritmo de Marching Quads pueda comenzar, es condicin necesaria o la existencia de una malla inicial M de al menos un quad, de cuya frontera comenzar la construccin de quads. En este trabajo se comienza de un quad semilla que, como o ha de formar parte del modelo poligonal, ha de tener sus cuatro vrtices ajustados e a la supercie impl cita, y adems ha de ser lo ms equiltero posible. a a a En versiones iniciales de Marching Quads, es primer quad se localizaba de forma aleatoria, escogiendo una direccin cualquiera que permitiera localizar un punto de o la supercie impl cita, desde donde iniciar la creacin del quad. o Sin embargo en versiones ultimas del proyecto, tal y como se ver en la seccin de a o mejoras, el plano de simetr del modelo impl a cito cobra importancia. Esto provoca una restriccin a adida al quad inicial, el cual debe situarse en este plano de simetr o n a. Por este motivo, en este apartado se detallar el algoritmo para localizar un quad a

3.4. BUSQUEDA DEL QUAD INICIAL inicial sobre la supercie impl cita, y sobre el plano de simetr del modelo. a

49

3.4.1.

Algoritmo de b squeda de quad inicial u

Existen varias formas de denir un plano. En este proyecto se ha trabajado utilizando la representacin donde un plano de simetr viene denido por un punto o a aleatorio del plano Pp y un vector normal al plano Np . El algoritmo de b squeda de quad inicial est descompuesto en los siguientes u a pasos: 1. Se localiza un punto Ps sobre la supercie impl cita contenido en el plano de simetr a partir del punto Pp . En base al radio de la esfera impl a, cita de menor tama o, se genera un valor de distancia de proyeccin lip para denir n o el tama o del quad inicial. n 2. Se proyecta el punto Ps una distancia de lip en la direccin del gradiente Ns o de la supercie impl cita en el punto Ps , obtenindose el punto Pq . e 3. A partir del gradiente inverso Ns , se obtienen cuatro vectores separados en forma piramidal, formando ngulos de 90o entre ellos. a 4. La proyeccin sobre la supercie impl o cita de la pirmide formada por los a cuatro rayos anteriores, los cuales se originan a partir del punto Pq , obtienen los cuatro vrtices del quad inicial. e

3.4.2.

Detalle de los pasos del algoritmo

En primer lugar se localiza un punto Ps que se encuentre situado en la supercie impl cita y sobre el plano de simetr Adems se obtiene la normal a la supercie a. a en dicho plano. A continuacin se tratar de crear un quad centrado en Ps mediante un mtodo o a e que consiste en alejar el punto una peque a distancia de la supercie y proyectar una n pirmide de base cuadrangular sobre la supercie impl a cita, cuya base es centrada en el punto de la supercie. La proyeccin de la pirmide obtiene un quad perfectamente o a equiltero, a no ser que la proyeccin intersecte ms de una primitiva. a o a

50 Paso 2

Cap tulo 3. Algoritmo de Marching Quads

La distancia desde donde se lanza la pirmide inuye en el tama o del quad a n inicial. Esta distancia lip se escoge en funcin del radio de la esfera impl o cita de menor tama o para evitar recortar zonas de alta curvatura, y es modicado por un n factor que permite al usuario variar la resolucin general de la malla. o El paso 2 permite localizar el pico de la pirmide Pproj moviendo el punto sobre la a supercie Ps una distancia lip hacia el exterior del modelo. Para que el quad resulte lo ms equiltero posible, la direccin escogida es el gradiente de la supercie en el a a o punto. Paso 3 El paso 3 genera los cuatro rayos que, al lanzarse a partir del punto proyectado del paso anterior, generarn una pirmide de proyeccin. La gura 3.10 muestra estos a a o cuatro rayos R1 , R2 , R3 y R4 . Partiendo del inverso del gradiente de la supercie, o lo que es lo mismo, el vector que va de Pproj a Ps , se rota ste 45o sobre el eje de la e normal del plano para generar un rayo R0 que determina la abertura de la pirmide. a Como es deseable que el quad inicial tenga aristas paralelas y perpendiculares al plano de simetr se rota 45o R0 sobre el eje del gradiente de la supercie para a, obtener el primer rayo R1 . Los restantes rayos se obtienen con rotaciones de 90o sobre el eje del gradiente. Paso 4 El paso 4 intersecta los cuatro rayos que conforman la pirmide con la supercie a impl cita para determinar los cuatro vrtices que, siendo unidos por aristas, formarn e a el quad inicial.

3.4.3.

Clculo de la distancia de proyeccin a o

Antes de terminar la computacin del quad semilla, la distancia de proyeccin o o lproj ha de ser recalculada para que se reajuste con respecto al tama o del quad n creado. Para ello, la distancia lproj se inicializa como una media de la longitud de

3.5. CIERRE DE CRACKS


Pproj V2 R1 Pproj R0 Ps R3 R4 V1 R1 R2 R2 R3 lip R4 V1 V4 Implicit Surface

51

Ps

Plane

V2 V3

V3

V4

Plane (b)

(a)

Figura 3.10: Pirmide de proyeccin para creacin del quad inicial en (a) vista a o o superior y (b) vista lateral. Se lanzan los rayos R desde el punto proyectado Pproj en un angulo de 45o para generar la pirmide cuya interseccin con la supercie a o impl cita obtiene los 4 vrtices del quad semilla. La orientacin de los rayos R se e o 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 proyectarn sus nuevos vrtices esta distancia para ajustarse al tama o de arista del a e n quad inicial, y as obtener una malla homognea. e

3.5.

Cierre de cracks

La malla poligonal que se obtiene tras aplicar el algoritmo de Marching Quads a una supercie 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 e gono que cierre la zona local de la malla. Porque estos cracks que se producen son indeseables para modelos orientados a sistemas de animacin (y otras aplicaciones grcas), es necesario un segundo paso o a 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,

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 poligonizacin. o

3.5.1.

Introduccin al algoritmo de cierre de cracks o

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 lp roj de los quads. Esta caracter stica posibilita el cierre de cracks sin necesidad de tener que crear nuevos vrtices, e 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. Adems, en cracks con a n mero impar de aristas frontera, es imposible cerrarlo exclusivamente con pol u 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 creacin de n o tringulos en estos casos extremos, y de esta forma mantener un correcto mallado a del modelo. A n as en la medida de lo posible se prioriza la creacin de pol u , o gonos cuadrangulares. Algoritmo de cierre de cracks Al nalizar el algoritmo de poligonizacin, se obtiene un conjunto Cc de aristas o 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 vrtices del crack. e La deteccin de cracks se calcula iterando de la siguiente manera: o 1. Si el conjunto de aristas Cc se encuentra vac la malla no contiene ning n o, u crack. Se naliza el algoritmo. 2. Se obtiene una arista inicial e0 del conjunto Cc .

3.5. CIERRE DE CRACKS

53

3. A partir de la arista e0 se obtienen las aristas vecinas siguientes e1 , e2 , . . . , en (ei arista vecina siguiente de ei1 ), siendo la arista e0 la siguiente de en . Esto permite obtener un subconjunto Ca de aristas de Cc que se corresponde con un agujero de la malla. 4. Se extraen del conjunto Cc todas las aristas del subconjunto Ca . Las aristas resultantes en Cc forman parte de otros cracks que se cerrarn en posteriores a iteraciones de este algoritmo. 5. Un procedimiento para cerrar un crack permite unir los vrtices de las aristas e frontera de Ca para generar nuevos quads, o tringulos si proceden, y de este a modo cerrar el agujero. 6. Una vez cerrado el crack Ca , se vuelve al primer paso por si quedaran ms a cracks que cerrar. Bsicamente, el algoritmo de cierre de cracks se compone de un proceso iterativo en a el que, para cada iteracin, se cierra un crack de la malla. A su vez, cada iteracin o o 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.

3.5.2.

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. Adems, cada nodo almacena informacin a o adicional como los ngulos que la arista forma con sus vecinas. a El proceso de creacin de la estructura de crack es iniciado a partir de una arista o aleatoria e0 . Para ello, se crea un nodo que almacene dicha arista, y se localiza su arista siguiente ei = e1 , comenzando el siguiente proceso iterativo:

54

Cap tulo 3. Algoritmo de Marching Quads

1. Se crea un nodo con la arista ei , se calcula el ngulo que forma con la arista a previa ei1 y se a ade a los nodos correspondientes a ei y ei1 . n 2. Se actualiza el nodo ei1 para indicar que su nodo siguiente es e1 , y a su vez se actualiza el nodo de e1 para indicar que su nodo previo es ei1 . 3. Se localiza la arista siguiente ei+1 4. Si ei+1 = e0 , entonces se ha cerrado la frontera del agujero terminando el algoritmo de aislamiento de crack, y en caso contrario, se vuelve a iterar utilizando ei = ei+1

Cuando el algoritmo naliza, la lista circular ha de ser cerrada enlazando e0 con en , siendo sta la ultima arista encontrada. Adems, en ambos nodos hay que e a actualizar el ngulo que forman ambas aristas. Y, como un ultimo paso de esta fase a para la obtencin de la estructura de un crack. o

3.5.3.

Cerramiento de un crack

Introduccin a la tcnica o e Una vez detectado el agujero, ste se cierra creando quads de forma iterativa (o e tringulos en los casos en que un quad no pueda ser a adido). Estos quads se crean a n a partir de los vrtices existentes utilizando tres aristas consecutivas del crack, y e a adiendo una nueva que permita cerrar el pol n 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 n 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 denida en funcin del angulo que la o 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 a ms cerrado con sus vecinas. En concreto, el peso de las aristas es escogido como la a

3.5. CIERRE DE CRACKS

55

suma de los ngulos que se forman con cada vecina en ambos extremos de la arista, a priorizando en este caso las aristas con menor peso. La gura 3.11 muestra un crack de cinco aristas donde se muestran los ngulos a que forman aristas consecutivas, y el peso de cada arista (suma de los ngulos con a sus vecinas). Este ejemplo, contempla tres alternativas para cerrar parte del crack mediante un quad, utilizando la arista de peso 180o , 200o y 250o respectivamente. Puede observarse cmo el mejor quad se obtiene utilizando la arista de menor peso o (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 tringulo y se salta al a paso 8.

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 8. 3. Se realiza un ordenamiento de los nodos del crack mediante una cola Co que prioriza a los nodos de menor peso. 4. Si la cola Co se encuentra vac el algoritmo salta al paso 6, y en caso contrario a, se coge la arista ei que est al frente. a 5. Se construye un quad Qn ew uniendo ei1 , ei , ei+1 y enew , siendo esta ultima la nueva arista que une las vecinas. Si Qnew 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 tringulo en u a aquella esquina del crack con menor ngulo,y cuyo tringulo no solape parte a a del crack. 7. Si el nuevo tringulo puede fusionarse con un vecino formando un buen quad, a se realiza dicha transformacin de pol o 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 n un nuevo nodo y se actualizan los ngulos y pesos de los nodos afectados. a 9. Si no quedan elementos en el crack el algoritmo naliza, 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 slo queda un pol o 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. u Para ello se coge la mejor arista candidata, y se construye un quad que una la arista

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 adems no solapa parte del crack, entonces el quad es aceptado. En a caso contrario, se contin a probando con las sucesivas aristas candidatas. u Para comprobar la doblez de un quad basta con chequear la oposicin de las noro males de los tringulos que dividen al pol a gono. La comprobacin de no convexidad, o se realiza vericando que alguno de los vrtices del quad no se encuentre interior al e tringulo que forman los otros tres vrtices del pol a e gono. Sin embargo, aunque estas comprobaciones permiten vericar la correcta topolog del quad, no bastan para a certicar que el quad cierra correctamente una zona de la malla. Esto es debido a que se pueden dar casos como el de la gura 3.12, donde un vrtice del crack solapa e 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 deteccin de o vrtices del crack solapados mediante una esfera. e Para evitar la construccin de quads de cierre incorrectos, se propone una restrico cin a adida que detecta vrtices solapados del crack. Esta restriccin, se basa en la o n e o comprobacin de la no existencia de parte de la malla solapada con una esfera que o

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 vrtice ms lejano. Debido a que se supone correcta la topolog de e a a la malla en el algoritmo de Marching Quads, solamente es necesario comprobar que no se solapen los vrtices pertenecientes al crack. La gura 3.12 muestra la esfera e de restriccin que permitir detectar el problema del ejemplo. o a

Paso 6: En caso de que el algoritmo no logre crear alg n quad, se cierra parte u del quad mediante un pol gono triangular, utilizando dos aristas del crack y una nueva. En este caso no se necesita comprobar la topolog del tringulo, aunque si a a se necesita chequear que el tringulo no solape parte del crack. Para ello, se construye a un prisma triangular proyectando el tringulo una cierta distancia constante, y luego a se comprueba que el prisma no englobe a alg n vrtice del crack. u e Es necesario un ordenamiento de aristas candidatas que est enfocado a la conse truccin de tringulos. Este ordenamiento es calculado de manera similar al de quads o a pero, debido a que slo dos aristas del crack se necesitan para crear el tringulo, el o a peso escoge unicamente el ngulo que forman las dos aristas. Con esto se pretende a cerrar esquinas del crack muy cerradas.

Paso 7: Puede darse el caso de construccin de un nuevo tringulo anexo a otro o a existente. El paso del algoritmo permite detectar estos casos, comprobar que ambos tringulos se unen en un buen quad y, en este caso, fusionar ambos tringulos para a a minimizar el n mero de pol u gonos triangulares en la malla.

Paso 8: Tanto si se ha creado un tringulo, como si lo que se ha creado es un a 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 creacin del o nuevo pol gono y, en caso de haberse creado una nueva arista, a adiendo el nuevo n nodo correspondiente. Adems, los ngulos y los pesos de los nodos que han sido a a afectados por la construccin del nuevo pol o gono han de ser recalculados.

Paso 9: Como ultimo paso del algoritmo se realiza una simple comprobacin para o detectar si el crack ha sido cerrado. Si a n quedan aristas en frontera en el crack, se u

3.5. CIERRE DE CRACKS

59

repite otra iteracin del algoritmo para continuar generando pol o gonos que permitan rellenar lo que queda de crack.

60

Cap tulo 3. Algoritmo de Marching Quads

Cap tulo 4 Mejoras en Marching Quads


4.1. Aceleracin del algoritmo Marching Quads o

4.1.1.

Anlisis del problema a

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 u del algoritmo, el algoritmo se hace cada vez ms lento. En este trabajo se propone a una mejora para acelerar algunas comprobaciones que se realizan sobre la malla, explotando el principio de localidad. El algoritmo de Marching Quads verica, para cada uno de los posibles casos de construccin de quads, la restriccin de Delaunay sobre el quad candidato. Por este o o motivo en cada iteracin del algoritmo se recorren varias veces todos los vrtices o e de la malla para comprobar la restriccin. Incluso, algunos de los casos recorren la o malla dos veces al comprobar tambin la restriccin de topolog de malla correcta, e o a detallada en la seccin 3.2.4. o Cuando se computa una arista frontera eb , el nuevo quad solapa una cierta regin o de la malla local a eb . Esta zona de la malla se encuentra delimitada por una distancia aproximada a la longitud de proyeccin lproj . o 61

62

Cap tulo 4. Mejoras en Marching Quads

4.1.2.

Solucin al problema o

Porque el nuevo quad va a localizarse en una zona local, se propone utilizar una esfera centrada en eb y de radio Fl lproj , siendo Fl un factor que permite aumentar ligeramente la distancia de proyeccin para tener un margen de seguridad. Utilizando o esta esfera, se puede obtener un subconjunto local Ms de la malla M en cada iteracin o del algoritmo detectando los elementos de M que se encuentran solapados por la esfera de localidad. Comprobar la restriccin de Delaunay sobre la malla reducida Ms reduce el o clculo de una iteracin, al evitar varias veces recorrer un n mero ms elevado de a o u a elementos. Una caracter stica de esta mejora de localidad es su naturaleza acelerativa con respecto al algoritmo original. El motivo es que contra ms elementos hay en la a malla, ms cantidad de ellos son evitados por la reduccin de la malla. De este a o modo, esta mejora se va haciendo ms efectiva cuanto ms avanza el algoritmo de a a poligonizacin. o Aun as Marching Quads sigue siendo un algoritmo decelerativo ya que, debido , a que la malla crece progresivamente en n mero de elementos, la reduccin de malla u o ha de realizar ms clculos. a a

4.2.

Crecimiento del algoritmo en base a la simetr del modelo a

Los modelos de personajes suelen tener una malla con una cierta simetr que, a si no es idntica, al menos es estructural. Por ejemplo, un personaje humanoide e b pedo, tiene una mitad estructural de un brazo, una pierna, medio tronco y media cabeza; y una mitad simtrica que se corresponde a la estructura anterior. e Por otra parte, el algoritmo de Marching Quads bsico genera el crecimiento a de la malla de forma aleatoria, comenzando desde el quad semilla y extendindose e 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. u

4.3. MARCHING QUADS ADAPTATIVO A LA CURVATURA DEL MODELO 63 En la seccin 2.3.3 se coment una alternativa al orden de procesamiento, la cual o o 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 direccin hacia o la siguiente arista frontera. El resultado de este cambio en el orden es la obtencin o de mejores mallas, en cuanto a la minimizacin de cracks se reere. o 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 del a modelo. Nuestra tcnica parte desde un quad semilla situado en el plano de simetr e a del modelo, y luego se a aden los nuevos quads dando prioridad las aristas frontera n en base a la cercan al plano de simetr Para ello se utiliza una cola de prioridad a a. para las aristas a procesar, cuyo orden se base en la cercan del punto medio de la a arista con su proyeccin en el plano de simetr o a. Este algoritmo basado en simetr permite empezar la construccin de quads en a o el plano de simetr generando una malla mejor estructurada. Progresivamente se a va cerrando la malla en zonas ms alejadas de la simetr obteniendo cracks en estas a a 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 es un a, requisito de esta mejora que el quad inicial se encuentre situado en dicho plano y con orientacin paralela a l. El algoritmo que se detall en la seccin 3.4 para o e o o localizar el quad semilla contempla estos requisitos.

4.3.

Marching Quads adaptativo a la curvatura del modelo


Anlisis del problema a

4.3.1.

Para que el algoritmo bsico de Marching Quads tenga una resolucin acorde al a o modelo, y no se pierdan caracter sticas topolgicas en zonas de alta curvatura, la o distancia constante de proyeccin lproj , y en denitiva el tama o de los quads, se o n dene en base a la esfera de menor tama o. De este modo, los pol n gonos de la malla resultante se ajustan a una resolucin correcta para la zona de mxima curvatura o a

64 del modelo.

Cap tulo 4. Mejoras en Marching Quads

Sin embargo, en modelos con una estructura muy compleja donde las primitivas impl citas ms peque as dieren considerablemente de las ms grandes, la resolucin a n a o de la malla poligonal se hace demasiado densa por estar el tama o de quad ajustado n a la esfera de menor tama o (ver ejemplo superior de la imagen 5.7). Adems, la gran n a cantidad de pol gonos que se generan en este tipo de modelos provoca una notable ralentizacin del algoritmo, debido a que la restriccin de Delaunay progresivamente o o realiza ms clculos por computar mayor n mero de elementos en la malla. Incluso, a a u esta ralentizacin es signicativa utilizando la mejora acelerativa de simplicacin o o de malla local detallada en la seccin 4.1. o Se puede pensar en aumentar el tama o de quad para disminuir el n mero de n u pol gonos del modelo, por ejemplo calculando el factor de resolucin en base al o tama o medio de las esferas. Aunque esto es correcto, y permitir disminuir el n a tiempo de clculo obteniendo una resolucin acorde al modelo, se poligonizar a o an mal las zonas del modelo con alta curvatura, pudindose incluso recortar partes del e mismo.

4.3.2.

Algoritmo adaptativo

Adaptacin de la proyeccin a la curvatura o o Se propone el uso una distancia de proyeccin lproj variable, la cual se dene o acorde a la curvatura local de la supercie, idea que ya fue desarrollada por Akkouche y Galin en [AG01] para ser utilizada en el algoritmo de Marching Triangles. Adaptar la distancia de proyeccin permite generar quads de tama o menor en zonas de alta o n curvatura para evitar perder detalles del modelo, y generar quads de mayor tama o n 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 clculo de la curvatura de la supercie nosotros proponemos utilizar a el tama o de la esfera, ya que el tama o de sta es proporcional a la curvatura de n n e su supercie. La distancia de proyeccin lproj puede ser calculada en base al radio o de la esfera impl cita local, de modo que a mayor radio la distancia de proyeccin o se decremente.

4.3. MARCHING QUADS ADAPTATIVO A LA CURVATURA DEL MODELO 65 Clculo de la proporcin en el quad inicial a o A la hora de crear el quad inicial, su tama o es escogido de manera proporn cional al tama o de la primitiva impl n cita donde est situado. El tama o del quad a n inicial es escogido por el usuario mediante el factor de resolucin, el cual indica o aproximadamente el tama o del quad con respecto a la curvatura (tama o de su n n esfera). Para que el resto de quads mantengan una proporcin similar al quad semilla o entre la curvatura y el tama o de quad, se ha de calcular un factor de proporcin n o que relacione el tama o del quad inicial con el tama o de la esfera impl n n cita donde se sit a. u

Tama o del quad inicial En primer lugar se calcula una medida del tama o del n n quad inicial como la distancia media de los lados del pol gono,ya que la proyeccin o se basa en esa longitud. IQsize =
l1 +l2 +l3 +l4 , 4

donde li es la longitud de cada arista del quad.

Curvatura en el quad inicial A continuacin, se calcula el valor de la curvatura o de la supercie en el quad inicial, como una media de los radios de las primitivas esfricas que se corresponden a cada uno de los cuatro vrtices del quad inicial. e e ISsize =
Sv1 +Sv2 +Sv3 +Sv4 , 4

donde Svi se corresponde con el tama o de la primitiva n

en el vrtice i. e

Factor de proporcin El factor de proporcin es una relacin entre el tama o o o o n del quad inicial con respecto a la curvatura de dicho quad. FQsize =
IQsize ISsize

Clculo de la proyeccin para los nuevos quads a o El algoritmo de Marching Quads adaptativo, en vez de proyectar los nuevos puntos una distancia constante lproj como en el algoritmo bsico, esta distancia ha a de recalcularse en cada paso del algoritmo utilizando la curvatura local. Cmo no o

66

Cap tulo 4. Mejoras en Marching Quads

puede ser anticipada la curvatura en el punto destino de la proyeccin, se estima la o curvatura utilizando la del origen de la proyeccin, el quad frontera Qb . o La curvatura del quad Qb es calculada del mismo modo que ISsize , como una media de los radios de las primitivas impl citas de cada vrtice. Multiplicando este e valor por el factor de proporcin, se obtiene el tama o de un lado de quad proporo n cional a la curvatura de la zona, y por tanto ste es el valor lproj al que se desea e ajustar el nuevo quad.

Cap tulo 5 Resultados experimentales


En este cap tulo se mostrarn algunos de los resultados que se han obtenido con el a poligonizador Marching Quads que se presenta en este documento, y el cual permite convertir a malla poligonal de quads, modelos de supercies impl citas denidas como un conjunto de esferas. En algunas imgenes, el modelo impl a cito del modelo es mostrado para ser comparado con la malla poligonal. Estas visualizaciones impl citas se han obtenido dibujando cada primitiva esfrica mediante una aproximacin poligonal de alta resolucin e o o generada mediante OpenGL. Los quads resultantes en la malla poligonal son visualizados en color amarillo anaranjado, dibujndose en color azul sus caras traseras para permitir localizar a agujeros en la malla. Los tringulos que genera el algoritmo de cierre de cracks a son visualizados en color verde claro para poder distinguir entre ambos tipos de pol gonos1 . 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 imgenes que se muestran en esta seccin muestran varios datos sobre el moa o delo. Se muestra un valor aproximado del n mero de pol u gonos que se han generado en la malla poligonal que, en caso de mallas con cracks se corresponden exclusivaEn escala de grises los tringulos y las caras traseras se visualizan de un tono ms claro que a a los quads
1

67

68

Cap tulo 5. Resultados experimentales


2

mente con quads. Adems, se muestra el tiempo de generacin a o

de la malla por el

poligonizador, excluyendo el algoritmo de cierre de cracks. Adems, se muestra un a factor de tama o de quad que permite denir la resolucin de la malla, y el cual n o se detallar ms adelante. En los modelos impl a a citos se muestran la cantidad de primitivas esfricas que contienen. e Este cap tulo esta dividido en dos partes: una primera donde se expondrn resula tados del poligonizador en modelos bsicos, para analizar su funcionamiento y el de a sus mejoras; y una segunda parte donde se mostrarn resultados aplicado a modelos a complejos.

5.1.
5.1.1.
Esfera

Caracter sticas de Marching Quads


Algoritmo bsico a

La prueba ms bsica del algoritmo es la realizada para un modelo impl a a cito de una unica primitiva, la esfera, ya que se corresponde con el volumen tridimensional ms bsico y simtrico. a a e La gura 5.1 muestra la malla poligonal generada para la esfera, y su visualizacin o en facetas, del modelo de esfera tras aplicar el algoritmo de poligonizacin. Adems, o a se muestra el resultado de la misma malla tras aplicar el algoritmo de cierre de cracks. Ntese como ste ultimo ejemplo genera algunos pol o e gonos triangulares en las zonas que se encontraban con agujeros. Factor de tama o de quad n Un parmetro muy importante en el poligonizador Marching Quads es el factor a de resolucin de malla. Este valor permite denir el tama o de los quads de la malla o n en funcin al radio de una esfera, como un porcentaje del tama o de la misma. o n Para versiones no adaptativas el factor se aplica a la esfera de menor tama o para n no perder caracter sticas morfolgicas del modelo en zonas de alta curvatura. Por o
2

Se ha utilizado para las pruebas un Intel Core 2 T5600 1.83GHz

5.1. CARACTER ISTICAS DE MARCHING QUADS

69

ejemplo, un valor de 0.1 dene el tama o de los quads de la malla como un 10 % de n la longitud del radio de la esfera ms peque a. a n

Figura 5.1: Poligonizacin de una esfera utilizando Marching Quads bsico, antes o a (izquierda) y despus (derecha) de cerrar los cracks. e

Figura 5.2: Resultados de aplicar Marching Quads utilizando diferentes valores del factor de resolucin de malla. De izquierda a derecha valores de 3 % del radio de la o esfera, 6 % del radio y 8 % del radio. La gura 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 n 8 %. Puede apreciarse la variacin del tama o de los quads en los tres casos. o n

70

Cap tulo 5. Resultados experimentales

Se puede percibir que, a mayor n mero de pol u gonos generados, el tiempo de clculo crece de manera no lineal, 2.5 segundos 1500 pol a gonos frente a los 44 segundos de aproximadamente el doble de pol gonos. Esto es debido a que el algoritmo progresivamente ampl el n mero de quads de la malla. Como en cada iteracin del a u o algoritmo se ha de computar la restriccin de Delaunay para todos los elementos de o la malla, es obvio que el tiempo de clculo en cada iteracin ser mayor cuanto ms a o a a elementos contiene el modelo.

Cierre de cracks La gura 5.3 muestra ms detalladamente un ejemplo de cierre de cracks, donde a 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 ms deformes, y que partes del agujero es sellado en ocasiones utilizando a un pol gono triangular.

Modelo de 5 esferas La gura 5.4 muestra la malla obtenida tras aplicar el algoritmo sobre un modelo de cinco primitivas esfricas. Adems, se muestra la malla poligonal tras cerrar todos e a sus cracks.

5.1.2.

Mejora acelerativa del algoritmo

De las pruebas realizadas sobre el modelo de esfera y el modelo de cinco bolas, para una misma resolucin de malla de factor 3 % y 6 % respectivamente, se ha o obtenido la tabla 5.1 que permite comparar los tiempos de clculo del algoritmo a bsico con el algoritmo con mejora acelerativa. a Los resultados emp ricos muestran que la mejora permite casi triplicar la rapidez del algoritmo, siendo ms efectiva cuanto ms n mero de pol a a u gonos contiene el la malla nal.

5.1. CARACTER ISTICAS DE MARCHING QUADS

71

Figura 5.3: Comparacin de una malla poligonal con agujeros con respecto a la o misma malla tras aplicar el algoritmo de cierre de cracks.

Modelo esfera (Factor 3 %) 5 bolas (Factor 6 %)

MQ Bsico a 44 segundos 314 segundos

MQ con Aceleracin o 16,5 segundos 110 segundos

Aceleracin o X2,66 X2,85

Cuadro 5.1: Comparativa de tiempos del algoritmo de Marching Quads bsico , a con respecto al algoritmo con la mejora acelerativa. Se muestran resultados para el modelo de esfera y el modelo de cinco esferas.

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 bsico (imagen derecha) y malla que se a obtiene tras cerrar los cracks (imagen inferior izquierda).

5.1.3.

Mejora de quads ajustados a la simetr del modelo a

En este trabajo se ha presentado una alternativa de construccin de la malla en o la que los quad se ajusten a la simetr del modelo. Esta mejora alterna el orden a de procesamiento de las aristas para que la construccin de nuevos quads se realice o desde el plano de simetr La gura 5.5 muestra varios momentos del algoritmo en a. el modelo de cinco bolas donde puede observarse como la malla crece desde el plano de simetr hacia zonas ms alejadas. a a

5.1. CARACTER ISTICAS 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 Se observa que los quads se construyen desde el plano de simetr a. a del modelo. La gura 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

74

Cap tulo 5. Resultados experimentales

cercan al plano de simetr Ntese que el primer caso los quads estn generados a a. o a 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 penalizacin signicativa en el cmputo del modelo. o o

Genera ms pol a gonos, y por tanto minimiza el tama o de los cracks. n

5.1.4.

Mejora de quads adaptados a la curvatura de la supercie

Otras de las mejoras que se proponen en este trabajo es la de adaptar el tama o n de los quads a la curvatura local del modelo. Los dos primeros casos de la gura 5.7 permiten comparar la malla del modelo de cinco bolas obtenida con el algoritmo bsico, con respecto a la misma malla obtenida a 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 n n tama o. Por contra, en la malla obtenida de forma adaptativa, puede observarse que n el tama o de quad var en funcin del radio de la esfera impl n a o cita donde se sit a el u pol gono. Aunque la malla adaptativa genera menos pol gonos, la percepcin del modelo es o similar a la malla obtenida de forma no adaptativa. Adems, minimizar el n mero de a u pol gonos implica que el tiempo de cmputo sea mucho menor utilizando la mejora o adaptativa. La comparacin del segundo y tercer caso de la gura 5.7 permite demostrar o que, independientemente del factor de tama o de quad, los pol n gonos se adaptan el tama o a la curvatura y que lo que var es la resolucin general de la malla. n a o

5.1. CARACTER ISTICAS DE MARCHING QUADS

75

Figura 5.6: Comparativa, para el modelo de cinco esferas, entre malla obtenida con crecimiento aleatorio (Marching Quads bsico) y malla obtenida mediante Marching a Quads con mejora de crecimiento basado en simetr a.

76

Cap tulo 5. Resultados experimentales

Figura 5.7: Comparativa entre malla obtenida con el algoritmo bsico y malla obtea nida de forma adaptativa, para el modelo de cinco bolas.

5.2. RESULTADOS EN MODELOS IMPL ICITOS COMPLEJOS

77

5.2.

Resultados en modelos impl citos complejos

A continuacin se muestran varios resultados del poligonizador para modelos o complejos que contienen un n mero elevado de primitivas esfricas. Las pruebas se u e han realizado utilizando el algoritmo de poligonizacin Marching Quads incluyendo o la mejora acelerativa, el crecimiento de malla basado en simetr y la mejora que a permite adaptar el tama o de los quads a la curvatura del modelo. que incluye n las tres mejoras aplicado a modelos impl citos que contienen una gran cantidad de primitivas esfricas. Adems, a todos los ejemplos se les ha aplicado el algoritmo de e a cierre de cracks. La gura 5.8 muestra los resultados de un modelo de rbol de 693 esferas. La a gura 5.9 muestra los resultados para un modelo de humanoide de 1000 esferas y la gura 5.10 muestra otro humanoide en postura de agachado tambin de 1000 e esferas. Por ultimo, en la gura 5.11 se muestra un modelo de perro de 520 esferas.

78

Cap tulo 5. Resultados experimentales

Figura 5.8: P oligonizacin del modelo de rbol. Poligonizacin de modelo de rbol (693 esferas). o a o a Arriba se muestra el rbol con una resolucin de tama o de quad de 10 % del radio a o n de la esfera y abajo se muestra con resolucin de 20 %. o

5.2. RESULTADOS EN MODELOS IMPL ICITOS COMPLEJOS

79

Figura 5.9: Poligonizacin del modelo de humanoide (1000 esferas). A la izquierda o se muestra el modelo impl cito y las dos imgenes de la derecha muestran la malla a poligonal con una resolucin de tama o de quad de 20 % del radio de la esfera. o n

80

Cap tulo 5. Resultados experimentales

Figura 5.10: Poligonizacin del modelo de humanoide sentado (1000 esferas). A la o izquierda se muestra el modelo impl cito y las dos imgenes de la derecha muestran a el modelo poligonal con una resolucin de tama o de quad de 10 % del radio de la o n esfera.

5.2. RESULTADOS EN MODELOS IMPL ICITOS COMPLEJOS

81

Figura 5.11: Poligonizacin del modelo de perro (520 esferas). A la izquierda se o muestra el modelo impl cito y las dos imgenes de la derecha muestran el modelo a poligonal con una resolucin de tama o de quad de 15 % del radio de la esfera. o n

82

Cap tulo 5. Resultados experimentales

Cap tulo 6 Conclusiones y trabajos futuros


6.1.
6.1.1.

Conclusiones
Caracter sticas de Marching Quads

Como muestran los resultados presentes en el cap tulo anterior, el poligonizador de supercies impl citas permite obtener mallas de quads con las siguientes caracter sticas: En general, los quad que el algoritmo construye tienen una morfolog bastante a buena por la similitud que tienen con un cuadrado, que es el pol gono perfecto por su equilateralidad. La malla poligonal es una aproximacin muy el al modelo, ya que por una o parte todos los vrtices estn sobre la supercie del modelo, y por otra parte e a el tama o de los quads est ajustado a la curvatura de modo que se pierdan n a pocas caracter sticas morfolgicas del modelo. o Los tiempos de cmputo para la versin adaptativa son bastante aceptables o o para ser usado como preprocesado del sistema de creacin de personajes 3D o automtico. La mejora de aceleracin consigue decrementar considerablemena o te el tiempo de cmputo del algoritmo. Adems, sus efectos se incrementan o a cuanto ms compleja es la malla poligonal resultante, en cuanto al n mero de a u pol gonos que contiene. El crecimiento de los quads basado en simetr permite que, en general, los a 83

84

Cap tulo 6. Conclusiones y trabajos futuros

quad se encuentren orientados seg n la simetr del modelo, y adems que la u a a malla se encuentre mejor estructurada en zonas cercanas a al plano de simetr a, minimizando los cracks en el modelo. Adems, esta caracter a stica no inuye en el tiempo de procesado del algoritmo.

6.1.2.

Limitaciones

Pol gonos deformados en las zonas de cracks El algoritmo de poligonizacin Marching Quads trata de construir quads con o una morfolog cercana a la equilateralidad para que la calidad de la malla nal sea a 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 gura 5.3) permite cerrar correctamente todos los agujeros, aunque para ello se ve forzado a la construccin de pol o gonos algo deformes y algunos tringulos. A pesar de ello, a la calidad de la malla sigue manteniendo una correcta topolog Adems, modelos a. a de animacin dise ados con herramientas CAD por modeladores tambin incluyen o n e algunos pol gonos triangulares. Limitaciones en Marching Quads bsico a El algoritmo bsico, debido a su homogeneidad en el tama o de los pol a n 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 n n una malla con un n mero bastante elevado de pol u gonos. Esto es debido a que el tama o es escogido en base a la esfera ms peque a, lo que provoca que en las n a n zonas de supercies de menor curvatura (esferas grandes) se creen pol gonos demasiado peque os. Estos quads construidos en zonas planares, podr haber sido de n an un tama o superior sin que ello supusiese una notable perdida de delidad con el n modelo. En la gura 6.1 se muestra este problema en el modelo de rbol, donde los a extremos de las ra ces del rbol estn formados por primitivas muy peque as en a a n

6.1. CONCLUSIONES

85

comparacin con las primitivas de la copa del rbol. Esto provoca que todo el modelo o a contenga un tama o diminuto de quads. Adems, que la malla crezca excesivamente n a en cuanto a n mero de pol u gonos, tiene el inconveniente de que el algoritmo se hace muy pesado en cuanto a clculo, obtenindose el modelo en tiempos desorbitados. a e

Figura 6.1: Problema de poligonizacin no adaptativa en modelos complejos. El o tama o de quad es ajustado a la zona de mayor curvatura, resultando en un n mero n u de pol gonos excesivo, y un tiempo de clculo, excesivos. a Se podr pensar en utilizar un tama o basado en el tama o medio de las primia n n tivas. Aunque esto permitir obtener quads mayores que minimizaran el n mero de a u

86

Cap tulo 6. Conclusiones y trabajos futuros

pol gonos, y por tanto el tiempo de obtencin de la malla, tendr el inconveniente o a de que se perder muchas caracter an sticas morfolgicas del modelo, como ser un o a recorte en las ra del modelo de rbol. ces a Limitaciones en Marching Quads basado en simetr a La mejora de simetr obtiene mallas mejor estructuradas y orientadas con el a plano de simetr que comparndolas con malla de quads aleatorios (ver imagen 5.6). a a Esta caracter stica permite que la malla se deforme ms suavemente en sistemas de a animacin. o Sin embargo, la mejora de simetr no siempre obtiene quads correctamente a orientados en el modelo, ya que se da prioridad a las aristas seg n la cercan al u a plano de simetr antes que a la orientacin de stas. Este es el caso del ejemplo a o e inferior de la gura 5.8, donde el tronco del rbol no tiene bien orientados los quads. a Limitaciones en Marching Quads adaptativo La solucin al problema del algoritmo bsico de generacin de mallas con un alto o a o n mero de pol u gonos de peque o tama o, est en la mejora adaptativa presentada n n a en este trabajo, donde el tama o de los quads es adaptado a la zona local del n modelo. En la gura 5.8 puede observarse el mismo modelo de rbol que el de la a gura 6.1 pero obtenido de forma adaptativa. De este modo se obtiene una malla topolgicamente correcta con un n mero de pol o u gonos mucho menor, y por tanto en un tiempo mucho ms bajo. a Sin embargo, esta caracter stica adaptativa tiene una limitacin en modelos dono de hay cambios bruscos de grosor hacia una zona mucho ms estrecha. En estos a casos, el algoritmo puede llegar a recortar esta zona estrecha. La gura 6.2 muestra los modelos de humanoide sentado y de perro, los cuales se presentaron en las guras 5.10 y 5.11, donde se muestran zonas estrechas recortadas por usarse una resolucin de tama o de quad alto. o n El ra de este problema reside en la anticipacin del algoritmo adaptativo, ya z o que la curvatura es anticipada mediante el tama o quad frontera donde se pretende n anexar el nuevo quad. En zonas donde el quad frontera se encuentra en una esfera

6.1. CONCLUSIONES

87

de tama o mucho mayor a la esfera donde se van a proyectar los nuevos vrtices, el n e quad generado puede ser que no sea capaz de alcanzar la supercie impl cita, siendo descartado (ver caso (a) de la gura 6.4). El motivo de que no se pueda encontrar puntos sobre la supercie impl cita en zonas muy estrechas, es debido a que se busca el corte con la supercie impl cita se busca en el plano perpendicular a la arista frontera eb (ver seccin 3.3). Por tanto, o la circunferencia donde se buscan los puntos cercanos no corta a la supercie en la zona estrecha.

Una posible solucin es la de dar ms resolucin a la malla decrementando o a o el factor de tama o de quad, para facilitar al algoritmo que alcance la supercie n impl cita en zonas muy estrechas. Este es el caso de los modelos de humanoide sentado y perro de las guras 5.10 y 5.11, donde se pudo obtener una malla completa del modelo incrementando la resolucin general de la malla. o Sin embargo, pueden encontrarse modelos donde el algoritmo sea incapaz de obtener la malla completa, o si fuese posible, entonces se generar en tiempos de an cmputo alto. Este es el caso de un modelo de perro alternativo, mostrado en la o gura 6.3, del cual no se ha podido obtener una malla completa utilizando un factor de 10 % que genera un numero de pol gonos bastante elevado (aproximadamente 20000).

6.1.3.

Comparacin con otros algoritmos o

La gura 2.13 muestra una comparacin de la malla de un modelo de esfera pao ra el algoritmo de Marching Cubes, Marching Triangles y Marching Quads. Puede observarse que el algoritmo de Marching Cubes genera una gran cantidad de pol gonos, y adems que stos no preservan una correcta topolog de la malla al ser muy a e a deformados. Sin embargo, los algoritmos de Marching Triangles y Marching Quads, por estar basado en la triangulacin de Delaunay [Del34], generan pol o gonos que son estructuralmente ms regulares a lo largo de la malla, con la diferencia que Marching a Quads genera pol gonos cuadrangulares.

88

Cap tulo 6. Conclusiones y trabajos futuros

Figura 6.2: Problema de recorte de zonas estrechas de malla en Marching Quads adaptativo. A la izquierda el modelo de humanoide sentado tiene los brazos recortados debido a la estrechez del hombro. A la derecha, las orejas del modelo de perro aparecen cortadas.

La tabla 6.1 muestra una comparacin del n mero de pol o u gonos que se generan en cada algoritmo. Se observa que Marching Triangles y Marching Quads, al mantener una homogeneidad en la forma y tama o de los pol n gonos el n mero de ellos es u mucho ms bajo que el de Marching Cubes. a

Algoritmo Marching Cubes Marching Triangles Marching Quads

Tiempo (seg) 12 4 0,66

Pol gonos 11272 1498 1379

Cuadro 6.1: Comparativa de tiempos y n meros de pol u gonos del algoritmo de Marching Cubes, Marching Triangles y Marching Quads para el modelo de esfera.

6.1. CONCLUSIONES

89

Figura 6.3: Modelo de perro alternativo que contiene cambios bruscos de grosor. Con una resolucin de tama o de quad de 25 % una oreja, tres patas y el rabo del o n perro aparecen recortadas. Subiendo la resolucin de la malla bajando el tama o de o n quad a 10 %, una oreja y dos patas se encuentran recortadas.

La tabla tambin muestra una comparativa de tiempos. Aunque esta compae racin no es signicativa, ya que se han utilizado sistemas heterogneos para la o e obtencin de tiempos (SUN Sparc 10 para Marching Cubes y Marching Triangles o y Intel Core 2 T5600 1.83GHz para Marching Quads), el algoritmo que se ha propuesto en este trabajo parece que trabaja en tiempos aceptables para ser usado en sistemas interactivos.

90

Cap tulo 6. Conclusiones y trabajos futuros

6.1.4.

Otras aplicaciones del algoritmo

Aunque este algoritmo ha sido dise ado para ser implementado en el sistema de n generacin automtica de personajes 3D, el poligonizador Marching Quads puede o a perfectamente ser implementado en otros sistemas. En estos casos, la b squeda del u punto ms cercano sobre la supercie y la b squeda del quad inicial deben de ser a u modicadas para adaptarse al tipo de supercie impl cita que utiliza el sistema.

6.2.

Trabajos futuros

A partir de este trabajo se pueden abrir diversas l neas de investigacin que o permitan solventar algunos de los inconvenientes que el algoritmo presenta, y a adir n o mejorar algunas de sus caracter sticas.

6.2.1.

Mejora adaptativa

Anlisis del problema a El problema ms grave que presenta el algoritmo adaptativo es el de recorte en a algunas zonas de los modelos que se ha detallado en la seccin 6.1.2. Esta limitacin o o es debida a que la proyeccin para construir el nuevo quad hacia en zonas del modelo o con cambios bruscos en el tama o de las esferas, a veces es incapaz de localizar zona n de supercie. Cuando se pasa de una zona gruesa a una estrecha, los pol gonos suelen tender a cerrarse. Por contra, el paso de una zona estrecha a una ms gruesa, tiende a a abrir los quads. Este efecto puede observarse en la gura 1.3, donde los quads de las esferas modeladas con la herramienta Autodesk Maya tienden a cerrarse cuanto ms cerca de los polos se sit an. a u Posible solucin o Una solucin a este problema puede ser el realizar una primera proyeccin Ps que o o permita sondear el tama o de la primitiva esfrica destino. A continuacin, sabiendo n e o como cambia la curvatura de forma local, se puede escoger el tama o del nuevo quad n

6.2. TRABAJOS FUTUROS

91

utilizando una distancia de proyeccin que pondere los tama os de las primitivas o n del origen y del destino. Adems, atendiendo a la caracter a stica de que los quad tienden a cerrarse o abrirse seg n el cambio de grosor en el modelo, ser interesante poder modicar u a levemente la inclinacin del plano donde se proyectan los nuevos puntos, seg n el o u sondeo indique que el modelo se hace ms o menos grueso. Esto permitir anticipar, a a y adaptar la morfolog del quad al cambio de grosor del modelo. a Otra forma de anticipar la inclinacin de los planos es realizar un primer sondeo o de la inclinacin del plano. Para ello se localizar una aproximacin de la supero a o cie impl cita utilizando la direccin de la arista eb para obtener un punto Psi . la o inclinacin del plano donde situar la circunferencia que permite localizar los puntos o cercanos sobre la supercie impl cita, es la que contiene al vector que une el punto Psi con el vrtice de eb desde el que se proyect. e o

solucin de forma grca La gura 6.4 muestra grcamente esta solucin para o a a o una supercie impl cita que se estrecha. En (a) se muestra el motivo de recorte de zonas estrechas. El punto cercano sobre la supercie impl cita no puede localizarse debido a que el plano de la circunferencia no corta a la supercie impl cita (en la direccin hacia la proyeccin) quedndose la proyeccin exterior al modelo. o o a o En (b) se muestra la solucin que se propone para anticipar la curvatura en o el destino. Primero se proyecta la distancia lproj desde el medio de la arista para obtener el punto Ps y se calcula el tama o medio de las primitivas esfricas en ese n e punto de sondeo. Ponderando entre el tama o de la esfera en el quad Qb al que n pertenece la arista a computar eb y el tama o medio que se ha calculado en el Ps , n se calcula una nueva distancia de proyeccin lproj . o En (b) tambin se muestra la propuesta para anticipar la inclinacin del plano e o de la circunferencia para buscar el punto cercano sobre la supercie impl cita. Utilizando una recta paralela a la arista eb que pase por el punto Ps , se calcula un punto sobre la supercie impl cita Psi . La circunferencia para buscar el punto cercano ahora es situada sobre el plano que contiene al punto Psi y al vrtice de la arista eb que e se est computando. a

92

Cap tulo 6. Conclusiones y trabajos futuros

En (c) se muestra el resultado de utilizar la circunferencia en el nuevo plano que se ha anticipado, y utilizando el nuevo tama o de proyeccin. Obsrvese que de n o e esta forma se puede localizar un vrtice sobre la supercie impl e cita a una distancia adecuada.

Circumference lproj

Psi

Ps

lproj eb Implicit Surface eb Implicit Surface

Circumference eb Implicit Surface

(a)

(b)

(c)

Figura 6.4: (a) Problema del algoritmo adaptativo en zonas estrechas. La circunferencia de proyeccin no es capaz de encontrar un punto sobre la supercie. (b) o Proyectando un punto de sondeo Ps se puede anticipar el tama o de curvatura (esn fera) en el destino. Adems, se puede localizar un punto sobre la supercie Psi que a permita anticipar tambin la inclinacin del punto de proyeccin. (c) Utilizando e o o la nueva inclinacin y la distancia de proyeccin recalculada, se puede anticipar la o o estructura de un buen quad.

6.2.2.

Aceleracin por simetr o a

Otra mejora que puede a adirse al algoritmo es, basndose en la simetr compun a a, tar el algoritmo solamente en una de las mitades en las que el plano de simetr divide a al modelo. Un proceso a adido como ultimo paso del algoritmo, permitir clonar n a simtricamente la malla para a adir la otra mitad del modelo. e n Esta mejora reducir a la mitad el tiempo de procesado. Incluso se reducir a a ms si se tiene en cuenta que el tiempo de clculo del algoritmo de Marching Quads a a no es lineal, siendo mucho mayor cuanto ms pol a gonos contiene la malla.

6.2. TRABAJOS FUTUROS

93

6.2.3.

Mejora de orientacin de quads por simetr o a

Ya se describi en el apartado de limitaciones de la seccin 6.1.2 que los quads o o no siempre son capaces de orientarse con la simetr a. En este trabajo se da prioridad a la cercan de las aristas con el plano de a simetr para que se produzca un mejor mallado en esas zonas. Por contra, existe a otro ordenamiento de aristas basado en la orientacin de la arista con respecto al o plano, de modo que se de prioridad a las aristas paralelas al plano (incluso podr a pensarse dar prioridad tambin a las aristas perpendiculares, siendo la peor posible e las aristas con un ngulo de 45o ). Sin embargo, este ordenamiento genera una malla a similar a la producida por el algoritmo aleatorio, salvo que los quads se construyen mejor orientados. Una alternativa que podr dar mejores resultados podr ser mezclar ambos a a ordenamientos mediante una ponderacin entre la cercan al plano y la orientacin o a o de las aristas.

6.2.4.

Mejora en la b squeda del punto cercano a la superu cie

Si se observa la gura 3.5, el algoritmo de b squeda del punto cercano sobre la u supercie impl cita escoge un punto que, el algoritmo de Marching Quads descarta por tener orientacin opuesta. o Este problema podr haberse solventado si el algoritmo de b squeda del punto a u cercano hubiese detectado y anticipado que el punto tiene una mala orientacin, o proponiendo otros puntos sobre la supercie que corten a la circunferencia de proyeccin. De este modo, seg n se observa en el ejemplo se podr haber localizado o u a un punto de corte en la zona correcta de la supercie, el cual hubiese permitido continuar el crecimiento de la malla correctamente.

6.2.5.

Remallado en zonas de mallas enfrentadas

En el algoritmo de edge-spinning de Cermk y Skla [CS04], tal y como se a a coment en la seccin 2.2.3, ambos autores proponen una solucin cuando dos zonas o o o

94

Cap tulo 6. Conclusiones y trabajos futuros

de la malla se encuentran enfrentadas y han de ser cerradas. En vez de tratar de construir un nuevo pol gono que se ajuste a la zona de malla enfrentada para poder cerrar la malla, su idea es la de mover el vrtice que se solapa e a una zona intermedia. Basndose en esta idea se puede dise ar alg n algoritmo que, una vez detectado a n u que alg n vrtice de un nuevo quad se encuentra cerca de una zona existente de mau e lla, realizar un remallado de dicha zona para permitir cerrar la malla correctamente. Esto permitir minimizar, si no evitar, la aparicin de cracks en la malla, y adems a o a mejorar la calidad de la malla, ya que el responsable de producir los peores quads a es el algoritmo que cierra los cracks.

6.2.6.

Remallado en zonas de cracks

Los pol gonos de peor aspecto son los que se generan debido al algoritmo de cierre de cracks. Esto se debe a que este algoritmo utiliza los vrtices del crack para poder e crear los nuevos pol gonos, vindose forzado en ocasiones a la creacin de algunos e o deformados. Podr mejorarse este algoritmo de cierre evitando la construccin de pol a o gonos con una mala estructura morfolgica permitiendo modicar la posicin de los vrtices o o e del crack. Esto implicar un remallado de la vecindad del crack para no perjudicar a a los quads ya existentes. Adems, los vrtices que cambien de lugar han de ser a e ajustados a la supercie impl cita por alg n algoritmo que permita localizar el punto u cercano a la supercie.

Bibliograf a
[3Ds10] Autodesk 3d max studio. http://www.autodesk.es, Mayo 2010. [AG01] Samir Akkouche and Eric Galin. Adaptive implicit surface polygonization using marching triangles. Comput. Graph. Forum, 20(2):67 80, 2001. [BcBB+ 97] Jules Bloomenthal, chandrajit Bajaj, Jim Blinn, Marie-Paule CaniGascuel, Alyn Rockwood, Brian Wyvill, and Geo Wyvill. Introduction to Implicit Surfaces. Morgan Kaufmann, 1997. [Blo88] Jules Bloomenthal. Polygonization of implicit surfaces. Computer Aided Geometric Design, 5(4):341355, 1988. [BW90] Jules Bloomenthal and Brian Wyvill. Interactive techniques for implicit modeling. In Symposium on Interactive 3D Graphics, pages 109 116, 1990. [CS04] Martin Cermk and Vclav Skala. Adaptive edge spinning algoa a rithm for poligonization of implicit surfaces. In Computer Graphics International, pages 3643. IEEE Computer Society, 2004. [DC04] Guillaume Dewaele and Marie-Paule Cani. Interactive global and local deformations for virtual clay. Graph. Models, 66(6):352369, November 2004. Special Issue: Pacic Graphics 2003. [Del34] Boris Delaunay. Sur la sphere vide. a la mmoire de georges voronoi. e In Bulletin of Academy of Sciences of the USSR, pages 793800, 1934. 95

96

BIBLIOGRAF IA

[dFdMGTV92] Luiz Henrique de Figueiredo, Jonas de Miranda Gomez, Demetri Terzopoulos, and Luiz Velho. Physically-based methods for polygonization of implicit surfaces. In Graphics Interface92, pages 250 257, Vancouver, Canada, 1992. [DTG96] Mathieu Desbrun, Nicolas Tsingos, and Marie-Paule Gascuel. Adaptive sampling of implicit surfaces for interactive modelling and animation. Comput. Graph. Forum, 15(5):319325, 1996. [ecl10] Entorno de desarrollo eclipse. http://www.eclipse.org/, Mayo 2010. [FCG01] Eric Ferley, Marie-Paule Cani, and Jean-Dominique Gascuel. Resolution adaptive volume sculpting. Graph. Models, 63(6):459478, November 2001. Special Issue on Volume Modelling. [FDB07] Marc Fournier, Jean-Michel Dischler, and Dominique Bechmann. A new vector eld distance transform and its application to mesh processing from 3d scanned data. The Visual Computer, 23(9-11):915 924, 2007. [Fou09] Marc Fournier. Surface reconstruction: An improved marching triangle algorithm for scalar and vector implicit eld representations. In SIBGRAPI, pages 7279. IEEE Computer Society, 2009. [Geo10] Visor de escenas 3d geomviewer. http://www.geomview.org/, Mayo 2010. [Har98] Erich Hartmann. A marching method for the triangulation of surfaces. The Visual Computer, 14(3):95108, 1998. [HIIT97] A. Hilton, J. Illingworth, Delaunay Implicit, and Surface Triangulation. Marching triangles: Delaunay implicit surface triangulation, 1997. [HSIW96a] A Hilton, A J Stoddart, J Illingworth, and T Windeatt. Marching triangles: Range image fusion for complex object modelling. In IEEE International Conference on Image Processing, pages 381384, 1996.

BIBLIOGRAF IA

97

[HSIW96b] Adrian Hilton, Andrew J. Stoddart, John Illingworth, and Terry Windeatt. Reliable surface reconstructiuon from multiple range images. In Bernard F. Buxton and Roberto Cipolla, editors, ECCV (1), volume 1064 of Lecture Notes in Computer Science, pages 117126. Springer, 1996. [LC87] William E. Lorensen and Harvey E. Cline. Marching cubes: A high resolution 3d surface construction algorithm. In Maureen C. Stone, editor, SIGGRAPH, pages 163169. ACM, 1987. [May10] Autodesk maya. http://www.autodesk.es, Mayo 2010. [MF02] Neil H. McCormick and Robert B. Fisher. Edge-constrained marching triangles. In 3DPVT, pages 348351. IEEE Computer Society, 2002. [Mik10] Paquete de herramientas tex: Miktex. http://miktex.org/, Mayo 2010. [MW97] Heinrich M ller and Michael Wehle. Visualization of implicit surfau ces using adaptive tetrahedrizations. Scientic Visualization Conference, 0:243, 1997. [Ope10] Librer grca opengl. http://www.opengl.org/, Mayo 2010. a a [Par02] Rick Parent. Computer Animation: Algorithms and Techniques. Morgan Kaufmann, 2002. [QGL10] Librer grca qglviewer. http://www.libqglviewer.com/, Mayo a a 2010. [RDI10a] Alec Rivers, Frdo Durand, and Takeo Igarashi. 3d modeling with e silhouettes. SIGGRAPH 2010, 2010. [RDI10b] Alec Rivers, Frdo Durand, and Takeo Igarashi. A user study compae ring 3d modeling with silhouettes and google sketchup. MIT CSAIL Technical Report. MIT-CSAIL-TR-2010-023, 2010. [Sof10] Autodesk softimage. http://usa.autodesk.com, Mayo 2010.

98

BIBLIOGRAF IA [tex10] Texlipse: plugin para eclipse. http://texlipse.sourceforge.net/, Mayo 2010. [Ubu10] Sistema operativo ubuntu linux. http://www.ubuntu.com/, Mayo 2010. [WH94] Andrew P. Witkin and Paul S. Heckbert. Using particles to sample and control implicit surfaces. In SIGGRAPH, pages 269277. ACM, 1994.

Das könnte Ihnen auch gefallen