Sei sulla pagina 1di 12

Traducido por: Orozco Lisset, Lpez Jair, Gmez Kelwin, Laverde Yarilenis, Neuman Hernn.

El Algoritmo de Pivoteo de Bola para la Reconstruccin de Superficie


Fausto Bernardini Joshua Mittleman Holly Rushmeier Claudio Silva Gabriel Taubin
Resumen - El algoritmo de pivoteo de bola (APB) calcula una malla de tringulos interpolando una nube de puntos dada. Normalmente, los puntos son muestras de la superficie adquiridos con los anlisis de rango mltiple de un objeto. El principio del APB es muy sencillo: Tres puntos forman un tringulo si una bola de un radio p especificado por el usuario los toca sin contener cualquier otro punto. Comenzando con un tringulo semilla, la bola pivotea alrededor de un borde (es decir, que gira alrededor del borde mientras se mantiene en contacto con los extremos del borde) hasta que toca otro punto, formando otro tringulo. El proceso contina hasta que todas las aristas alcanzables hayan sido tratadas, y entonces comienza a partir de otro tringulo semilla, hasta que todos los puntos han sido considerados. Hemos aplicado el APB a conjuntos de datos de millones de puntos que representan el anlisis real de objetos complejos en 3D. La cantidad relativamente pequea de memoria requerida por el APB, su eficiencia de tiempo y la calidad de los resultados obtenidos se comparan favorablemente con las tcnicas existentes. Palabras Clave Escaneo 3D, reconstruccin de figuras, nube de puntos, rango de la imagen.

Fig. 1. Seccin de Michelangelos Florentine Pieta. Esta malla de tringulos 14M fue generada a partir de ms de 700 escaneos con el algoritmo de pivoteo de bola.

I. INTRODUCCIN
Los avances en hardware de adquisicin de datos 3D han facilitado el uso ms amplio del anlisis para documentar la geometra de objetos fsicos para fines de archivo o como un paso en el diseo de un nuevo producto. Una tpica tubera de adquisicin de datos 3D consta de los siguientes pasos (adaptado de [1]): Escaneo: Adquisicin de muestras de la superficie con un dispositivo de medicin, tal como un lector de lser o un sistema estereogrfico. Registro de datos: La alineacin de varios anlisis en un nico sistema de coordenadas. Integracin de datos: La interpolacin de las muestras medidas, o puntos derivados de las muestras medidas, con una representacin de superficie, por lo general una malla de tringulos. La conversin del modelo: Malla de decimacin/ optimizacin, adecuada con las representaciones de orden superior, etc. Este documento se centra en la fase de integracin de datos. Presentamos un nuevo mtodo para encontrar una malla de tringulos que interpole un conjunto desorganizado de puntos. La figura 1 muestra una vista en primer plano de una malla de triangulos de 14M obtenida por la ejecucin de nuestro algoritmo de cientos de anlisis del Michelangelos Florentine Piet. El modelo tom 30 minutos en calcularse en una PC Pentium II.
IBM T. J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598. email: {fausto, mittle, holly, taubing}@watson.ibm.com Claudio Silvas current address: AT&T Labs-Research, Shannon Laboratory, 180 Park Avenue, Florham Park, NJ 07932-0971. csilva@research.att.com

El mtodo crea dos supuestos de suavidad sobre las muestras que son vlidas para una amplia gama de tcnicas de adquisicin: que las muestras sean distribuidas sobre toda la superficie con una frecuencia espacial mayor que o igual a un cierto valor mnimo especificado por la aplicacin, y que una estimacin de la superficie normal est disponible para cada muestra medida.

A. Principales Contribuciones
El mtodo es conceptualmente simple. Comenzando con un tringulo semilla, que pivota una bola alrededor de cada arista en el lmite de la malla actual hasta que un nuevo punto es alcanzado por la bola. La arista y el punto define un triangulo nuevo, el cual es agregado a la malla, y el algoritmo considera una nueva frontera de aristas para pivotear. La malla resultante es un subconjunto mltiple de un alpha-shape [2] del conjunto de puntos. Algunas de las propiedades agradables de alpha-shape pueden ser tambin probadas por nuestra reconstruccin. El algoritmo de pivoteo de bola (APB por sus siglas) es eficiente en trminos de tiempo de ejecucin y requerimientos de almacenamiento. Se mostr el rendimiento en tiempo lineal en grupos de datos que consisten en millones de muestras de entrada. Ha sido implementado en una forma que no requiere todos los datos de entrada para ser cargado en memoria simultneamente. La malla de tringulos resultante es guardada incrementalmente para almacenamiento externo para su clculo, y no usa ninguna memoria adicional.

El APB demostr suficiente robustez para manejar la presencia de ruido en el escaneo real de datos 3D. Fue probado en varios grandes conjuntos de datos escaneados, y en particular fue usado para crear los modelos de Michelangelos Florentine Pieta [3] a partir de cientos de escneres adquiridos con un sensor de luz estructurada (Visual Interfaces Virtuoso ShapeCamera). El resto del documento est estructurado de la siguiente manera: en la seccin II se define el problema y se discute el trabajo relacionado. En la seccin III se discuten los conceptos que subyacen del Algoritmo de Pivoteo de Bola, y en la seccin IV se describe el algoritmo en detalle, y se presentan los resultados en la seccin V, y se discuten los problemas abiertos y trabajo futuro en la seccin VI.

visin. Las estimaciones de los puntos de la superficie real son derivados usualmente por las muestras promedio a partir de anlisis redundantes. Estas estimaciones son luego conectadas en una malla de tringulos. La mayora de los mtodos de estimacin de puntos de superficie depende de las estructuras de datos que facilitan la construccin de la malla. Dos clases de mtodos han sido utilizados con xito para grandes conjuntos de datos, ambos asumen un error de registro insignificante y calcular las estimaciones para corregir el error de la lnea de visin. La primera de estas clases son los mtodos volumtricos, como el establecido por Curless y Levoy [6]. En estos mtodos, las mallas alineadas individuales son utilizadas para calcular una funcin distancia con signo sobre una rejilla de volumen que abarca el objeto. La estimacin de los puntos de la superficie son calculados como los puntos en la red donde la funcin distancia es cero. La estructura del volumen entonces facilita la construccin de una malla utilizando el algoritmo marching cubes [7]. La segunda clase de mtodos, son mtodos de unin de mallas, tales como la tcnica de Soucy y Laurendeau [8]. Disjuntos de campo de altura de mallas son unidos en una sola superficie. Las regiones disjuntas son definidas mediante la bsqueda de reas de superposicin de diferentes subconjuntos de un conjunto de anlisis. Estimacin de los puntos de la superficie de cada regin son calculados como promedios ponderados a partir del escaneo de superposicin. Los puntos estimados en cada regin se vuelven a triangular, y las mallas resultantes se suturan en una nica malla. Turk y Levoy desarrollaron un mtodo similar [9], que une los primeros puntos (o cierres) las mallas disjuntas y luego calcula estimados de los puntos de la superficie. Se observa que en ambas clases de mtodos, el mtodo de estimacin de puntos de superficie no necesita ser tan estrechamente relacionado con el mtodo para construir la malla final. En el enfoque volumtrico, una tcnica distinta como marching cubes podra ser utilizada para encontrar una malla de tringulos que pasa por los puntos de la superficie estimada. En los enfoques de unin de malla, una tcnica para encontrar una malla que conecte todos los puntos de superficie estimados podra ser utilizada en lugar de unir las mallas existentes. Lo ms importante, con un algoritmo eficiente para el clculo de una malla que une los puntos, cualquier mtodo para calcular los puntos de la superficie estimada podra ser utilizado, incluyendo aquellas que no imponen una estructura adicional de los datos y no tratan de registro y error en la lnea de visin por separado. Por ejemplo, se ha demostrado que la reduccin de errores en mallas individuales antes de la alineacin puede reducir el error de registro [10]. Estamos desarrollando un mtodo que mueve muestras dentro de los lmites conocidos de error del escner para conformar las mallas entre s ya que estn alineadas. Nuestra implementacin actual de este mtodo fue utilizado para preprocesar los datos mostrados en la seccin de resultados. El mtodo se describe en un artculo futuro. Finalmente, puede ser deseable encontrar una malla de interpolacin de los datos medidos incluso si contiene errores no compensados. La malla preliminar podra ser suavizada, limpiada, y decimada para su uso en la

II. ANTECEDENTES
En aos recientes se ha visto una proliferacin de equipos de escaneo y algoritmos para modelos sintetizados a partir de datos escaneados. Nos referimos al lector a dos revisiones recientes de la investigacin en el campo [4], [5]. En esta seccin nos centramos en el papel de los esquemas de mallado de interpolacin que pueden desempear en el escaneado de objetos, y por qu no se han utilizado en sistemas de escaneo prcticos.

A. Mallas de Interpolacin en los sistemas de escaneo


Se define el problema de escaneo: dado un objeto encontramos una representacin continua de la superficie del objeto que captura las caractersticas de una escala de longitud 2d o ms grande. El valor de d es impuesto por la aplicacin. La captura de las caractersticas de escala 2d requiere el muestreo de la superficie con una resolucin espacial d o menor. La superficie puede consistir de reas grandes que pueden ser bien aproximadas por mallas mucho ms dispersas; sin embargo en la ausencia de informacin a priori, necesitamos empezar con una resolucin de muestreo de d o menos para garantizar que ninguna caracterstica se pierda. Consideramos sistemas de adquisicin que producen conjuntos de rango de imgenes, es decir, las matrices de profundidades, cada uno de los cuales cubre un subconjunto de la superficie total. Porque son los campos de altura con la toma regular de muestras, imgenes de rango individual son malladas fcilmente. Las mallas individuales pueden ser utilizadas para calcular un estimado de la normal de la superficie por cada punto de muestra. Un sistema de adquisicin ideal sera retornar muestras situadas exactamente sobre la superficie del objeto. Cualquier sistema de medicin real introduce algunos errores. Sin embargo, si un sistema retorna muestras con un error que es ordenado de la magnitud menor que el tamao mnimo de caracterstica, el muestreo puede ser considerado como perfecto. Una superficie puede entonces ser reconstruida por la bsqueda de una malla de interpolacin sin operaciones adicionales en los datos medidos. La mayora de los sistemas de escaneo todava necesitan tener en cuenta el error de adquisicin. Hay dos fuentes de error: error en el registro, y error a lo largo de la lnea del sensor de

planificacin de las funciones. Una malla de interpolacin de los puntos medidos tambin se podra utilizar como un punto de partida para los puntos de consenso para calcular.

B. Estado del Arte para la interpolacin de las mallas


Las actuales tcnicas de interpolacin se dividen en dos categoras-la escultura-en base [11], [12], [4] y la regin de crecimiento [13], [14], [15], al igual que el APB. En los mtodos basados en la escultura, una tetraedralizacin de volumen se calcula a partir de los puntos de datos, por lo general la triangulacin de Delaunay en 3D. Los tetraedros son retirados entonces de la envolvente convexa para extraer la forma original. Los mtodos de la regin creciente comienzan con un tringulo de semillas, considera un nuevo punto y lo une a la frontera de la regin ya existente, y continua hasta que todos los puntos han sido considerados. La fuerza de la escultura basada en enfoques es que a menudo proporcionar garantas tericas para la calidad de la superficie resultante, por ejemplo que la topologa es correcta, y que la superficie converge a la superficie verdadera como la densidad de muestreo aumenta (ver por ejemplo [16], [17]). Sin embargo, el clculo de la triangulacin de Delaunay 3D requerida puede ser muy caro en trminos de tiempo y la memoria necesaria, y puede conducir a la inestabilidad numrica cuando se trata de conjuntos de datos de millones de puntos. El objetivo del APB es mantener los puntos fuertes de anteriores tcnicas de interpolacin en un mtodo que muestra la complejidad del tiempo lineal y la solidez de los datos escaneados reales.

La superficie reconstruida por el APB conserva algunas de las cualidades de alpha-shapes: Tiene garantas demostrables de reconstruccin bajo supuestos de muestreo determinados, y un significado geomtrico intuitivamente simple. Sin embargo, los 2-esqueletos de un alpha-shapes calculado a partir de un muestreo ruidoso de una variedad suave puede contener mltiples conexiones no variadas. Es no trivial para filtrar los componentes no deseados. Asimismo, en su formulacin original, alpha-shapes son calculados mediante la extraccin de un subconjunto de la triangulacin de Delaunay 3D del conjunto de puntos, una estructura de datos que no se calcula fcilmente para conjuntos de datos de millones de puntos. Con las hiptesis sobre la entrada indicada en la introduccin, el APB eficiente y slido calcula una variedad de subconjunto de un alphashape que es muy adecuado para esta aplicacin. En [16], las condiciones suficientes para la densidad de muestreo de una curva en el plano fueron derivados lo cual garantiza que la reconstruccin de un alpha-shape es homeomorfo a la variedad original y que se encuentra dentro de una distancia limitada. El teorema se puede extender fcilmente a las superficies (dicho aqu sin pruebas): Supongamos que, para la variedad de suavidad M el muestreo S satisface las siguientes propiedades: 1. La interseccin de cualquier bola de radio p con el manifold es un disco topolgico. 2. Cualquier bola de radio p centrado en el manifold contiene al menos un punto de muestra en su interior. La primera condicin garantiza que el radio de curvatura del colector es mayor que p, y que la bola p tambin puede pasar a travs de las cavidades y otras caractersticas cncavas sin mltiples contactos con la superficie. La segunda condicin nos dice que el muestreo es suficientemente denso que la bola puede pasar sobre los puntos de muestra, sin dejar huecos (ver figura 3 para ver ejemplos en 2D). El APB produce entonces una aproximacin T homeomorfa de la variedad diferenciable M. Tambin podemos definir un homeomorfismo h: T que la distancia || p - h(p) || < . M tal

III. SUPERFICICE DE RECONSTRUCIN Y PIVOTEO DE BOLA


El concepto principal que subyace en el algoritmo de pivoteo de bola es bastante simple. Permite que la variedad M sea la superficie de un objeto tridimensional y S un punto de muestreo de M. Vamos a suponer por ahora que S es lo suficientemente densa que una bola (una bola de radio) no se puede pasar a travs de la superficie, sin tocar los puntos de muestreo (ver figura 3 para un ejemplo 2D). Comenzamos colocando una bola en contacto con tres puntos de muestra. Se mantiene la bola en contacto con dos de estos puntos iniciales, se pivota la bola hasta que toque a otro punto, como se ilustra en la figura 2 (se dan ms detalles en la seccin IV-C). Se pivota alrededor de cada arista de la frontera de la malla actual. Tripletes de puntos que hacen contacto con la bola forman nuevos tringulos. El conjunto de tringulos formados, mientras que la pelota "pasa" sobre la superficie que constituye la malla de interpolacin. El APB est estrechamente relacionado con el alphashapes [18], [2]. De hecho, cada tringulo t calculado por el paso de la bola p, obviamente, tiene un pequeo vaco de bola bT abierta cuyo radio es menor que p (ver [2], pgina 50). As, el APB calcula un subconjunto de las 2-caras de las formas p de S. Estas caras son tambin un subconjunto de los 2-esqueletos de la triangulacin de Delaunay tridimensional del conjunto de puntos. Alpha shapes son una herramienta eficaz para el clculo de la "forma" de un conjunto de puntos.

En la prctica, a menudo deben hacer frente a menos que ideales muestreos. Cul es el comportamiento del algoritmo en estos casos? Consideremos el caso de los datos escaneados reales. Los problemas ms comunes son los puntos faltantes, densidad no uniforme, imperfectamente alineado a la superposicin de escaneos de rango, y el error del escner de la lnea de visin.1 El APB est diseado para procesar la salida de un preciso registro / algoritmo de conformidad (vase la seccin II), y no trata de promediar el ruido o los errores residuales de registro. No obstante, el APB es robusto en la presencia de datos imperfectos.
Algunos tipos de escneres tambin producen valores atpicos", los puntos que se encuentran lejos de la superficie real. Estos valores atpicos ocurren ms frecuentemente en las fronteras de imgenes de rango, o en la presencia de discontinuidades cortantes. La eliminacin de valores atpicos se hace mejor con un dispositivo dependiente de pre-procesamiento. El escner utilizado
1

Fig. 3 Algoritmo de pivoteo de bola en 2D. (a) Un crculo de pivote de radio de un punto a otro, conectndolos con las aristas. (b) Cuando la densidad de muestreo es demasiado baja, algunas de las aristas no se crearn, dejando huecos. (c) Cuando la curvatura de la variedad es mayor que 1/ , algunos de los puntos de muestra no sern alcanzados por la bola que pivotea, y sus caractersticas se perdern. para adquirir los datos presentados en la seccin de resultados no se ve afectada por este problema.

Se aumentaron los puntos de datos con las normales aproximadas de superficie calculada a partir de una serie de mapas para eliminar la ambigedad de los casos que se producen cuando se trata con la falta o datos ruidosos. Por ejemplo, si partes de la superficie no han sido analizadas, habr agujeros ms grandes que p en el muestreo. Usamos las normales de la superficie (para la cual asumimos orientacin hacia el exterior) para decidir la orientacin de la superficie. Por ejemplo, cuando se elige un tringulo semilla comprobamos que las normales de superficie en los tres vrtices son constantemente orientadas. Las reas de mayor densidad que p no presentan ningn problema. La bola de pivoteo seguir pasando sobre los puntos, formando pequeos tringulos. Si los datos son libre de ruido y p es menor que la curvatura local, todos los puntos sern interpolados. Lo ms probable, es que los puntos sean afectados por el ruido, y que algunos de los que se encuentran debajo de la superficie no sern tocados por la bola y no sern parte de la malla de reconstruida (vase la figura 4 (a)). Los puntos faltantes crean agujeros que no pueden ser ocupados por la bola giratoria. Cualquier tratamiento posterior del algoritmo para el llenado de agujeros podra ser empleado; en particular, el APB puede ser aplicado varias veces, con incrementos del radio de la bola, como se explica en la seccin IV-F. Sin embargo, es necesario para manejar posibles ambigedades que los datos faltantes pueden introducir. Cuando pivota alrededor de la frontera de la arista, la bola puede tocar un punto no utilizado situado cerca de la superficie. Una vez ms se uso las normales de la superficie para decidir si el punto tocado es vlido o no (vase la figura 4 (b)). Un tringulo se rechaza si el producto escalar de su normal con la normal de la superficie es negativo. La presencia de escaneos de rango superpuestos desalineados puede conducir a resultados pobres si el error de registro es similar al tamao de la bola de pivoteo. Los

Fig. 2 Operaciones de pivoteo de bola. Vase la seccin IV-C para ms detalles. La bola que pivotea est en contacto con los tres vrtices del tringulo = (i , j , o) cuya normal es n. La arista e(i, j) pivotante se encuentra en el eje z (perpendicular a la pgina y apunta hacia el espectador), con su punto medio m en el origen. El crculo si j o es la interseccin de la bola que pivotea con z = 0. El cuadro de coordenadas es tal que el centro ci j o de la bola se encuentra en el eje x positivo. Durante el pivoteo el radio de la bola permanece en contacto con los dos extremos de las aristas i , j, y es el centro que describe la trayectoria circular con un centro m de radio || cijo - m ||. En su movimiento pivotante la bola alcanza un nuevo punto de datos k. Sea sk la interseccin una esfera de radio centrada en k con z = 0. El centro ck de la bola pivotante cuando toca k es la interseccin de con sk encontrndose en el plano negativo de la lnea lk orientada.

componentes pequeos no deseados conectados situados cerca de la superficie principal sern formados, y la superficie principal afectado por el ruido de alta frecuencia (vase la figura 4 (c)). La estrategia de seleccin de semillas evita la creacin de un gran nmero de componentes pequeos. Un simple procesamiento posterior que elimina los componentes pequeos y el suavizado de la superficie [19] puede mejorar significativamente el resultado en estos casos, al menos estticamente. Independientemente de los defectos en los datos, el APB se garantiza para construir una variedad orientable. Hay que tener en cuenta que el APB siempre tratar de construir el manifold ms grande posible conectado desde un tringulo semilla dado. La eleccin de un valor adecuado para el radio p de la bola de pivoteo es tpicamente fcil. La actual estructura de luz o escneres de triangulacin lser producen muestreos muy densos, superior a los requerimientos de modo que la distancia entre muestras sea inferior a la mitad del tamao de las caractersticas de inters. El conocimiento de las caractersticas de densidad de muestreo del escner, y el tamao de la caracterstica que se quiere capturar, son suficientes para escoger un radio apropiado. Alternativamente, se podra analizar un pequeo subconjunto de los datos para calcular la densidad de puntos. Un muestro desigual puede surgir cuando se escanea una superficie compleja, con las regiones que se proyectan en reas pequeas en la direccin del escner. El mejor enfoque consiste en tomar escaneos adicionales con la perpendicular del escner para estas regiones, para obtener datos adicionales. Ntese sin embargo que el APB se puede aplicar varias veces, con radios de bola en aumento, para manejar densidades desiguales de muestreo, como se describe en la seccin IV-F.

El estado de congelacin se explica a continuacin, en el contexto de las extensiones fuera del ncleo. Mantener toda esta informacin con cada arista hace ms sencillo el pivote de la bola a su alrededor. La razn por la cual el frente es una coleccin de listas enlazadas, en lugar de solo una, es que como los pivotes de bola a lo largo de una arista, dependen de si tocan un punto de dato encontrado recientemente o uno utilizado anteriormente, en el frontal cambia la topologa. El APB se encarga de todos los casos con dos simples operadores topolgicos, unir y encolar, que aseguran que en cualquier momento, el frente es una coleccin de listas enlazadas.

Algoritmo APB(S, p)

IV. EL ALGORITMO DE PIVOTEO DE BOLA


El APB sigue el paradigma de avance frontal para construir incrementalmente una triangulacin de interpolacin. El APB toma como entrada una lista de los puntos de datos de las muestras de la superficie i, cada uno asociado con una normal ni (y otros atributos opcionales, tales como las coordenadas de textura) y un radio p de la bola. El algoritmo bsico funciona mediante la bsqueda de un tringulo de semilla (es decir, tres puntos de datos (i j k) tal que una bola de radio p los toca sin contener otro punto de datos), y aadiendo un tringulo en el momento de realizar la operacin de pivoteo de bola que se explic en la seccin III. El frente F se representa como una coleccin de listas enlazadas de aristas, e inicialmente se compone de un solo bucle que contiene las tres fronteras definidas por el primer tringulo semilla. Cada arista e(i, j) de la parte delantera, est representada por sus dos extremos (i j), el vrtice opuesto o, el centro ci j o de la bola que toca los tres puntos, y se enlaza a la arista anterior y la siguiente a lo largo en el mismo bucle de la parte frontal. Una arista puede estar activa, como frontera o congelada. Una arista activa es una que se utilizar para pivotar. Si no es posible para pivotar desde una arista, esta se marca como frontera.

Fig. 5. Esqueleto del algoritmo APB. Varias pruebas de errores necesarias han sido dejadas fuera para facilitar la lectura, tales como comprobar la orientacin de las aristas. Las aristas en el frente F se acceden generalmente por mantener una cola de aristas activas. La operacin de unin (join) aade dos aristas activas en el frente. La operacin de encolar (glue) elimina dos aristas del frente, y cambia la topologa del frente por separar un solo bucle en dos, o la combinacin de dos bucles en uno. Ver texto para ms detalles. La funcin de encontrar un tringulo semilla (nd_seed_triangle) devuelve un tringulo descubierto , el cual es usado para inicializar el frente.

El algoritmo bsico de APB se muestra en la figura 5. Ms abajo se detallan las funciones y estructuras de datos utilizadas. En particular, luego se describe una modificacin simple necesaria para el algoritmo bsico para soportar una ejecucin eficiente fuera de ncleo. Esto permite que APB triangule conjuntos de datos grandes con un uso de memoria mnima.

Fig. 4 Bola pivotante en la presencia de datos ruidosos. (a) Muestras de superficie de que se encuentran por "debajo" del nivel de la superficie, no son tocados por la bola que pivotea y permanecen aislados (y son desechados por el algoritmo). (b) Debido a la falta de datos, la bola pivotea alrededor de una arista hasta que toque una muestra que pertenece a una parte diferente de la superficie. Al comprobar que las normales del tringulo y los puntos de datos son consistentemente, se evita la generacin de un tringulo en este caso. (c) Las muestras ruidosas forman dos capas, con una distancia suficiente para permitir que el radio de la bola pase por ambas capas. Un falso componente es creado. Nuestra estrategia de seleccin de semillas evita la creacin de un gran nmero de estos pequeos componentes. Restantes se pueden quitar con un paso post-procesado simple. En todos los casos, el APB emite una variedad triangulada.

A. Consultas espaciales
Tanto ball_pivot como nd_seed_triangle (lneas 3 y 10 en la figura 5) requieren de bsqueda eficiente de subconjuntos de puntos contenidos en un pequeo vecindario espacial. Se implement esta consulta espacial utilizando una red regular de clulas cbicas, o pixeles volumtricos (voxel). Cada voxel tiene lados de tamao = 2. Los puntos de datos se almacenan en una lista, y la lista es organizada usando el algoritmo de ordenamiento bucket-sort de manera que los puntos que estn en el mismo voxel forman una lista secundaria contigua. Cada voxel almacena un puntero al principio de su lista secundaria de puntos (a la sub-lista siguiente si el voxel est vaco). Un voxel extra al final de la red almacena un puntero NULL. Para visitar todos los puntos en un voxel es suficiente para atravesar la lista desde el nodo al que apunta el voxel para apuntar al siguiente voxel. Dado un punto p se puede hallar fcilmente el voxel V que se encuentra dividiendo sus coordenadas por . Por lo general, es necesario buscar todos los puntos dentro de una distancia 2 desde p, los cuales son un subconjunto de todos los puntos contenidos en los 27 voxels adyacentes a V (incluida la V en s mismo). La red permite el acceso en tiempo constante a los puntos. Su tamao sera prohibitivo si se procesa un gran conjunto de datos en un solo paso; pero una aplicacin fuera del ncleo, que se describe en la seccin IV-E, puede procesar los datos en porciones manejables. El uso de memoria puede reducirse an ms, a expensas de un acceso ms lento, utilizando las representaciones ms compactas, tales como la estructura de datos en una matriz esparcida.

Elegir cualquier punto que an no se haya utilizado por la triangulacin reconstruida. Considerar todos los pares de puntos a , b en su vecindario en orden de distancia desde . Construir tringulos semilla potenciales , a , b. Comprobar que la normal del tringulo es consistente con las normales de los vrtices, es decir, apuntando hacia afuera. Probar que una bola de radio con centro en el semiespacio exterior que toca los tres vrtices y no contiene otro punto de dato. Parar cuando un tringulo semilla vlido ha sido encontrado. En presencia de ruido, datos incompletos, es importante seleccionar una eficiente estrategia de bsqueda de semillas. Dada una semilla vlida, el algoritmo genera el componente conectado ms grande posible que contiene la semilla. Puntos ruidosos situados a una distancia ligeramente mayor que 2 desde la triangulacin reconstruida podran formar otros tringulos de semillas potenciales, que conducen a la construccin de pequeos conjuntos de tringulos situadas cerca de la superficie principal (vase la figura 4 (c)). Estos componentes pequeos son un artefacto del ruido presente en los datos, y son por lo general no deseados. Mientras que son fciles de eliminar por el post-filtrado de los datos, una cantidad significativa de recursos computacionales se desperdicia en la construccin de ellos. Sin embargo, se puede observar lo siguiente: Si nos limitamos a considerar slo un punto de datos por cada voxel como candidato vrtice de un tringulo de las semillas, no podemos dejar que los componentes abarquen un volumen ms grande que unos pocos voxels. Adems, para un voxel dado, se considera la media normal n de los puntos que estn dentro. Esto se aproxima a la normal, de la normal de la superficie en esa regin. Como queremos que nuestra bola pase "sobre" la superficie, es conveniente considerar en

B. Seleccin de semilla
Dados los datos que cumplen las condiciones del teorema de la reconstruccin de la seccin III, una semilla por componente conectada es suficiente para reconstruir toda la variedad (funcin nd_seed_triangle lnea 10 figura 5). Una manera sencilla de encontrar una semilla vlida es:

Fig. 6. Una sencilla operacin de unin aade un tringulo removiendo aristas e(i, j) del frente, y se aaden dos aristas nuevas e(i, k), e(k, i) .

primer lugar los puntos cuya proyeccin sobre n es grande y positiva. Por lo tanto, simplemente se mantiene una lista de voxels no-vacos. Buscamos estos voxels para los tringulos de semillas vlidos, y cuando uno es encontrado, comenzamos a construir una triangulacin usando las operaciones de pivoteo. Cuando no es posible pivotar ms, continuamos la bsqueda de un tringulo semilla de donde nos habamos detenido, saltando todos los voxels que contienen un punto que ahora es parte de la triangulacin. Cuando no hay ms semillas que se puedan encontrar, el algoritmo se detiene.

Fig. 8. Ejemplo de una secuencia de operaciones de unir y encolar. (a) Un nuevo tringulo se aade a la parte frontal existente. Los cuatro vrtices del frente en el interior del crculo de trazos, todos representan un solo punto de datos. (b) Una unin elimina una arista y crea dos aristas delanteras nueva, coincidentes con las existentes. (c), (d) Dos operaciones para encolar quitar pares coincidentes de aristas. (d) tambin se muestra el tringulo sque aadi. (e) Slo uno de las aristas creadas por esta unin es coincidente con una arista existente. (f) La operacin de cola elimina el par duplicado.

C. Pivoteo de Bola
Una operacin de pivoteo (lnea 3 en la figura 5) comienza con un tringulo = (i , j , o) y una bola de radio que toque los tres vrtices. Sin prdida de generalidad, se asume que la arista e(i, j) es la arista de pivoteo. La bola en su posicin inicial (deja que ci j o sea el centro) no contiene ningn punto de datos, ya sea porque es un tringulo de semillas, o porque fue calculado mediante una operacin de pivoteo anterior. El pivoteo es en principio un movimiento continuo de la bola, durante el cual la bola se mantiene en contacto con los dos extremos de arista e(i, j), como se ilustra en la figura 2. Debido a este contacto, el movimiento est restringido como sigue: El centro c i j o de la bola describe un crculo que se encuentra sobre el plano perpendicular a e(i,j) y a travs de su punto medio m = (j + i). El centro de esta trayectoria circular es m y su radio es || cijo - m ||. Durante este movimiento, la bola puede tocar otro punto k. Si no hay puntos que sea tocado, entonces la arista es una arista de frontera. De lo contrario, el tringulo (i , k , j) es un tringulo vlido nuevo, y la bola en su posicin final no contiene ningn otro punto, siendo as una bola de partida vlida para la siguiente operacin de pivoteo.

En la prctica encontramos k como sigue. Consideramos que todos los puntos en una 2 vecindad de m. Para cada punto de dicho x, calculamos el centro cx de la bola que toca i , j y x, si dicha bola existe. Cada cx que se encuentra en la trayectoria circular en tor no a m, y puede ser calculado por la interseccin de una esfera de radio centrada en x con el crculo . De estos puntos cx se selecciona uno que sea el primero a lo largo de la trayectoria . Se presenta el primer punto que se toca y el centro de la bola correspondiente. Las pruebas triviales de rechazo se pueden aadir para acelerar la bsqueda del primer punto que toca.

D. Operaciones de unin y de cola


Estas dos operaciones generan tringulos aadiendo y moviendo las aristas de los bucles delanteros (lneas 5-7 en la figura 5). La operacin ms simple es la unin, que se utiliza cuando los pivotes de bola alrededor de la arista e(i, j) tocando un vrtice no usado k (es decir, k es un vrtice que todava no forma parte de la malla). En este caso, la salida del tringulo tringulo (i , k , j), y localmente modificar el frente mediante la eliminacin e(i, j) y aadiendo las dos aristas e(i, k) y e(k, j) (vase el grfico 6). Cuando k es ya parte de la malla, uno de los dos casos puede surgir:

Fig. 7. Una operacin de cola es aplica cuando la unin crea una aristas idnticas a una ya existente, pero con orientacin opuesta. Las dos aristas que coinciden se remueven, y por lo tanto se ajusta la parte del frente. Existen cuatro casos posibles: (a) Las dos aristas forman un bucle. El bucle se elimina de la parte delantera. (b) Las dos aristas pertenecen al mismo bucle y son adyacentes. Las aristas se eliminan y se acorta el bucle. (c) Las aristas no son adyacentes, y pertenecen a un mismo bucle. El bucle se divide en dos. (d) Las aristas no son adyacentes y pertenecen a un mismo bucle. Los bucles se fusionan en uno.

1. k es un vrtice interno de la malla, (es decir, no se utiliza la arista frontal k). El tringulo correspondiente no se puede generar, ya que creara un vrtice non-manifold. En este caso, e(i, j) se marca simplemente como una arista de frontera; 2. k pertenece al frente. Despus de comprobar la orientacin de la arista a evitar creando un manifold no orientable. Se aplica una operacin de unin, y salida de la nueva malla de tringulo (i , k , j). La unin podra crear potencialmente (una o dos) pares de aristas coincidentes (con orientacin opuesta), que se eliminan mediante la operacin de cola. La operacin de cola elimina de los pares delanteros de las aristas coincidentes, con orientacin opuesta (aristas coincidentes con la misma orientacin nunca son creadas por el algoritmo). Por ejemplo, cuando la arista e(i, k) es aadida a la parte del frente por una operacin de unin (lo mismo aplica a e(k, j)), si e(k, j) est en el frente, la cola remover el par de aristas e(i, k), e(k, i) y se ajusta de acuerdo al frente. Cuatro casos son posibles, como se ilustra en la figura 7. Una secuencia de operaciones de unin y cola se ilustra en la figura 8

necesarios. En nuestro caso, hemos utilizado dos planos 0 y 1 con ejes alineados para definir la regin activa de trabajo para el pivoteo. Inicialmente se coloca 0 de tal manera que no hay puntos de datos se encuentran "por debajo", y 1 encima de 0 a cierta distancia especificada por el usuario. Como cada arista se crea, comprobamos si sus extremos estn "por encima" de 1; en este caso se marca la arista congelada. Cuando todas las aristas restantes en la cola se congelan, simplemente se intercambian los planos, y actualizan todas las aristas congeladas en activos, y as sucesivamente. Un subconjunto de puntos de datos se carga y se desecha de la memoria cuando la casilla correspondiente delimitada entra y sale de la porcin activa. Analiza fcilmente puede ser pre-procesado para romperlas en pequeos mallas, de modo que slo abarcan unos pocos cortes, y la carga de la memoria sigue siendo baja. El nico cambio necesario en el algoritmo para aplicar este refinamiento es un bucle externo para mover el trozo activo, y la aadir las instrucciones para descongelar aristas entre las lneas 1-2 de la figura 5.

F. Mltiples pasadas
Para hacer frente a las superficies de forma desigual en la muestra, fcilmente se puede extender el algoritmo para ejecutar mltiples pasadas con radios de bola cada vez mayor. El usuario especifica una lista de radios {0, , n}como parmetros de entrada. En cada corte, para aumentar i , i= 0,, n, empezamos por la insercin de los puntos en una red de tamao de vxel = 2i . Dejamos que el APB se ejecute hasta que no queden ms aristas activas en la cola. En este punto incrementamos i, y se pasan todas las aristas del frente, y se comprueba si cada arista con su vrtice opuesto o forma una semilla de tringulo vlida para una bola de radio i. Si lo es, entonces se aade a la cola de aristas activas. Finalmente, el pivoteo se inicia de nuevo.

E. Extensiones fuera de ncleo.


Ser capaz de utilizar un ordenador personal para triangular las escaneos de alta resolucin permite a bajo costo en el sitio el procesamiento de datos. Debido a su localidad de referencia, el avance frontal de los algoritmos es adecuado para extensiones muy simples fuera de ncleo. Se emple un simple esquema de corte de los datos para extender el algoritmo mostrado en la figura 5. La idea bsica es la de almacenar en cach la parte del conjunto de datos que actualmente se utilizan para pivotar, para vaciar los datos que ya no se usan, y cargar los datos que son

G. Comentarios
El algoritmo APB fue implementado en C++ usando la librera de plantillas estndar. El cdigo de conjunto es menos de 4000 lneas, incluyendo las extensiones fuera del ncleo. El algoritmo es lineal en el nmero de puntos de datos y utiliza el almacenamiento lineal, bajo la suposicin de que la densidad de datos es limitada. Esta suposicin es apropiada para los datos digitalizados, que es recogido por el equipo con un espaciado de muestra conocido. Incluso si varios anlisis se superponen, el nmero total de puntos en cualquier regin estar delimitado por una constante conocida. La mayora de los pasos son simples O(1) que verifican los estados o actualizaciones de las colas, listas encadenadas, y similares. Con una densidad limitada, un punto slo necesita estar relacionado con un nmero constante de los vecinos. As, por ejemplo, un nico punto puede estar contenido en un nmero constante de bucles en el frente de avance. Las dos operaciones ball_pivot y nd_seed_triangle son ms complejas. Cada ball_pivot opera en una arista de diferentes mallas por lo que el nmero de pivotes es O(n). Un simple pivote requiere identificar todos los puntos en una vecindad 2. Una lista de estos puntos se puede recoger a partir de 27 voxels que rodean el punto candidato en nuestra red. Con una densidad limitada, esta lista tiene un tamao fijo B. Llevamos a cabo un pocos clculos algebraicos en cada punto de la lista y seleccionar el resultado mnimo, todas las operaciones O(1) en una lista de tamao O(1). Cada nd_seed_triangle recoge puntos no utilizados uno a la vez y comprueba si cualquier tringulo incidente es una semilla vlida. Ningn punto es considerado ms de una vez, por lo que esta prueba se realiza slo O(n) veces. Para probar un punto candidato, nos reunimos el mismo punto de la lista se discuti anteriormente, y considerar los pares de puntos hasta que, o bien encontrar un tringulo semilla o rechazar al candidato. Prueba uno de estos tringulos pueden requerir la clasificacin de todos los lugares en contra de una esfera de tocar los tres vrtices, en el peor de los casos, O(B3) = O(1) pasos. En la prctica, se limita el nmero de puntos y tringulos candidatos probados por las heursticas discutidas en la seccin IV-B. Una implementacin en el ncleo del APB usa de memoria O(n + L), donde L es el nmero de celdas en la red del voxel. El trmino O(n) incluye los datos, el avance de frente (que slo puede incluir cada arista de la malla una vez), y la cola de aristas candidato. La implementacin en el ncleo usa O(m + L) de memoria, donde m es el nmero de puntos de datos en el mayor trozo y L es el tamao de red ms pequeo que cubre un solo corte. Dado que el usuario puede controlar el tamao de los cortes, los requisitos de memoria se pueden adaptar para el hardware disponible. La red voxel puede ser ms compacta representada como una matriz dispersa, con un pequeo (constante) aumento del tiempo de acceso.

Fig. 9. Resultados. Datos limpios a partir de una figura analtica.

V. RESULTADOS DE LAS PRUEBAS


Los experimentos para este trabajo se llevaron a cabo en una 450MHz Pentium II Xeon processor de una IBM IntelliStation Z Pro con Windows NT 4.0. En estos experimentos se utilizaron varios conjuntos de datos: conjunto de datos "limpios" (es decir, los puntos de la superficie analtica, ver figura 9); los conjuntos de datos de la base de datos analizados de Stanford (vase la figura 11 (a) - (c)), y un conjunto de datos muy grande adquiridos (y la motivacin principal de este trabajo), un modelo de Michelangelos Florentine Pieta [3] (vase la figura 11 (d)). Para permitir la entrada flexible de varios anlisis y fuera del ncleo de ejecucin, el programa lee la entrada en cuatro partes: una lista de las exploraciones individuales que se convierten en una malla de tringulos nico y coherente, y para cada ciclo, una matriz de transformacin, un puesto transformar el cuadro delimitador (utilizada para estimar con rapidez la posicin de malla para la asignacin a una divisin), y el escaneo real, que se carga slo cuando sea necesario.

A. Pruebas
La tabla de la figura 10 se resume los resultados. El conjunto de datos "limpios" es una coleccin de puntos de una superficie analtica. El conejito de conjuntos de datos de Stanford, el Dragn y el Buda son mltiples escaneos de rango lser de objetos pequeos. El escner utilizado para adquirir los datos era un 3030MS Cyberware. Estos datos se requiere algn preprocesamiento menor. Se utiliz el programa vrip de Standord para conectar los puntos dentro de cada rango de datos individuales de

Fig. 10. Resumen de los resultados. Nmero de puntos y nmero de escaneos son el nmero original de los puntos de datos e imgenes de rango, respectivamente. lista de radios de las bolas de pivoteo. Radio mltiple significa los mltiples pasos del algoritmo, con aumenta de tamao de la bola, se utilizaron. # Slices es el nmero de cortes en el que los datos se repartieron para ser procesados fuera del ncleo. # Triangles es el nmero de tringulos creados por el APB. Mem. Usage es la mxima cantidad de memoria utilizada durante la generacin de mallas, en MB. I/O Time el tiempo dedicado a la lectura de los archivos binarios de entrada, tambin incluye el tiempo para escribir la malla de salida, como un conjunto de tringulo indexado, en formato binario. CPU Time es el tiempo gastado para calcular la triangulacin. La franja horaria es en minutos, salvo que se indique lo contrario. Todas las pruebas se realizaron en un 450 MHz Pentium II Xeon. son en minutos, salvo que se indique lo contrario.

Fig. 11. Resultados. (a) Conejo de Stanford. (b) Dragon de Stanford. (c) Buda de Stanford. (d) Reconstruccin preliminar de Michelangelos Florentine Pieta.

escaneo para proporcionar estimaciones de las normales de la superficie. Tambin elimina los planos a esculpidos, los planos grandes de tringulos utilizados para el llenado de agujeros de los algoritmos descritos en [6]. Este cambio se hizo slo por razones estticas, el APB no tiene problemas para manejar la entrada completa. Con el fin de confirmar la eficacia de nuestras capacidades fuera de ncleo, hemos modificado el Dragn de Stanford mediante la subdivisin de cada malla amplia en varios pedazos, la multiplicacin de las originales 71 mallas a ms de 7500. Un pre-procesamiento similar se aplica tambin al conjunto de datos de Buda. Tomamos nota de que estas descomposiciones se puede realizar de manera eficiente para las exploraciones del rea de distribucin arbitrariamente grandes (que no necesariamente tienen que caber en la memoria) mediante las tcnicas descritas en [20]. Los datos de Pieta han sido objeto de pre-procesamiento extenso durante y despus del escaneo y registro que est fuera del alcance de este documento. Los datos son lo suficientemente grandes que no pueden ser procesados en el ncleo, y slo se procesan en cortes. El escaneo de Pieta tambin incluye la captura de mltiples imgenes de color con iluminacin calibrada, los mapas de reflexin y las normales para aumentar los datos geomtricos que son calculados (ver [21]).

Mediante el uso de puntos ponderados, podramos ser capaces de generar triangulaciones de muestreos de adaptacin. La densidad de muestreo podra ser cambiado dependiendo de las propiedades superficiales locales, y el peso del punto de acuerdo asignado o calculado. Una extensin de nuestro algoritmo a lo largo de las lneas de la generalizacin ponderada de alpha-shapes [18], deben ser capaces de generar una ms compacta, adaptativa, interpolacin de triangulacin. Hemos hecho algunos experimentos iniciales en el uso de un algoritmo de suavizado adaptado de [19] para preprocesar los datos y para calcular los puntos de consenso a partir de mltiples escaneos superpuestos para ser utilizado como entrada para el APB, mientras que al mismo tiempo haciendo pequeos refinamientos a la alineacin rgida de los anlisis a los dems. Conjuntos de datos utilizados en este trabajo se pre-procesaron utilizando nuestra actual implementacion de este algoritmo. Agradecimientos. Gracias al Laboratorio de Computacin Grfica de la Universidad de Stanford, por crear algunos de los datos de rango utilizados en este documento a disposicin del pblico. El Museo dellOpera del Duomo in Florence, Italia nos ha permitido analizar el Michelangelos Florentine Pieta. Reconocemos su amable colaboracin.
REFERENCIAS

VI. CONCLUSIONES
En este trabajo, presentamos el algoritmo de pivoteo de bola, un algoritmo de avance frontal para construir gradualmente una triangulacin de interpolacin de una nube de puntos dado. APB tiene varias propiedades deseables: Intuitivo: APB triangula un conjunto de puntos por el rodamiento del radio de una bola en una nube de puntos. El usuario elige un solo parmetro. Flexible, eficiente y robusto: Nuestras bases de datos de prueba oscilaron entre los pequeos datos sintticos de grandes escaneos del mundo real. Hemos demostrado que nuestra implementacin de BPA trabaja en conjuntos de datos de millones de puntos que representan los escaneos reales de complejos objetos en 3D. Para nuestros datos de Pieta, encontramos que en un PC Pentium II, el algoritmo genera y escribe en el disco de la malla de salida a una velocidad de aproximadamente 500K tringulos por minuto. Fundamentos tericos: el APB se relaciona con el alphashapes [2], y teniendo en cuenta el muestreo lo suficientemente denso, se garantiza para reconstruir una superficie homeomorfa y dentro de una distancia limitada desde el manifold original. Hay algunas pistas para seguir trabajando. Sera interesante para evaluar si el APB se puede utilizar para triangular superficies muestreadas con sistemas de partculas. Esta posibilidad qued como un problema abierto en [22], y desarrollado en [23] en el contexto de la generacin de isosuperficie.
[1] K. Pulli, T. Duchamp, H. Hoppe, J. McDonald, L. Shapiro, and W. Stuetzle, Robust meshes from multiple range maps, in Intl. Conf. on Recent Advances in 3-D Digital Imaging and Modeling. May 1997, pp. 205211, IEEE Computer Society Press. [2] H. Edelsbrunner and E. P. M ucke, Three-dimensional alpha shapes, ACM Trans. Graph., vol. 13, no. 1, pp. 4372, Jan. 1994. [3] J. Abouaf, The Florentine Piet` a: Can visualization solve the 450-year-old mystery?, IEEE Computer Graphics & Applications, vol. 19, no. 1, pp. 610, Feb. 1999. [4] F. Bernardini, C. Bajaj, J. Chen, and D. Schikore, Automatic reconstruction of 3D CAD models from digital scans, International Journal of Computational Geometry and Applications, vol. 9, no. 4 & 5, pp. 327370, Aug.-Oct. 1999. [5] R. Mencl and H. M uller, Interpolation and approximation of surfaces from three-dimensional scattered data points, in Proceeding of Eurographics 98. Eurographics, 1998, State of the Art Reports. [6] B. Curless and M. Levoy, A volumetric method for building complex models from range images, in Computer Graphics Proceedings, 1996, Annual Conference Series. Proceedings of SIGGRAPH 96, pp. 303312. [7] W. Lorensen and H. Cline, Marching cubes: a high resolution 3d surface construction algorithm, Comput. Graph., vol. 21, no. 4, pp. 163170, 1987. [8] M. Soucy and D. Laurendeau, A general surface approach to the integration of a set of range views, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 17, no. 4, pp. 344 358, Apr. 1995.

[9] G. Turk and M. Levoy, Zippered polygonal meshes from range images, in Computer Graphics Proceedings, 1994, Annual Conference Series. Proceedings of SIGGRAPH 94, pp. 311318. [10] C. Dorai, G. Wang, A. K. Jain, and C. Mercer, Registration and integration of multiple object views for 3D model construction, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 20, no. 1, pp. 8389, Jan. 1998. [11] C. Bajaj, F. Bernardini, and G. Xu, Automatic reconstruction of surfaces and scalar elds from 3D scans, in Computer Graphics Proceedings, 1995, Annual Conference Series. Proceedings of SIGGRAPH 95, pp. 109118. [12] N. Amenta, M. Bern, and M. Kamvysselis, A new voronoibased surface reconstruction algorithm, in Proc. SIGGRAPH 98, July 1998, Computer Graphics Proceedings, Annual Conference Series, pp. 415412. [13] J.-D. Boissonnat, Geometric structures for three-dimensional shape representation, ACM Trans. Graph., vol. 3, no. 4, pp. 266 286, 1984. [14] R. Mencl, A graph-based approach to surface reconstruction, Computer Graphics Forum, vol. 14, no. 3, pp. 445456, 1995, Proc. of EURO-GRAPHICS 95. [15] A Hilton, A Stoddart, J Illingworth, and T Windeatt, Marching triangles: Range image fusion for complex object modelling, in Proc of IEEE International Conference on Image Processing, Laussane, 1996, vol. 2, pp. 381384. [16] F. Bernardini and C. Bajaj, Sampling and reconstructing manifolds using alpha-shapes, in Proc. of the Ninth Canadian Conference on Computational Geometry, Aug. 1997, pp. 193198, Updated online versin available at www.qucis.queensu.ca/cccg97. [17] Nina Amenta and Marshall Bern, Surface reconstruction by voronoi ltering, in Proc. 14th Annual ACM Sympos. Comput. Geom., 1998, pp. 3948. [18] H. Edelsbrunner, Weighted alpha shapes, Technical Report UIUCDCS-R-92-1760, Dept. Comput. Sci., Univ. Illinois, Urbana, IL, 1992. [19] Gabriel Taubin, A signal processing approach to fair surface design, in Proc. of SIGGRAPH 95. ACM SIGGRAPH, Aug. 1995, Computer Graphics Proceedings, Annual Conference Series, pp. 351358. [20] Yi-Jen Chiang, Cl audio T. Silva, and William Schroeder, Interactive out-of-core isosurface extraction, in Proc. IEEE Visualization 98, Nov. 1998, pp. 167174. [21] H. Rushmeier and F. Bernardini, Computing consistent normals and colors from photometric data, in Proc. of the Second Intl. Conf. on 3-D Digital Imaging and Modeling, Ottawa, Canada, October 1999, To appear. [22] Andrew P. Witkin and Paul S. Heckbert, Using parzicles to sample and control implicit surfaces, in Proceedings of SIGGRAPH 94 (Orlando, Florida, July 2429, 1994), Andrew Glassner, Ed. ACM SIGGRAPH, July 1994, Computer Graphics Proceedings, Annual Conference Series, pp. 269278, ACM Press, ISBN 0-89791-667-0.

[23] Patricia Crossno and Edward Angel, Isosurface extraction using particle systems, in IEEE Visualization 97, Roni Yagel and Hans Hagen, Eds. IEEE, Nov. 1997, pp. 495498.

Potrebbero piacerti anche