tesis doctoral rhadames volumenes multi-resolucion

Upload: antonio-rueda-toicen

Post on 07-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    1/161

    -1-

    Visualizacin Multi-Resolucin

    de Volmenes de Gran Tamao

    Tesis Doctoral presentada porMsc. Rhadams Carmona

    ante la IlustreUniversidad Central de Venezuela

    para optar al Ttulo deDoctor en Ciencias de la Computacin

    Tutoriado por:Dr. Bernd Frhlich

    Septiembre, 2008

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    2/161

    -i-

    Resumen

    Las tcnicas multi-resolucin son requeridas comnmente para el despliegue devolmenes que exceden las capacidades de la tarjeta grfica, e incluso de la memoriaprincipal. En cada cuadro de imagen, se selecciona la resolucin adecuada para lasdistintas reas del volumen en funcin de la cantidad de memoria disponible, y unconjunto de parmetros que pueden estar definidos en el espacio objeto o en el espacioimagen. Debido al ancho de banda limitado entre la memoria principal y la tarjetagrfica, es posible que la resolucin requerida en todas las reas del volumen no seasatisfecha durante la interaccin con el volumen. As, la representacin del volumendeber ser actualizada constantemente entre cuadros de imgenes durante estainteraccin, que puede incluir el cambio del punto de vista, de la regin de inters y dela funcin de transferencia. Se presenta un algoritmo voraz que mejora la aproximacincuadro a cuadro, utilizando un conjunto de operaciones de refinamiento y reduccin Split-and-Collapsesobre las distintas reas del volumen. Este algoritmo es guiado por

    una medida de error, que sugiere la seleccin de la siguiente operacin de refinamientoo colapso, basada en la mejora de la aproximacin multi-resolucin, considerando lasrestricciones de hardware establecidas. Adicionalmente, se ha implementado unalgoritmo ptimo polinomial, que obtiene la representacin multi-resolucin conmnimo error, con el objetivo de verificar que los resultados con el algoritmo voraz estncercanos al ptimo. Se han considerado tcnicas out-of-core compatibles con losrequerimientos de pginas de memoria demandados por el algoritmo de Split-and-Collapse. El anlisis de complejidad de los algoritmos muestra que no dependen deltamao del volumen, demostrando que son adecuados para desplegar volmenes degran tamao. El despliegue puede ser realizado tanto con ray castingbasado en GPU,como con planos alineados al viewport, con clasificacin pre-integrada. En ambos casosse implementa el salto de espacios vacos, terminacin temprana del rayo y muestreoadaptativo, explotando las bondades del hardware grfico actual, y ajustando

    adecuadamente los segmentos de rayo en las fronteras de los subvolmenes o bricks.Particularmente en el caso de ray castingbasado en GPU se ha introducido una tcnicapara la reduccin de artefactos entre brickscon distintos niveles de detalle, basada enla mezcla ponderada de niveles de detalle contiguos. Finalmente, se generaliza al caso3D un algoritmo eficiente que construye la tabla de pre-integracin 2D.

    Palabras Claves: despliegue de volmenes, tcnicas multi-resolucin, visualizacin out-of-core, clasificacin pre-integrada, GPU.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    3/161

    -ii-

    Agradecimientos

    Agradezco a Dios por estar all, en cada uno de los pasos que doy, ydarme la perseverancia y paciencia para culminar este trabajo.

    Agradezco a mi tutor, Bernd, por guiarme durante mucho aos en estetrabajo, por las cientas de horas invertidas en m formacin,incluyendo cientos de emails, chating, visitas, etc., por supaciencia y su amistad.

    Agradezco a Omaira, por siempre estar pendiente de los avances de estetrabajo de manera incondicional, desde el momento de hacer el

    primer contacto con mi tutor; igualmente por conseguirfinanciamiento, tanto para las pasantas en Alemania en el marcode este trabajo, as como para la adquisicin de varios de loscomputadores utilizados en las pruebas y desarrollo.

    Agradezco al profesor Alejandro Crema, por ser mi tutor gua, y estarpendiente de los avances del trabajo.

    Agradezco a los coordinadores de postgrado, Prof. Alejandro Crema, Prof.Hilda Lpez y Alfredo Mateo, por la flexibilidad en el postgrado enCiencias de la Computacin. Igualmente a Rosiris, por su

    amabilidad, y darme toda la informacin pertinente a prrrogas einscripciones.

    Agradezco a mi esposa, quien ha vivido conmigo todo el desarrollo de esteproyecto, me ha dado su apoyo, compartiendo las angustias de unsubmit y de cada actualizacin del cdigo y documento. Graciaspor la paciencia.

    Agradezco a mis bebs, esposa, madre, padre, hermanas, toda migrandota familia, y a mis amigos por soportar mi lejana enmuchos momentos. A ninguno le he dedicado el tiempo que he

    querido en estos aos, pero en todo momento han estadopresentes, segundo a segundo, pues son parte de mi vida, y de loque soy.

    Agradezco el apoyo incondicional de mis colegas de laboratorio y amigos,Walter, Ernesto, Hctor, y Esmitt con quienes en muchasoportunidades he conversado sobre los avances y misterios delproyecto. En particular, gracias Walter por tus infinitos consejos, y

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    4/161

    -iii-

    por no jugar QUAKE III conmigo para no dispersarme graciasErnesto por tus correcciones, y tempranas sugerencias. Igualmentegracias a Bricelis Urbina, por ayudar a la limpieza de las imgenesdel humano visible, que aunque no fue utilizado en las pruebasfinales, era el nico volumen disponible en las primeras etapas de

    desarrollo del trabajo. Igualmente, a todos los profesores yprofesoras que han estado pendientes de la culminacin de estelargo trabajo, en especial Eugenio, Marta R., Nora, Claudia, etc.

    Agradezco a los estudiantes e investigadores, de quienes he recibido unfeedback en ciertas etapas de la realizacin de este trabajo.Empezando por la lista de discusin de OpenGL, en dondemuchas dudas de programacin en OpenGL y lenguaje de shadershan sido aclaradas por investigadores de todos el mundo, y donderecuerdo principalmente la guiatura out-of-forum de Poddar Bimal

    en el caso de volume rendering con multi-texturas va register

    combiners siguiendo con el Dr. Eric Lum, quien me dio variostips para entender su rpido algoritmo de pre-integracin,publicado en el 2004; Soeren Grimm por sus prontas sugerenciassobre elpaper a Adriana Paluszny por sus correcciones, GabrielRodrguez por plasmar la idea del blending sobre una versinprevia del prototipoy terminando con Jorge Bernadas, quien memostr una solucin ptima del algoritmo de seleccinbasado enla tcnica divide y conquista con memorizacin. A todos ustedesgracias.

    Agradezco a las profesoras Hilda Lpez y Brgida Molina, quienes en

    determinados momentos me hablaron sobre la importancia deculminar la tesis, tanto para mi formacin como para la Escuela.

    Mmm bien, tengo que agradecer adems (o quizs no) a la gente quecre Quake III, como herramienta anti-x3, y adicionalmente, comofactor de DISPERSIONlol. By the way, estos prrafos quedaronidentados de esta manera, y no fue a drede. Viva WORD 4guindous!. Se le agradece tambin a la gente de Urban Terror, poragregar ms dispersin y entretenimiento en el ltimo ao.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    5/161

    -iv-

    Contenido

    Resumen .............................................................................................. i

    Agradecimientos ................................................................................... iiTabla de Contenido .............................................................................. ivCaptulo 1. Introduccin...................................................................... 1

    1.1 Visualizador Interactivo ................................................................ 41.2 Visualizador Experimental ............................................................ 61.3 Publicaciones ............................................................................... 71.4 Organizacin del Documento ........................................................ 7

    Captulo 2. Despliegue Directo de Volmenes ...................................... 82.1 Visualizacin 3D .......................................................................... 8

    2.1.1 Aplicacin de Textura ........................................................... 112.1.2 Niveles de Detalle ................................................................. 13

    2.2 Despliegue de Volmenes ........................................................... 142.2.1 Pipelinede Visualizacin de Volmenes ................................ 162.2.2 Clasificacin ......................................................................... 172.2.3 Solucin Numrica de la Ecuacin de Visualizacin deVolmenes .................................................................................... 20

    2.3 Algoritmos para Visualizar Volmenes ........................................ 252.3.1 Ray Casting.......................................................................... 252.3.2 Splatting............................................................................... 272.3.3 Shear-warp.......................................................................... 292.3.4 Texturas 2D ......................................................................... 302.3.5 Texturas 3D ......................................................................... 32

    2.4 Despliegue de Volmenes de Gran Tamao ................................ 342.4.1 Bricking................................................................................ 342.4.2 Despliegue de un rea de Inters .......................................... 362.4.3 Despliegue de Volmenes Multi-resolucin ........................... 37

    2.5 Sumario ..................................................................................... 47Captulo 3. Criterio de Seleccin ........................................................ 49

    3.1 Medidas de Error ........................................................................ 503.1.1 Distorsin ............................................................................ 503.1.2 Nivel de Importancia............................................................. 52

    3.2 Algoritmo Voraz de Seleccin ...................................................... 55

    3.3 Algoritmo ptimo de Seleccin ................................................... 573.4 Algoritmo Incremental de Seleccin: Split-and-Collapse............... 603.5 Anlisis de Complejidad del algoritmo de Split-and-Collapse........ 623.6 Edicin de la Funcin de Transferencia ...................................... 643.7 Algoritmos de Seleccin ptimos con dos Restricciones .............. 663.8 Sumario ..................................................................................... 66

    Captulo 4. Visualizacin Out-of-Core ................................................ 684.1 Prioridad Sobre los Bricks........................................................... 69

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    6/161

    -v-

    4.2 Paginacin Basada en Split-and-Collapse.................................... 704.3 Grupo de Bricks......................................................................... 714.4 Algoritmo Multi-hilos .................................................................. 724.5 Consideraciones Adicionales para Texturas 2D ........................... 744.6 Sumario ..................................................................................... 75

    Captulo 5. Despliegue Multi-resolucin ............................................ 765.1 Ordenamiento de los Bricks........................................................ 765.2 Ray CastingBasado en GPU ....................................................... 775.3 Planos Alineados al Viewport...................................................... 815.4 Clasificacin Pre-integrada ......................................................... 865.5 Plano de Corte ............................................................................ 965.6 Sumario ..................................................................................... 99

    Captulo 6. Reduccin de Artefactos .................................................1016.1 Blending: Mezcla de Bricks........................................................102 6.2 OctreeRestringido .....................................................................1066.3 Nivel de Detalle Promedio por Vxel ...........................................107

    6.4 Sumario ....................................................................................108Captulo 7. Implementacin y Pruebas .............................................109

    7.1 Implementacin .........................................................................1097.2 Volmenes y Plataforma de Prueba ............................................1107.3 Pruebas de Desempeo Sobre el Sistema VI ...............................112

    7.3.1 Ancho de Banda y Particionamiento del Volumen ................1127.3.2 Transferencia de Brickspor Frame.......................................113 7.3.3 Construccin de la Tabla de Pre-integracin ........................1147.3.4 Medidas de Error .................................................................1187.3.5 Rendering y Tcnicas de Aceleracin ...................................1207.3.6 Algoritmos de Seleccin .......................................................124

    7.3.7 Tiempo Consumido por cada Subprograma .........................1267.4 Pruebas Sobre el Sistema VE .....................................................1287.5 Sumario ....................................................................................130

    Captulo 8. Conclusiones y Trabajos a Futuro ..................................131Referencias.........................................................................................135 Apndice I: Modelo ptico ..................................................................148

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    7/161

    Captulo 1: Introduccin

    -1-

    Captulo 1. IntroduccinLos volmenes utilizados para visualizacin provienen principalmente dela medicina, simulacin y explotacin petrolera. Con el avance que hatenido el hardwaregrfico en la ltima dcada, muchos investigadoreshan propuesto diversas tcnicas basadas en este hardwareespecializadopara el despliegue de volmenes en tiempo real.

    En la actualidad, la visualizacin de volmenes con aceleracin dehardware grfico resulta el mtodo ms eficiente para visualizarvolmenes en computadores convencionales. Sin embargo, la resolucinde los dispositivos de imagenologa crece cada da ms y ms, as como el

    tamao de los volmenes provenientes de proyectos cientficos ysimulaciones. Tal es el caso del proyecto del humano visible (VisibleHuman Project), y particularmente el volumen de la mujer visible, quetiene una resolucin de 2048 x 1216 x 5186 muestras a color RGB,ocupando 36GB sin compresin [VHP94]. Adicionalmente, la simulacinde turbulencia de Richtmyer-Meshkov dependiente del tiempo [MIR99],produce 7.5GB de datos con una resolucin de 2048 x 2048 x 1920bytes, por instante de tiempo. Estos volmenes generan problemas derendimiento y almacenamiento en computadores convencionales, por loque se requieren de tcnicas especializadas para su despliegue ymanipulacin.

    Cuando se utiliza despliegue acelerado por hardwaregrfico, un volumenes considerado de gran tamao cuando no puede almacenarsecompletamente en memoria de textura [BOA01]. La forma ms comnde lidiar con estos volmenes es utilizar tcnicas multi-resolucin, demanera de visualizar las reas de ms prioridad con mayor resolucin, ylas de menos prioridad con menor resolucin, sin exceder lascapacidades de memoria en el hardwaregrfico. Para llevar a cabo esteproceso, las distintas partes del volumen deben estar representadas adistintas resoluciones, y mediante determinados criterios de seleccin, se

    determina la resolucin de cada rea del volumen. Entre estos criteriosse destacan la distancia a un punto de inters [LAM99], la cantidad dememoria disponible [BOA01], medidas de error basadas en los datos o enla imagen [GUT02], [WAN07], entre otros.

    Comnmente el volumen multi-resolucin se representa en unaestructura jerrquica de octree (rbol de grado 8) [LAM99], [BOA01]. Alutilizar octrees, el volumen original se particiona en ladrillos o bricksde

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    8/161

    Captulo 1: Introduccin

    -2-

    igual tamao en bytes, en donde cada grupo de 8 bricksadyacentes sonaproximados por un nico brick con resolucin inferior. Aplicandorecursivamente el mismo principio entre niveles de detalles, se construyela jerarqua multi-resolucin (ver Fig. 1.1), en donde el brickde la raz deloctreerepresenta al volumen entero con la menor resolucin, y las hojas

    representan al volumen original particionado en bricks. Cada nodo deloctree representa un brick, y corresponde a una determinada rea delvolumen, con una determinada resolucin. Al representar el volumen enuna estructura de octree, el criterio de seleccin determina el conjunto debricksque representa al volumen bajo diversos criterios. Al conjunto debricksseleccionados para visualizacin lo denominamos la seleccin, osimplemente el conjunto S. Es importante sealar que cada rea avisualizar del volumen tiene una nica representacin en S. As, lainterseccin de dos bricksen Ses vaca.

    El inters de este trabajo est basado en el despliegue multi-resolucinde volmenes de gran tamao con soporte de hardwaregrfico en tiemporeal. Los volmenes de inters son aquellos cuyo tamao sobrepasan la

    Octree

    Nivel de detallems bajo(1 brick)

    Nivel de detallems alto

    (512 bricks)

    Seleccin

    36 bricks7%

    S= Bricksseleccionados

    Figura 1.1: jerarqua multitresolucin de octree y la seleccin. Observe que elconjunto Sdemanda aprox. 7% de la memoria que se requerira para almacenar losbricksdel nivel de detalle ms alto.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    9/161

    Captulo 1: Introduccin

    -3-

    capacidad de memoria de textura, y potencialmente la capacidad de lamemoria principal. Para lograr la interactividad con estos volmenes esnecesario considerar la eficiencia de los algoritmos, tanto aquellos queintervienen en la seleccin y paginacin, as como en aquellos queintervienen en el rendering1. Particularmente en el rendering, es

    necesario incluir tcnicas de aceleracin para mejorar el tiemporespuesta, y adicionalmente considerar la mejora en la calidad de lasimgenes generadas.

    En la Fig. 1.2 se muestra el modelo de prototipo de sistema devisualizacin multi-resolucin, que incluye los mdulos de seleccin, pre-

    1Rendering: es el proceso de generar una imagen digital a partir de un modelo. Para elcaso de visualizar escenas u objetos 3D, el renderingconsiste en la generacin de unaimagen digital bidimensional desde un punto de vista.

    Pre-procesamiento

    Seleccin

    PaginacinMemoria deTextura

    PaginacinMemoriaPrincipal

    GPU

    MemoriaTextura

    Tarjet

    aGrfica

    MemoriaPrincipal

    Rendering

    Pre-integracin

    Parmetros deVisualizacin

    S

    Nodos

    Instrucciones

    Bricks

    Tabla de Integrales

    Bricks

    Bricks

    Bricks

    Dataset

    Imagen

    Funcin detransferencia

    Figura 1.1: prototipo de sistema de visualizacin de volmenes multi-resolucin.

    Proceso Principal

    ProcesoSecundario

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    10/161

    Captulo 1: Introduccin

    -4-

    integracin, paginacin, rendering, entre otros. Durante una etapa depre-procesamiento, el volumen digitalizado original es transformado enuna representacin manejable por la aplicacin. El resto del sistema sedivide en 2 procesos que se ejecutan concurrentemente. El procesoprincipal se encarga de manejar la interaccin con el usuario (que

    incluye la edicin de la funcin de transferencia1 y de los parmetros devisualizacin), maneja el cach de memoria de textura, selecciona losbricksa visualizar y realiza el renderingcon soporte del hardwaregrfico.El proceso secundario se encarga de la carga de bricks de memoriaauxiliar hacia memoria principal, reemplazando bricks segndeterminadas prioridades.

    Acorde al modelo de prototipo mostrado en la Fig. 1.1, en este trabajo seimplementan dos prototipos. El primer sistema prototipo es llamadoVisualizador Interactivo, cuyo objetivo principal es la interaccin entiempo real con el volumen. El segundo prototipo, VisualizadorExperimental, se ha creado para responder a uno de los retos actualesen la visualizacin de volmenes multi-resolucin: la reduccin deartefactos entre bricks adyacentes con distintos nivel de detalle. Acontinuacin se describen brevemente los mdulos de cada prototipo,conjuntamente con los principales aportes.

    1.1 Visualizador Interactivo

    Para lograr la interactividad al navegar por el volumen, la eficiencia debeser considerada en cada mdulo del sistema. En esta direccin se

    introducen diversos algoritmos que buscan reducir el impacto devisualizar volmenes que sobrepasan las capacidades de memoria encomputadores convencionales.

    a) Seleccin: el objetivo de nuestro algoritmo de seleccin es actualizar entiempo real la representacin multi-resolucin Sdel volumen, conformese interacta con el mismo, lo cual puede incluir el cambio de punto devista, la definicin del rea de inters, y la edicin de la funcin detransferencia. Durante esta interaccin, las prioridades de las distintasreas del volumen suelen cambiar, por lo cual es un reto realizar laactualizacin de la representacin multi-resolucin sin perder la

    interactividad. Para ello se introduce un algoritmo voraz [BRA00]incremental que actualiza sistemticamente la representacin multi-resolucin cuadro a cuadro hasta alcanzar la representacin deseada.Este algoritmo, llamado algoritmo Split-and-Collapse (refinamiento yreduccin), es guiado por una medida de error, que sugiere las prximas

    1 La funcin de transferencia se encarga de asignar propiedades pticas (color yabsorcin) a las muestras del volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    11/161

    Captulo 1: Introduccin

    -5-

    operaciones de split y collapse en direccin a la resolucin deseada. Elalgoritmo de Split-and-Collapsees voraz, por lo que no siempre resulta enla seleccin de mnimo error. El problema de encontrar la seleccin demnimo error requiere de una bsqueda exhaustiva, y en esta direccinse introduce un algoritmo ptimo que opera en tiempo polinomial,

    utilizando la tcnica de programacin dinmica [COR01]. Este algoritmoes utilizado para comprobar que el algoritmo voraz incremental de Split-and-Collapseproduce resultados muy cercanos al ptimo.

    b) Paginacin: cuando el volumen multi-resolucin supera lascapacidades de memoria principal, es necesario paginar bricks dememoria auxiliar a memoria principal. Se introduce una tcnica parapaginar brickssimilar al algoritmo de Split-and-Collapse, de manera queun hilo secundario se encargue de la carga y reemplazo de bricksacordea las demandas actuales y futuras del algoritmo. Tanto la paginacincomo el reemplazo de pginas considera la prioridad asignada en cadanodo por el algoritmo de Split-and-Collapse, e incorpora la pre-paginacinde una manera natural, difiriendo as de la tcnica de paginacin bajodemanda con poltica de reemplazo LRU1 utilizada comnmente en lavisualizacin out-of-core2 [GUT02], [CAS05].

    c) Rendering: para realizar el despliegue o rendering, se adapta elalgoritmo de ray casting acelerado por GPU (Graphics Processor Unit)introducido en [KRU03] al caso multi-resolucin, con clasificacin pre-integrada3. Para mejorar el tiempo de respuesta en el despliegue, seadaptan las tcnicas de salto de espacios vacos [LAC95], terminacintemprana del rayo [KRU03], y muestreo adaptativo [LAM99], [GUT02],[LJU06C] al caso multi-resolucin. En particular, en el caso de muestreoadaptativo se introduce una tcnica que se basa en la opacidadacumulada en cada rayo, el cual mejora el tiempo de respuesta delmuestreo constante, sin detrimento de la calidad de la imagen que seobtiene cuando la adaptabilidad se basa en el nivel de detalle de cadabrick[LAM99], [GUT02], [LJU06C].

    d) Pre-integracin: La construccin de la tabla de pre-integracin estbasada en el algoritmo propuesto por Eric Lum et al. [LUM04], la cual

    1 LRU (least-recently-used): es un algoritmo de reemplazo de pgina que se basa enescoger como vctima aquella pgina de memoria menos recientemente utilizada, puesestadsticamente es la que tiene menos posibilidad de ser referenciada nuevamenteentre las pginas alojadas en memoria.2 En ciencias de la computacin, el trmino out-of-corese refiere a los algoritmos queprocesan datos que sobrepasan las capacidades de memoria principal.3 La clasificacin es el proceso de asignar propiedades pticas a las muestras delvolumen. La clasificacin pre-integrada es un caso particular en donde se precomputala integral entre cada par de muestras potenciales del volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    12/161

    Captulo 1: Introduccin

    -6-

    est planteada originalmente para tablas 2D, y en este prototipo segeneraliza para el caso 3D para soportar el muestreo adaptativo.

    1.2 Visualizador Experimental

    El despliegue de volmenes multi-resolucin suele generar artefactosvisuales debido a la diferencia de nivel de detalle entre los bricks. Elorigen de estos artefactos visuales se debe a que las muestrasinterpoladas del volumen de niveles ms burdos difieren de las muestrasoriginales, por lo que suelen generar colores distintos al ser clasificados.Estos colores distintos son percibidos por nuestra vista cuando sedespliegan bricksadyacentes con distintos nivel de detalle, pues generancambios abruptos de color en la imagen. La remocin de estos artefactosse logra mediante la mezcla o blending de bricks de niveles de detalleconsecutivos, con soporte de GPU.

    El objetivo Visualizador Experimental es mostrar la efectividad de latcnica de blending en la remocin de artefactos visuales entre bricksadyacentes. En este sentido, los mdulos de seleccin y paginacin sonrelativamente bsicos al compararlo con el visualizador interactivo.

    a) Seleccin: el algoritmo de seleccin considera los mismosparmetros del Visualizador Experimental, salvo el ancho de bandahacia la memoria de textura, el cual es ignorado. En cambio, seadiciona una nueva restriccin: la diferencia de nivel de detalleentre bricksadyacentes debe ser a los sumo un nivel.

    b) Paginacin: se utiliza un simple mecanismo de paginacin bajodemanda, con reemplazo de pgina basado en la hora del ltimoacceso (LRU), similar a los trabajos [GUT02] y [CAS05].

    c) Rendering: se introduce el algoritmo basado en la mezcla de nivelesde detalle para reducir artefactos entre bricks adyacentes condistinto nivel de detalle. En las pruebas se muestra la efectividadde la tcnica, y el bajo impacto en el tiempo de respuesta yrequerimientos extras de memoria. Se implementa la tcnica deaceleracin basada en salto de espacios vacos.

    d) Pre-integracin: utiliza el rpido algoritmo de Eric Lum et al. paraconstruir la tabla de pre-integracin 2D.

    Ambos prototipos pueden ser ejecutado en modo pantalla completa, parasu futura migracin a sistemas inmersivos como la mesa de trabajovirtual o workbench[KRU95] y caves1 [CRU93].

    1 CAVE: acrnimo recursivo de CAVEAutomaticVirtualEnvironment. Es un ambiente derealidad virtual inmersivo multi-usuario, que consiste en un cubo, en donde se realiza una

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    13/161

    Captulo 1: Introduccin

    -7-

    1.3 Publicaciones

    Como publicaciones realizadas en el contexto de este trabajo se tienenlas siguientes:

    a) Artculo publicado en los proceedings del congreso ISVC (5thInternational Symposium on Visual Computing), ao 2009 [CAR09].Los trabajos presentados en este congreso son publicados como uncaptulo de libro en Lecture Notes in Computer Science.

    b) Captulo de un libro de circulacin internacional [ORO04], endonde se presenta un resumen del estado del arte en lavisualizacin multi-resolucin de volmenes de gran tamao,extrada del captulo 2 de este trabajo.

    1.4 Organizacin del Documento

    Este documento es presentado en 8 captulos. El captulo 1 introduce alproblema a resolver y sus contribuciones. El captulo 2 estudia el temade visualizacin de volmenes, la ecuacin de integracin, y losalgoritmos clsicos para el despliegue, incluyendo el caso multi-resolucin. El captulo 3 trata sobre el criterio de seleccin introducidoen este trabajo, destacndose el algoritmo Split-and-Collapse y elalgoritmo ptimo. El captulo 4 describe la tcnica out-of-core utilizada,compatible con el algoritmo de Split-and-Collapse, para manejarvolmenes que sobrepasan las capacidades de la memoria principal. Elcaptulo 5 discute los detalles del rendering, incluyendo las tcnicas de

    aceleracin y la construccin de la tabla 3D de pre-integracin. Elcaptulo 6 introduce la tcnica de remocin de artefactos entre bricksadyacentes. La implementacin y resultados experimentales sondiscutidos en el captulo 7. Finalmente, en el captulo 8 se presentan lasconclusiones y trabajos a futuro.

    proyeccin trasera en estreo en 3 o ms de sus caras. En conjuncin con un sonido 3D, da a losusuarios la ilusin de ser parte del mundo virtual.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    14/161

    Captulo 2: Despliegue Directo de Volmenes

    -8-

    Captulo 2.Despliegue Directo deVolmenesPor lo general, el volumen viene dado como un conjunto de muestras deuna funcin escalar continua, representado por una malla regular, yalmacenado en un arreglo tridimensional de escalares [MOR04]. Existendiversas tcnicas para visualizar la informacin presente en un volumen.En una etapa previa, se pueden extraer los contornos de inters de cadacorte del volumen [MAX95], [CAR01], o reconstruir una aproximacinpoligonal de las superficies de inters [CLI87], [CAR99]. Sin embargo,mediante el despliegue directo del volumen, podemos evitar etapas

    previas de reconstruccin, y observar informacin adicional que no estpresente en contornos y superficies.

    El despliegue directo de volmenes consiste en generar una imagentridimensional a partir de la proyeccin de las muestras discretas de unvolumen. Por comodidad, en este trabajo nos referimos al despliegue devolmenes como despliegue directo de volmenes indistintamente. Desdefinales del siglo pasado, este despliegue puede ser acelerado mediante lautilizacin del hardwaregrfico [AKE93]. Este hardwareest optimizadopara el despliegue de tringulos, los cuales son transformados,discretizados y desplegados con el pipeline grfico [WOO99].

    Comnmente el despliegue acelerado por hardwaregrfico es realizadomezclando polgonos texturizados con cortes del volumen. Sin embargo,en la actualidad, el hardware grfico cuenta adicionalmente conunidades programables, tanto para vrtices como para fragmentos, loque permite realizar algoritmos que operen directamente con el volumenpara obtener el color de cada pxel de la imagen [OPE07], [NVI07].

    Este captulo estudia conceptos relacionados con el despliegue devolmenes, y diversas implementaciones, incluyendo el despliegue devolmenes de gran tamao, haciendo nfasis en aquellas que utilizan laaceleracin por hardwaregrfico.

    2.1 Visualizacin 3D

    El proceso de visualizacin 3D consiste en todas las operaciones queconlleva el despliegue de un objeto tridimensional en un dispositivogrfico de salida. Por lo general, el objeto es concebido como una serie detringulos, que sern procesados por un motor grfico 3D. En la Fig. 2.1

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    15/161

    Captulo 2: Despliegue Directo de Volmenes

    -9-

    se muestra un tpico pipeline grfico, el cual es utilizado por el API1OpenGL con soporte del hardware [WOO99], pero que puedeimplementarse 100% por software.

    En un primer nivel de abstraccin, el pipelinegrfico puede ser dividido

    en 4 mdulos: procesamiento geomtrico, rasterizacin, procesamientode fragmentos y operadores por fragmento (ver Fig. 2.1). Por lo general, latarjeta grfica despliega objetos grficos representados por primitivasgeomtricas, como tringulos y lneas, los cuales estn definidos porvrtices. Estos vrtices son transformados para ser aplicados aldispositivo de salida, mediante proyeccin. Las primitivas sondiscretizadas mediante la rasterizacin, en donde las propiedades de losvrtices son interpoladas, incluyendo color, posicin y coordenadas detextura para generar los fragmentos. Los fragmentos que resultan de estainterpolacin son procesados para generar un color, que luego puedesufrir otra serie de operaciones antes de ser copiados en la imagen. Al sercopiados, los fragmentos pasan a llamarse pxeles, en donde susprincipales atributos son el color y transparencia.

    Luego de los operadores por fragmentos, hay operaciones que sonaplicadas a la imagen entera. Estas operaciones incluyen la inicializacino borrado de la imagen, as como la seleccin del bfer de imagen autilizar. Se suele utilizar dos bferes; uno de ellos es el bfer frontal elcual se muestra en pantalla, mientras se realiza el despliegue sobre otro(el bfer trasero). Para el caso de visualizacin estereoscpica, se puedenutilizar dos de estos bferes por cada centro de proyeccin.

    En la actualidad, los mdulos de procesamiento geomtrico yprocesamiento de fragmentos son programables, preferiblemente a altonivel, siendo muy populares los compiladores de Cg (C for graphics)[NVI07] y GLSL (OpenGL ShadingLanguage) [OPE07]. Estos transforman

    1 API: siglas de Application Programming Interface (interfaz de aplicacin deaplicaciones). Es un conjunto de mtodos, funciones o procedimientos que ofrece unalibrera para ser utilizado por otro programa como una capa de abstraccin.

    Proc.Geomtrico

    RasterizacinProc. deFragmentos

    vrtices primitivas fragmentos pxeles

    OperadoresFragmentos

    fragmentos

    Figura 2.1: pipeline grfico.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    16/161

    Captulo 2: Despliegue Directo de Volmenes

    -10-

    el cdigo fuente escrito en lenguaje C a cdigo ensamblador entendiblepor las unidades programables. Las tarjetas grficas suelen poseermltiples procesadores de vrtices y procesadores de fragmentos,necesarios para reducir cuellos de botella en elpipeline.

    A continuacin se describen brevemente cada uno de los mdulos delpipelinegrfico.

    a) Procesamiento Geomtrico

    Este mdulo realiza operaciones geomtricas sobre los vrtices yatributos del objeto, incluyendo transformaciones afines, proyeccin,transformacin del color, transformaciones de las coordenadas detextura y aplicacin de un modelo de iluminacin. Adicionalmente, seensambla la primitiva grfica a ser rasterizada. Esta primitiva puede serremovida por cull1, o por estar fuera de la pirmide de visualizacin. Tambin podra ser cortada parcialmente por dicha pirmide. En estecaso, puede ser dividida en una o varias primitivas, en donde puedencrearse nuevos vrtices, interpolando atributos de otros vrtices. Estasprimitivas son transformadas a coordenadas de dispositivo o viewport2,para ser discretizadas en fragmentos por el mdulo de rasterizacin. Elhardwaregrfico actual provee varios procesadores de vrtices, lo cualpermite procesar varios vrtices en paralelo.

    b) Rasterizacin

    Es la conversin de las primitivas geomtricas en fragmentos. Cadafragmento es una unidad discreta dentro de la primitiva grfica, y secorresponde con a un pxel del bfer de la imagen (framebuffer). Duranteesta etapa se interpolan los colores resultantes en los vrtices, paraobtener el color inicial del fragmento. Similarmente, se interpolan losvalores de profundidad para el bfer de profundidad (z-buffer),coordenadas de textura, y dems atributos que sern utilizadosposteriormente en el procesamiento de los fragmentos. Debido a que elfragmento puede ser modificado e incluso eliminado en los mdulossiguientes, an no se le denomina pxel. La salida de este mdulo son losdatos asociados al fragmento, como color, coordenadas de textura, valor

    de profundidad, normal, etc., por lo general obtenidos por interpolacin.

    c) Procesamiento de Fragmentos

    1Cullo eliminar: proceso que consiste en remover primitivas grficas no visibles de unaescena.

    2Viewport: rea de despliegue en pantalla; por lo general, es un rea rectangular queforma parte de la ventana asociada a la aplicacin.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    17/161

    Captulo 2: Despliegue Directo de Volmenes

    -11-

    Este mdulo combina el color proveniente de la rasterizacin con latextura y dems propiedades del fragmento, para determinar su color. Elhardwaregrfico actual permite procesar varios fragmentos en paralelo,al proveer mltiples procesadores de fragmentos. La salida principal de

    cada procesador de fragmento es una tupla de color RGBA (R=redo rojo,G=green o verde, B=blue o azul, A=alpha o alfa que indica el nivel detransparencia) y una profundidad.

    d) Operadores por fragmento

    Antes de almacenar el fragmento en el bfer de la imagen, se le puedenaplicar una serie de operaciones, e incluso su eliminacin. El fragmentopuede ser eliminado si es muy transparente, no es visible, o no formaparte de la mscara del estncil. Si el fragmento pasa estas pruebas, laoperacin de mezcla o blendingpuede ser utilizada para fusionar el colordel fragmento con el que se encuentra almacenado en el bfer de laimagen (bfer de color), y adems, podra aplicarse alguna operacinlgica o de mscara de bits sobre su color.

    2.1.1 Aplicacin de Textura

    Es una tcnica que consiste en aplicar los colores de una imagen(textura) a objetos grficos, comnmente definidos por tringulos. Latextura se encuentra en un espacio paramtrico denominado espacio detextura, con dominio normalizado en [0,1]. Cada pxel de la textura es

    denominado txel1

    . La textura, es comnmente una imagen digitalbidimensional; sin embargo, esta puede ser unidimensional, e inclusotridimensional.

    1 Txel (acrnimo de texturepixel): es la unidad mnima de textura. As como unaimagen digital se compone de pxeles, una textura se compone de txeles.

    fra mento

    textura 2D s

    t

    s

    t

    r

    textura 3D

    fragmento

    txelinterpolado

    txelinterpolado

    aplicacin de textura

    Figura 2.2: correspondencia entre fragmentos del polgono y txeles de la texturamediante coordenadas de textura. Las coordenadas de textura pueden serunidimensionales (s), bidimensionales (s,t) o tridimensionales (s,t,r).

    aplicacin de textura

    polgono polgono

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    18/161

    Captulo 2: Despliegue Directo de Volmenes

    -12-

    La aplicacin de textura es realizada generalmente sobre los vrtices delos polgonos de un mallado. Asignndole a cada vrtice las coordenadasde textura correspondientes, se pueden generar las coordenadas detextura de cada fragmento por interpolacin, bien sea durante larasterizacin o en los programas de fragmentos (ver Fig. 2.2). Esta

    interpolacin puede utilizar los mismos pesos requeridos para interpolarcolores, normales, o cualquier propiedad de los vrtices.

    En general, cada muestra de textura o txel asociada al fragmento delpolgono no coincide con las muestras originales de la textura. Por ello,es necesario realizar un remuestreo sobre la textura. El filtro deremuestreo suele ser lineal, bi-lineal o tri-lineal, segn la dimensin de latextura. Tambin puede tomarse la muestra ms cercana (ver Fig. 2.3).

    Consideremos una imagen 1D de n pxeles. Los ndices de la imagenvaran entre 0 y n1, pero el dominio de textura es [0,1]. Cualquiermuestreo que se realice dentro de las coordenadas ]1,[ 2121 nn cuenta con

    informacin suficiente para determinar el color resultante vainterpolacin lineal de colores, mientras que en las reas grises secuenta con un nico pxel (ver Fig. 2.4).

    Al muestrear sobre las reas grises, se pueden tomar varias opciones:

    interpolar la muestra de la frontera con color negro o con un colorespecificado por el usuario, obtener la muestra por extrapolacin lineal, osimplemente tomar la muestra del pxel de la frontera. En el rea devisualizacin cientfica, estas soluciones generan artefactos [LAM99] quepueden generar confusin y errores en la percepcin de un fenmeno.Por ello, suele restringirse el dominio de textura a ]1,[ 2121 nn . Este

    subdominio lo denominaremos dominio de interpolacin, el cual s esdependiente de las dimensiones de la imagen. Esto puede generalizarse

    textura 4x4

    filtro bi-

    lineal

    muestra ms

    cercana

    Figura 2.3: aplicacin de texturas 2D a un polgono cuadrado. En el ejemplo, loscuadrados son de 100x100 pxeles, y la textura de 4x4 txeles. Se puede observar elefecto de aplicar un filtro bi-lineal al realizar el muestreo (imagen izquierda), o tomar

    la muestra ms cercana (imagen derecha).

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    19/161

    Captulo 2: Despliegue Directo de Volmenes

    -13-

    para texturas 2D y 3D al restringir similarmente el dominio en cadacoordenada de textura (ver cuadrados azules con lneas punteadas enFig. 2.3).

    Dada una coordenada de textura x ]1,[ 2121 nn , se suele utilizar

    interpolacin lineal entre par de muestras consecutivas para obtener elcolor. Comnmente, si la coordenada est fuera del intervalo, esta esajustada a los bordes del intervalo, proceso que se conoce como clamp[WOO99]. Las muestras se almacenan comnmente en una estructurade arreglo. En el caso unidimensional (ver Fig. 2.4) denotemos el arreglocomo A[0..n1]; mediante interpolacin lineal, el valor del txel en elpunto xpuede ser obtenido como

    ][*][*)1()( rightAtleftAtxTexel , [Ec. 2.1]

    donde, xleft , xright y leftxt , con2

    1

    * nxx .

    2.1.2 Niveles de Detalle

    Una textura puede ser representada en distintas resoluciones (niveles dedetalle), por lo general en potencias de dos. Durante el texturizado, elsistema grfico elige para una primitiva grfica la textura cuya resolucinsea ms similar a la resolucin de la primitiva rasterizada. Esto seconoce como mipmapping [WOO99]. Para generar los niveles de detalle,consideremos una textura unidimensional de n= 2k pxeles, para algnk0. La resolucin ms fina es la textura original. El prximo nivel dedetalle tiene n/2 pxeles, la siguiente n/4 pxeles, y as sucesivamentehasta representar la textura por un nico pxel, el cual es el nivel dedetalle ms burdo. En total, esto suma k+1 niveles de detalle. Esteproceso puede aplicarse similarmente para texturas 2D y 3D. Sinembargo, en la prctica el mipmappinges muy raramente soportado paratexturas 3D.

    centro depxel

    0 dominio de textura

    0 1 2 3 4 5 n1

    1

    ndices del arreglo

    Figura 2.4: dominio de textura.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    20/161

    Captulo 2: Despliegue Directo de Volmenes

    -14-

    2.2 Despliegue de Volmenes

    El despliegue de volmenes, tambin llamado volume rendering, es unasimulacin aproximada de la propagacin de la luz a travs de un medioparticipante representado por el volumen [LAC95]. Con esta tcnica, se

    produce una imagen mediante el cmputo de la cantidad de luzalcanzada en cada pxel. Fsicamente, cuando la luz fluye a travs delvolumen, sta puede ser absorbida, esparcida (scattering1) y emitida;adicionalmente, se pueden producir otros tipos de interaccin tales comofosforescencia (absorcin y reemisin de energa luego de un pequeoretardo), y fluorescencia (absorcin y reemisin de la energa en unafrecuencia distinta). Sin embargo, el despliegue de volmenes no tienecomo objetivo simular todos estos fenmenos. Slo interesa el resultadoptico del proceso de propagacin y avance de la luz a travs delvolumen, quedando as un modelo ptico basado nicamente en emisiny absorcin [SAB88], [WIL92], [LAC95].

    En el apndice 1, se presenta la derivacin del modelo ptico, el cual hasido ampliamente utilizado en el despliegue de volmenes desde quefueron introducidos en los trabajos de [SAB88] y [WIL92]. En este modeloel vector de visualizacin que atraviesa al volumen es parametrizado con en [0,D], y el color resultante C se obtiene mediante la siguienteecuacin:

    D d

    decC0

    ')'(0)()(

    , [Ec.2.2]

    en donde c(), corresponde a la emisin, y t() a la absorcin del volumen

    a una distancia . El factor

    0

    ')'(exp d correspondiente a la

    extincin2 de la luz se puede interpretar como la transparencia T() delvolumen a una profundidad o distancia . Basada en la transparencia, se

    1 Scattering: efecto de dispersar o esparcir la luz. Esto se produce cuando la luzinteracta con un material a nivel molecular o atmico, y esta cambia de direccin. La

    reflexin difusa (reflexin en todas las direcciones) genera el efecto de scattering. En elmodelo de partcula, el scatteringsimple se basa en que un rayo de luz proveniente deuna fuente externa, slo puede ser esparcido o reflejado por una partcula. El scatteringmltiple considera que al una partcula esparcir un rayo de luz, este puede ser reflejadoa su vez por otras partculas, lo cual requiere de un modelo ptico ms complejo. En elModelo de Partcula, el scattering simple o mltiple ocurre al incluir al modelo unafuente de luz externa (ver Apndice 1).2 Extincin: atenuacin de la luz debido a la absorcin y el scattering [VAN81].Propiedad ptica que se refiere a la probabilidad por unidad de distancia de que unfotn sea absorbido o dispersado por el vxel.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    21/161

    Captulo 2: Despliegue Directo de Volmenes

    -15-

    puede calcular la opacidad acumulada en la travesa del rayo acualquier distancia , como:

    )(1)( T

    0')'(

    1)(dt

    e . [Ec. 2.3]

    Los volmenes utilizados para visualizacin suelen provenir dedispositivos especiales, tales como resonadores magnticos, tomgrafos,microscopios electrnicos, songrafos, etc. Tambin se obtienen de lasimulacin de dinmica de fluidos, informacin geolgica 3D de suelos,datos climatolgicos, entre otros. Cada muestra de un volumen sedenomina vxel (acrnimo de volume pixel). Aunque el vxel puede serconcebido como un cubo o celda [CLI87], en nuestro caso representa unamuestra proveniente de una funcin escalar continua s=s(x, y, z); con x,y, zR(ver Fig.2.5).

    Con el avance de la tecnologa, los aparatos de captura tienden cada vezms a mejorar la resolucin, pudindose obtener conjuntos de datos en

    el orden de los gigabytes. En algunos casos, el volumen no est dadocomo una malla regular. Por ejemplo, aquellos provenientes de muestreometeorolgico, o las mallas tetradricas muy utilizadas en elementosfinitos [LAC95], [MOR04]. Sin embargo, estos mallados pueden sertransformados en mallas regulares por interpolacin. Este trabajo seenfoca en la visualizacin de mallas regulares, por ser ms generales yampliamente utilizados.

    Figura 2.5: un volumen es representado por lo general como una malla regular, yalmacenado en un arreglo tridimensional de vxeles. Puede ser pensado como unconjunto de imgenes bidimensionales, las cuales constituyen sus cortes, separadas auna distancia fija h. Los puntos blancos representan las muestras conocidas de un cortedel volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    22/161

    Captulo 2: Despliegue Directo de Volmenes

    -16-

    2.2.1 Pipelinede Visualizacin de Volmenes

    Acorde a diversos trabajos presentados en la literatura, el volumen puedeser desplegado siguiendo un pipeline [LEV88], [WES97], [KNI02],[VEN04], [LJU06B]. A continuacin, se muestra un resumen de las

    etapas delpipeline, presentado en [KNI02]:

    a) Pre-procesamiento: el volumen a visualizar, tambin llamado dataset,podra no estar en un formato manejable para visualizacin. Por ejemplo,en una serie de imgenes independientes con formato Windows Bitmap(.bmp), o formato DICOM (Digital Imaging and Communications inMedicine) [DIC08]. En esta etapa se puede convertir el formato deldataset en uno adecuado para despliegue, y puede adicionalmenteincluir el particionamiento del volumen, extraer un subvolumen,cuantizar colores, aplicar un filtro para reducir el ruido, pre-calcular elgradiente por vxel, etc.

    b) Reconstruccin: se refiere a la interpolacin de muestras, para estimarel valor de un vxel no conocido dentro del volumen. La reconstruccinpuede expresarse matemticamente como la convolucin de una funcincon un krnel [FOL90]. Comnmente el hardwareest optimizado paraestimar las muestras inexistentes con filtros lineales para texturas 1D,bi-lineales para texturas 2D y tri-lineales para texturas 3D [WOO99].

    c) Clasificacin: consiste en la asignacin de propiedades pticas(emisin y absorcin) a los vxeles del volumen. La reconstruccin y laclasificacin pueden efectuarse en orden inverso, pero la calidad en eldespliegue puede verse afectada drsticamente en el caso de realizarprimero la clasificacin (pre-clasificacin). Esto ser abordado msadelante en este captulo.

    d) Shading: el shadingconsiste en modular el color y el brillo del vxel alconsiderar su interaccin con una luz externa. El modelo de iluminacinde Blinn-Phong [FOL90] es uno de los ms utilizados para visualizacinde volmenes. Este incluye tres trminos, el ambiental que representa laluz proveniente en todas las direcciones, el difuso que representa la luzreflejada (scattered) isotrpicamente en todas las direcciones, y elespecular que representa la luz reflejada en direccin al visor parasimular superficies pulidas. El gradiente normalizado calculado en laetapa de pre-procesamiento suele ser utilizado en esta etapa. El shadingpuede ser precalculado para las muestras existentes, e interpolado paralas inexistentes, o bien, se puede interpolar el gradiente normalizado delas muestras existentes para realizar el shading en las muestrasinterpoladas. En este trabajo no se consideran luces externas,resumiendo el modelo a luz ambiental.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    23/161

    Captulo 2: Despliegue Directo de Volmenes

    -17-

    e) Composicin: es la ltima etapa delpipeline, y consiste en la mezcla delos colores modulados resultantes de la etapa de shading, a lo largo de latravesa de cada rayo que atraviesa el volumen.

    A continuacin se estudia la clasificacin, y seguidamente la solucinnumrica a la ecuacin de visualizacin de volmenes, para definir losoperadores de composicin over[LAC95] y under[POR84], [RUI06].

    2.2.2 Clasificacin

    Al desplegar un volumen, el usuario decide qu materiales o estructurasvisualizar. Para ello, se le asignan las propiedades pticas de emisin cyabsorcin a cada vxel del volumen, proceso que se denominaclasificacin.

    La clasificacin puede realizarse mediante segmentacin. En este caso, elvolumen puede ser particionado en sus estructuras especficas que loconforman; as, se le asigna distintas absorciones y colores a lasdistintas partes del volumen. Otra alternativa para la clasificacin es lamanipulacin de funciones, que en el contexto de visualizacin devolmenes se denominan funciones de transferencia, que pueden serunidimensionales o multidimensionales [KNI02B].

    Las funciones de transferencia unidimensionales, asignan laspropiedades pticas a cada vxel basndose en el valor escalar s delvxel; por ejemplo, las muestras con valores altos en una tomografa deun cuerpo humano, por lo general representan la estructura sea, y se leasocia el color blanco. En la Fig. 2.6 se muestran un mismo volumendesplegado con diferentes funciones de transferencias. Adicionalmente,se puede incluir ms informacin para asignarle las propiedades pticas

    Figura 2.6: efecto de aplicar distintas funciones de transferencia.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    24/161

    Captulo 2: Despliegue Directo de Volmenes

    -18-

    a un vxel (funciones de transferencias multidimensionales), como elhistograma de frecuencias, las derivadas de primer y segundo orden, lanormal, la longitud del gradiente, la posicin de la muestra, productopunto entre la direccin de la luz y la normal, etc. En este trabajo nosbasaremos nicamente en el valor puntual del vxel para asignarle sus

    propiedades pticas (ver Fig. 2.7).

    Las funciones de transferencia unidimensionales suelen ser funcioneslineales definidas a trozos (linear piece-wise), en donde cada muestra sesaplicada a un color c(s)=RGB y una absorcin (s)=A, para conformar unatupla RGBA [ENG01]. Para definir esta aplicacin, se pueden editar loscuatro canales de manera individual (ver Fig. 2.8a). Partiendo de laidentidad, se pueden agregar y modificar puntos de control, para definircada funcin a trozos. Sin embargo, es tedioso editar los cuatro canalespor separados, as como asignar un determinado color a un determinado

    s

    r,g,b,a

    s

    r,g,b,a

    Figura 2.8: edicin de la funcin de transferencia unidimensional. (a) Por canal; eleje xrepresenta los valores posibles de s, comnmente normalizados en [0,1], y el ejeyes cada componente de la tupla RGBA, tambin normalizadas en [0,1]. (b) Funcinde transferencia equivalente asignando colores RGB en los nodos de la funcinabsorcin.

    (a) (b)

    vxel s=s(x,y,z) funcin detransferencia

    c(s) = colors = absorcin

    Figura 2.7: clasificacin con funciones de transferencia unidimensionales. Al aplicarla funcin de transferencia a una muestra sdel volumen, obtenemos su emisin cysu absorcin .

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    25/161

    Captulo 2: Despliegue Directo de Volmenes

    -19-

    valor de s o rango de valores de s. Una alternativa ms simple esmanipular slo la funcin de la absorcin, y asignar un color a cadapunto de control [KNI03]. Los colores intermedios son obtenidos porinterpolacin (ver Fig. 2.8b). De esta manera, resulta ms intuitiva laasignacin de colores a distintos rangos de valores de vxeles, que

    idealmente pueden representar distintos materiales o estructuras.

    Existen dos tipos bsicos de clasificacin; estos son, pre-clasificacin ypost-clasificacin. La diferencia fundamental entre ellas es el orden enque se llevan a cabo los procesos de clasificacin e interpolacin demuestras1. La pre-clasificacin ocurre cuando se aplica la funcin detransferencia a cada vxelantes de que estos sean interpolados. As, enuna etapa de pre-procesamiento, se almacena el volumen como unarreglo tridimensional de valores RGBA [FAN96], y la interpolacin esrealizada sobre estos valores y no sobre muestras escalares.Contrariamente, post-clasificacin ocurre cuando se aplica la funcin detransferencia al resultado de la interpolacin de las muestras escalaresdel volumen. Los procesos de pre-clasificacin y post-clasificacinproducen resultados diferentes si las funciones de transferencia no sonconstantes o la identidad [ENG01]. Con la pre-clasificacin se atenan

    1 Interpolacin de muestras: la interpolacin de muestras se utiliza durante el muestreopara la construccin de vxeles inexistentes en el volumen a partir de los vxelesexistentes [ENG01], y evaluar numricamente la Ec. 2.2. Cuando se utiliza aceleracinen hardware, esta interpolacin se realiza en el procesador de fragmentos, cuando semuestrea el volumen almacenado como textura.

    s1 s2smid

    r(s1)=0.29

    r(smid)=1.0

    r(s2)=0.59

    (r(s1)+ r(s1))/2=0.44

    r(s)

    s

    Figura 2.9: pre-clasificacin versus post-clasificacin. Se desea muestrear elvolumen en el medio de dos muestras conocidas s1 y s2. Con la pre-clasificacin, elresultado es un rojo oscuro con valor 0.44, luego de interpolar los rojos pre-clasificados de las muestras. Con la post-clasificacin se obtiene un rojo intenso convalor 1.0, resultante de clasificar la muestra interpolada smid. Este ejemplo ilustra lafuerte atenuacin producto de la pre-clasificacin.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    26/161

    Captulo 2: Despliegue Directo de Volmenes

    -20-

    las altas frecuencias presentes en la funcin de transferencia, puesto quelos valores RGBA son interpolados. Con la post-clasificacin las altasfrecuencias se hacen notar en la imagen final, debido a que la funcin detransferencia es aplicada a la muestra interpolada. La Fig. 2.9 muestragrficamente el resultado de ambas tcnicas para la componente roja r(s)

    de la tupla RGBA.

    Otro tipo de clasificacin es la pre-integrada [ENG01]. En este caso, envez de clasificar las muestras individuales del volumen, se clasifica cadasegmento delimitado por pares de muestras. Esto requiere la creacin deuna tabla bidimensional, conteniendo las integrales para cada par demuestras cuantizadas. Cuando la distancia hentre muestras vara comoen el caso de visualizacin de mallas tetradricas [ROE02] se requiereuna tabla bidimensional por cada valor cuantizado de h, lo cual puedealmacenarse eficientemente en una textura 3D.

    Los algoritmos de despliegue de volmenes, adems de llevar a cabo elproceso de clasificacin de los datos, buscan resolver la ecuacin querige al modelo ptico del paso de los rayos de luz a travs del volumen, locual se explica en la siguiente seccin.

    2.2.3 Solucin Numrica de la Ecuacin de Visualizacin deVolmenes

    Del modelo ptico derivado en el apndice 1, se obtuvo la siguienteecuacin:

    D d

    decC0

    ')'(0)()(

    . [Ec. 2.4]

    Desafortunadamente en esta ecuacin no est reflejado el proceso demuestreo del volumen y clasificacin, puesto que el color y absorcinestn en funcin del parmetro [0,D] de la ecuacin paramtrica de larecta que atraviesa el volumen. Centrando el anlisis en post-clasificacin, esta ecuacin puede ser re-escrita como:

    D dxs dexsxscC0

    ')))'(((0)))((()))(((

    , [Ec. 2.5]

    donde, x() es la parametrizacin del rayo evaluada en , que da comoresultado un punto (x,y,z). Note que en cada (x,y,z) se evala el campoescalar s(x,y,z) para obtener el valor interpolado o muestra s, y a esta seaplica la funcin de transferencia para obtener su color y absorcin.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    27/161

    Captulo 2: Despliegue Directo de Volmenes

    -21-

    Para calcular el color de salida C de un pxel particular, se integra laemisin de la luz representada por c(s) auto-atenuada por su respectivaabsorcin (s), en el intervalo de interseccin del rayo con el volumen[0,D] (Ver Fig. 2.10). En cada punto x() del rayo, la emisin esadicionalmente atenuada por la transparencia en el segmento definido en[0,).

    Para facilitar la evaluacin de la ecuacin, el rayo es dividido en n= hD/ segmentos, con un paso fijo de longitud h. Dada que la divisin D/hnonecesariamente es exacta, la ecuacin puede escribirse de maneraaproximada como:

    n

    i

    ih

    hi

    dxs

    dexsxscC1 )1(

    ')))'(((

    0)))((()))(((

    . [Ec. 2.6]

    La integral del trmino de transparencia puede separarse en dos: latransparencia acumulada hasta el segmento anterior, y la transparenciahasta el punto x() del segmento i-simo:

    n

    i

    ih

    hi

    dxsdxs

    dexsxscC hi

    hi

    1 )1(

    ')))'(((')))'(((

    )1(

    )1(

    0)))((()))(((

    . [Ec. 2.7]

    Dado que

    hi

    dxs)1(

    0

    ')))'(((exp no depende de , nos queda:

    0 D

    volumen

    planoimagen

    rayo x()

    Figura 2.10: determinacin de un pxel de la imagen. Se calcula la acumulacin decolor y opacidad a lo largo del rayo, desde que este entra al volumen, hasta que sale.El rayo es parametrizado mediante x(). As, barriendo desde 0 hasta D, seconsidera todo el segmento de interseccin con el volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    28/161

    Captulo 2: Despliegue Directo de Volmenes

    -22-

    n

    i

    ih

    hi

    dxsdxs

    dexsxsceC hi

    hi

    1 )1(

    ')))'(((')))'((()1(

    )1(

    0 )))((()))(((

    . [Ec. 2.8]

    La integral presente en el trmino de transparencia del intervalo [0,(i-1)h]puede a su vez ser expresado como una suma de integrales:

    n

    i

    ih

    hi

    dxsdxs

    dexsxsceC hi

    i

    j

    jh

    hj

    1 )1(

    ')))'(((')))'(((

    )1(

    1

    1 )1( )))((()))(((

    n

    i

    ih

    hi

    dxsi

    j

    dxs

    dexsxsceC hi

    jh

    hj

    1 )1(

    ')))'(((1

    1

    ')))'(((

    )1()1( )))((()))(((

    n

    i

    ih

    hi

    dxsi

    j

    dxs

    dexsxsceC hi

    hj

    jh

    1 )1(

    ')))'(((2

    0

    ')))'(((

    )1(

    )1(

    )))((()))(((

    1

    0

    )1( ')))'(((1

    0

    ')))'(((

    )))((()))(((

    )1(

    n

    i

    hi

    ih

    dxsi

    j

    dxs

    dexsxsceC ih

    hj

    jh

    . [Ec 2.9]

    Note que las integrales resultantes en la Ec. 2.9 barren una pequea

    rea de longitud h o inferior, y generalmente son aproximadas alconsiderar que h es pequeo. Se utiliza una aproximacin numricadenominada Aproximacin de la Composicin Volumtrica [LAC95] (verFig. 2.11).

    0

    volumen

    planoimagen

    rayo x()

    h

    Figura 2.11: determinacin de un pxel de la imagen a partir de las contribucionesde color y opacidad de las muestras equidistantes que se encuentran la lo largo delrayo que atraviesa el volumen. En cada segmento de longitud h, se asumeconstantes la emisin y la absorcin. La distancia hentre muestras comnmente esconstante.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    29/161

    Captulo 2: Despliegue Directo de Volmenes

    -23-

    Para evaluar la ecuacin numricamente, tpicamente la emisin y laabsorcin se asumen constantes dentro de cada intervalo. As, podemosrenombrar s(x()) como si, en el segmento delimitado por [ih, (i+1)h].

    1

    0

    )1( ')(1

    0

    ')(

    )()(

    )1(

    n

    i

    hi

    ih

    ds

    ii

    i

    j

    ds

    dessceC ihi

    hj

    jh

    j

    [Ec. 2.10]

    En este contexto, (si) y c(si) no dependen de la variable de integracin encada integral. As, podemos escribir la ecuacin como:

    1

    0

    )1( ')(1

    0

    )()()(

    n

    i

    hi

    ih

    ds

    ii

    i

    j

    shdessceC ih

    i

    j

    , [Ec. 2.11]

    en donde la integral remanente puede escribirse como:

    hi

    ih

    ds

    de ihi

    )1( ')(

    =)(

    1 )(

    0

    )(

    0

    ')(

    0

    i

    shhs

    h ds

    s

    edede

    i

    i

    i

    . [Ec. 2.12]

    Sustituyendo Ec. 2.12 en la Ec. 2.11 se obtiene

    1

    0

    )(1

    0

    )()1)((

    n

    i

    sh

    i

    i

    j

    shij esceC

    . [Ec. 2.13]

    Sea el color ci = c(si), y la opacidad i = 1)( ishe . La ecuacin es escrita

    en su forma ms simple como:

    1

    0

    1

    0

    )1(n

    i

    iij

    i

    j

    cC

    ...)1)(1()1(

    221011000 cccC [Ec. 2.14]

    1120)1)...(1( nnn c .

    Para evaluar la Ec. 2.14 se puede utilizar el operador digital underiterativamente, mezclando las muestras en el orden front to back, esdecir, desde la muestra ms cercana hasta la ms lejana al ojo [RUI06].Este operador se define como:

    c:= (1)ici+ c,

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    30/161

    Captulo 2: Despliegue Directo de Volmenes

    -24-

    := (1)i+, [Ec. 2.15]

    en donde cy son inicializados en 0. Similarmente, si componemos lasmuestras en sentido back to front (desde la ms lejana hasta la mscercana al ojo), se puede utilizar el operador digital over [LAC95] que se

    define como:

    c:= ici+ (1i)c, := i+ (1i), [Ec. 2.16]

    e igualmente cy son inicializados en 0, aunque en este caso el valoracumulado en no es utilizado en la composicin del color. La tcnicams comn para explotar el hardwaregrfico es texturizar polgonos concortes del volumen y desplegarlos desde el corte ms lejano hasta el mscercano, utilizando el operador over para obtener en cada pxel la

    evaluacin de la Ec. 2.14. El operador overes especificado con la libreragrfica OpenGL de la siguiente manera:

    glEnable(GL_BLEND);glBlend(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    El blendingo mezcla hace que el color cacumulado en el bfer de colorse combine el con color arrojado por el procesador de fragmentos dealguna manera. La constante GL_SRC_ALPHA en el primer parmetro delprocedimiento glBlend indica que el color ci arrojado por el procesadorde fragmento es multiplicado por su respectiva opacidad i, y la

    constante GL_ONE_MINUS_SRC_ALPHA indica que el color cacumulado enel bfer de color es multiplicado por (1i). En caso que el color de salidadel procesador de fragmento ya est multiplicado por su respectivaopacidad, se puede configurar la mezcla como:

    glBlend(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

    Tambin es posible configurar la mezcla para el operador under si elcolor ci y la opacidad i estn pre-multiplicados, mediante la siguienteinvocacin:

    glBlend(GL_ONE_MINUS_DST_ALPHA, GL_ONE);

    en donde la constante GL_ONE_MINUS_DST_ALPHA especificada en elprimer parmetro indica que el valor ici es multiplicado por (1)durante la mezcla.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    31/161

    Captulo 2: Despliegue Directo de Volmenes

    -25-

    A continuacin se estudian los algoritmos clsicos de visualizacin devolmenes, tanto aquellos basados en software, como los acelerados porhardware.

    2.3 Algoritmos para Visualizar VolmenesLas tcnicas de visualizacin de volmenes basadas en software mspopulares son el ray casting, splatting, y shear-warp, mientras que lasaceleradas por hardware se basan generalmente en el texturizado depolgonos. En este ltimo caso, hay 3 tcnicas bsicas: planos alineadosal objeto, que utiliza texturas 2D; planos alineados al viewport, queutiliza texturas 3D; y spherical shells (conchas esfricas), que utilizatambin texturas 3D [LAM99]. En todas las tcnicas puede utilizarseclasificacin pre-integrada, pre-clasificacin o post-clasificacin. Diversasinvestigaciones demuestran que las tcnicas basadas en software

    tambin pueden ser aceleradas por hardware grfico para mejorar eltiempo de respuesta [KRU03], [CRA93], [CAR00], [SCH01].

    A continuacin se estudia brevemente cada una de estas tcnicas, paraluego introducir las estrategias para desplegar volmenes de grantamao.

    2.3.1 Ray Casting

    El ray castingse basa en el lanzamiento de un rayo por cada pxel de laimagen desde el centro de proyeccin, para evaluar la ecuacin de

    composicin volumtrica [HEG93] (Ver Fig. 2.12). En general, el rayoatraviesa el volumen en una direccin arbitraria, y las muestrasrequeridas durante la travesa del rayo no coinciden con las muestrasoriginales del volumen. Por lo tanto, se suele utilizar un filtro para elremuestreo. Comnmente se emplea un filtro tri-lineal entre las 8muestras ms cercanas a la muestra a reconstruir. Sin embargo puedenaplicarse filtros ms sofisticados que involucren ms cantidad demuestras, como filtros gaussianos y bi-cbicos [DRE88].

    Por lo general, la implementacin del ray casting es realizada porsoftware. Dado que el algoritmo requiere de mucho cmputo, y aunado aproblemas de localidad espacial, se dificulta la respuesta en tiempo real.El despliegue se puede acelerar mediante la utilizacin de las tcnicas determinacin temprana del rayo y salto de espacios vacos [LEV90],[DAN92]. La terminacin temprana del rayo consiste en truncar latravesa del rayo cuando se acumule un umbral de opacidad definidopor el usuario (comnmente de 0.95 a 0.99). El resto del rayo puede

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    32/161

    Captulo 2: Despliegue Directo de Volmenes

    -26-

    ignorarse, puesto que el aporte de las muestras remanentes esinsignificante en el color final del pxel.

    La estrategia de saltar espacios vacos puede implementarse dividiendo elvolumen en bloques. Por cada bloque se puede precalcular el valor de

    muestra mnimo y el valor mximo (smin,smax), y si la funcin detransferencia indica que todas esas muestras son transparentes, elbloque se considera vaco. Cuando un rayo entra a un bloque vaco, sedetermina el punto de salida del bloque para continuar la travesa delrayo [KRU03].

    Este tipo de algoritmos recorre la imagen en el mismo orden en que lospxeles estn almacenados en memoria principal (algoritmo image orderu orden imagen) [LAC95]. Sin embargo, el problema principal es que nose accede al volumen en el orden en que est almacenado, ya que losrayos de visualizacin lo atraviesan en cualquier direccin. Comoresultado, los algoritmos de ray casting ocupan mucho tiempo enclculos de posicin de las muestras, y no explota la localidad espacialde datos volumtricos, limitando el rendimiento en computadoresconvencionales.

    Hoy en da, con la flexibilidad de hacer programas que se ejecutan en losprocesadores de fragmentos, el ray castingpuede ser implementado conaceleracin en hardwareen tiempo real [KRU03]. Es este caso, en cadaprograma de fragmento se evala la ecuacin de composicinvolumtrica para un pxel de la imagen. Para disparar los programas defragmentos, se considera el volumen como un cubo (6 cuadrilteros).Rasterizando las caras visibles del cubo, e interpolando las coordenadas

    Ojo

    pxel

    imagen

    Figura 2.12: el ray casting. Por cada centro de pxel de la imagen se lanza un rayo.Aquellos rayos que atraviesan el volumen acumulan un color y opacidad. El pasoentre muestras es constante. Un filtro suele ser aplicado para obtener las muestrasrequeridas. Los puntos rojos son los puntos de entrada de cada rayo en el volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    33/161

    Captulo 2: Despliegue Directo de Volmenes

    -27-

    de los vrtices de dichas caras, se disparan los programas de fragmentoscon el punto de entrada respectivo. El punto de salida del rayo puedehallarse de manera anloga al punto de entrada, pero esta vezrasterizando las caras no visibles del cubo (ver Fig. 2.13). El punto desalida tambin puede determinarse durante la travesa del rayo, cuando

    el punto del rayo a considerar se encuentre fuera del volumen. Porsimplicidad, este chequeo puede realizarse en coordenadas objeto ocoordenadas de textura, en donde el volumen est alineado a los ejes.

    2.3.2 Splatting

    En contraste con los algoritmos de ray casting, los algoritmos basados ensplatting iteran sobre los vxeles, sin requerir interpolacin de lasmuestras del volumen. Estos algoritmos calculan la contribucin de cadavxel pre-clasificado sobre la imagen mediante un filtro sobre unavecindad de pxeles (ver Fig. 2.14). Este filtro es denominado el footprintdel vxel, y define los pesos de la contribucin del vxel sobre pxeles dela imagen.

    Los algoritmos de splattingson de orden objeto (object order), dado que la

    iteracin principal es sobre los vxeles y no los pxeles, explotando lalocalidad espacial en el acceso al volumen. La dificultad principal delsplattingconsiste en el clculo del filtro sobre la imagen, puesto que lospesos sobre cada pxel varan vxel a vxel, y el tamao y ubicacin delfiltro es dependiente de las transformaciones sobre la vista [LAC95].

    Ojo

    pxel

    imagen

    Figura 2.13: obtencin del punto de entrada y punto de salida de cada rayo porinterpolacin lineal. Las lneas verdes corresponden a las caras frontales delvolumen, y las lneas rojas a las traseras. Al rellenar las caras frontales y traserasinterpolando las posiciones de los vrtices, obtenemos por cada pxel de la imagen elpunto de entrada y salida de cada rayo en el volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    34/161

    Captulo 2: Despliegue Directo de Volmenes

    -28-

    El splattingpuede ser implementado con ayuda del hardwaregrfico. Eneste caso, el footprint es representado en una textura 2D, donde cadatxel de la textura representa un peso sobre un pxel destino [CRA93].Cada vxel puede ser proyectado como un pequeo polgono, cuyo colorasociado es el color del vxel. Este polgono es texturizado con el

    footprint, configurando el hardwaregrfico de manera tal que el color decada fragmento a generar sea la atenuacin el color del polgono con elcorrespondiente txel del footprint. Cada fragmento generado es a su vezcombinado con el pxel correspondiente en el bfer de color para irevaluando la ecuacin de composicin volumtrica.

    a x a y a zy

    xz

    proyeccin

    shear

    warping

    espacio objeto espacio objetosheared

    imagen deformada

    imagen finalseleccin

    Figura 2.15: proceso de shear-warpcon proyeccin paralela. De las tres copias delvolumen se selecciona la ms perpendicular en coordenadas objeto a los rayos devisualizacin. Segn la inclinacin de los rayos respecto a los cortes, los cortes sedesplazan (shear), llevndolos a un espacio en donde los rayos son perpendicularesa los cortes. Los cortes desplazados se proyectan sobre el plano imagen, en donde seexplota la localidad espacial en la imagen y objeto. Luego es necesaria unatransformacin denominada warpingpara corregir la deformacin en la imagen.

    proyeccin

    planoimagen

    vxelesfootprint

    footprintkernel

    ojo

    Figura 2.14: splatting. Cada vxel es proyectado sobre el plano imagen, en donde seaplica un filtro para obtener la contribucin de dicho vxel sobre los pxeles.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    35/161

    Captulo 2: Despliegue Directo de Volmenes

    -29-

    2.3.3 Shear-warp

    La factorizacin shear-warp consiste en transformar el volumen a unsistema de coordenadas intermedio denominado espacio objetodeformado o desplazado (sheared object space) en el que todos los rayos

    de visualizacin son paralelos al tercer eje de coordenadas. En eseespacio, los cortes del volumen estn tanto alineados al objeto comoalineados al viewport [LAC95]. Esto permite la generacin de una imagenintermedia, proyectando los cortes desplazados sobre un plano,accediendo al volumen corte por corte. Luego, se aplica unatransformacin 2D llamada warpinga la imagen desplazada para generarla imagen final (ver Fig. 2.15). Para explotar la localidad espacial, sealmacenan 3 copias del volumen: una por cada eje, y se elije la copia msperpendicular a la direccin de visualizacin.

    Matemticamente, la factorizacin shear-warp consiste en expresar la

    matriz de visualizacin Mviscomo un producto de dos matrices:

    Mvis=Mwarp*Mshear. [Ec. 2.17]

    La matriz Mshear es utilizada para desplazar los cortes, y Mwarp es lamatriz de warping, que corrige la deformacin 2D en la imagenintermedia.

    La versin con proyeccin paralela de este algoritmo tiene sus orgenesen dos trabajos [KLE85], [CAM92]. Posteriormente, la versin perspectivafue propuesta por Lacroute [LAC95]. Todas estas implementacionesiniciales se basaban en software, tanto para la generacin de la imagenintermedia como para el warping. La versin estreo fue presentada en[TAO96], y posteriormente, el tiempo de respuesta fue mejorado alrealizar el warping va aplicacin de texturas 2D [PFI99], [CAR00],[SCH01]. La calidad de la cuantizacin de vectores normales fuemejorada para el clculo del modelo de iluminacin [CAR00], utilizandola subdivisin uniforme de un icosaedro. En los ltimos aos hancontinuado las investigaciones sobre visualizacin de volmenes basadoen shear-warp, tanto en software [SWE02] como en hardware [CAM04],incluyendo la versin pre-integrada [SCH03].

    Es importante sealar que los algoritmos basados en shear-warpson deorden imagen y orden objeto a la vez, por lo tanto explotan mejor lalocalidad espacial que los algoritmos de ray castingy splatting, teniendoas un rendimiento superior. El cambio de copia puede generar unnotable fallo de pgina, que puede afectar momentneamente lainteractividad con el volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    36/161

    Captulo 2: Despliegue Directo de Volmenes

    -30-

    2.3.4 Texturas 2D

    La visualizacin de volmenes basado en aplicacin de texturas requieregeometras intermedias que se mezclan y texturizan con cortes planos delvolumen. Cuando se utilizan planos alineados a los ejes del objeto, el

    volumen puede ser pensado como una pila de cortes que se almacenanen texturas 2D. De manera similar a shear-warp, se almacenan 3 copiasdel volumen, y se elige la ms perpendicular a la direccin devisualizacin (ver Fig. 2.16). Para realizar el despliegue, se texturiza unapila de polgonos alineados al objeto [LAM99], y se mezclan tpicamentecon el operador over, para generar la imagen final (ver Fig. 2.17).

    El nmero de polgonos a texturizar est limitado en principio a lasdimensiones del volumen. Sin embargo, utilizando multi-texturas, sepuede interpolar cortes durante el despliegue va register combiners

    (c)(a) (b) (d)

    Figura 2.17: despliegue de polgonos texturizados alineados al objeto. Los polgonosalineados (a) son texturizados uno por uno, asignndole coordenadas de textura acada vrtice (b). Cada polgono texturizado (c) es mezclado mediante el operador over,para obtener la imagen resultante (d). Note que se pueden distinguir los cortes delvolumen por insuficiencia en el nmero de cortes, y ausencia de interpolacinespacial.

    Cambio de copia

    Figura 2.16: visualizacin de volmenes utilizando texturas 2D. Se almacenan 3copias del volumen, y se selecciona la pila de cortes ms perpendicular a la direccinde visualizacin.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    37/161

    Captulo 2: Despliegue Directo de Volmenes

    -31-

    (combinadores de registros) para aproximar la interpolacin tri-lineal[ENG01], [GAR03]. Adicionalmente, en la actualidad se puede realizar lainterpolacin tri-lineal entre dos cortes del volumen programando losprocesadores de fragmentos.

    Entre las bondades de este mtodo, se considera su fcil implementaciny excelente tiempo de respuesta. La portabilidad de esta tcnica es otropunto a favor, ya que la aplicacin de texturas 2D es soportada por lamayora de las tarjetas grficas. Para volmenes relativamente grandes,en donde una copia del volumen excede la capacidad de la tarjeta grfica(pero no los cortes individuales), el despliegue puede efectuarsepaginando los cortes del volumen. Esta paginacin es tpicamenterealizada en forma automtica por el manejador o drivergrfico.

    Cabe destacar que al rotar los polgonos, cambia la distancia entre lasmuestras. Para obtener consistencia entre frames (cuadros de imagen o

    Figura 2.19: despliegue alrededor de los 45 grados. Note que las muestras utilizadasentre una copia y otra difieren, por lo que el brillo en la imagen final puede cambiarligeramente.

    proyeccin paralela proyeccin perspectiva

    polgonos

    rayos

    muestrasinterpoladas

    Figura 2.18: distancia entre muestras. Al texturizar polgonos alineados al objeto, ladistancia entre muestras cambia por rotacin (proyeccin paralela) o por rayo(proyeccin perspectiva).

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    38/161

    Captulo 2: Despliegue Directo de Volmenes

    -32-

    fotogramas1) hay que corregir las opacidades de la muestras, ya que amayor distancia recorrida por el rayo entre dos muestras, mayor es laabsorcin o atenuacin (ver Fig. 2.18). Las desventajas de este mtodoson similares a las de shear-warp, debido a la necesidad de mantener 3copias del volumen y la ausencia de interpolacin espacial. En ngulos

    cercanos a 45 grados, justo en el momento de cambiar la copia activa,puede notarse un pequeo cambio en el brillo de la imagen, debido a quelas muestras utilizadas en la composicin volumtrica suelen diferir (verFig. 2.19).

    2.3.5 Texturas 3D

    El volumen puede ser almacenado en una textura 3D, en cuyo caso serequiere una sola copia en almacenamiento. Para visualizar el volumen,comnmente se texturizan y despliegan una serie de polgonos, paralelosal viewport, en sentido back to front (desde el ms lejano hasta el mscercano) y se mezclan con el operador over(ver Fig. 2.20). Akeley [AKE93]en 1993 fue el primero en mencionar la posibilidad de utilizar unatextura 3D para acelerar la visualizacin. Seguidamente, esta idea fueutilizada y mejorada en otros trabajos del ao siguiente [CAB94],[GUA94], [WIL94].

    1 Fotograma: tambin llamado cuadro de imagen, o frame en ingls, es una imagenparticular dentro de un conjunto de imgenes que componen una animacin.

    (b)

    (c)

    (d)

    (a)

    Figura 2.20: visualizacin de volmenes utilizando texturas 3D y planos alineados alviewport. (a) Planos alineados al viewportajustados al volumen. (b) Se muestran losplanos alineados para 3 ngulos distintos de rotacin. (c) Proyeccin paralela; ladistancia entre muestras no vara. (d) Proyeccin perspectiva; la distancia entremuestras vara rayo a rayo.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    39/161

    Captulo 2: Despliegue Directo de Volmenes

    -33-

    Este mtodo utiliza comnmente interpolacin tri-lineal para reconstruirlas muestras requeridas. Para el caso de proyeccin paralela, la distanciaentre muestras interpoladas es siempre la misma, independientementedel ngulo de rotacin. Para la proyeccin perspectiva, la distancia entre

    muestras vara rayo por rayo.

    Las tcnicas de planos alineados al objeto (basados en texturas 2D) y alviewport (basados en texturas 3D) generan ligeros artefactos bajoproyeccin perspectiva, si la variacin de la distancia entre muestras porrayo no es considerada. LaMar et al. proponen una solucin utilizandoconchas esfricas (spherical shells) texturizadas con una textura 3D[LAM99], tal y como se muestra en la Fig. 2.21. Debido a que las conchasson concntricas respecto al ojo, la distancia entre muestras entre par deconchas es constante, para todos los rayos que parten desde el centro.

    Cada concha o semiesfera es aproximada por un conjunto de tringulos,para poder explotar el hardware grfico. Si la triangulacin es muyburda (pocos tringulos), tambin lo ser la aproximacin del mallado ala esfera, agudizando la variacin de la distancia entre cada par demuestras. Una triangulacin muy fina, requiere de muchos vrtices a serenviados al sistema grfico, en detrimento del tiempo de respuesta. Unbalance entre calidad y velocidad de despliegue debe ser considerado alconstruir la triangulacin. Al igual que con planos alineados al viewport,un cmputo adicional debe ser efectuado para descartar geometra fueradel volumen, el cual puede efectuarse por software en coordenadasobjeto [PLA02], [BEN05], o por hardware configurando los planos decorte [BOA01].

    Madero et al. [MAD02] muestran en la prctica que la calidad dedespliegue utilizando planos alineados al viewport es superior queconchas esfricas al visualizar al volumen perpendicularmente respecto a

    (a) (b)

    Figura 2.21: visualizacin de volmenes utilizando texturas 3D y spherical shells.(a) Se muestran las conchas esfricas para 3 ngulos distintos de rotacin. (b)Proyeccin perspectiva. Observe que la distancia entre muestras es siempre lamisma, salvo en las fronteras de volumen.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    40/161

    Captulo 2: Despliegue Directo de Volmenes

    -34-

    alguna de sus caras. Las conchas esfricas en cambio generan mejoresresultados en ngulos cercanos a los 45 y 135 grados. Debido a lainterpolacin tri-lineal en la reconstruccin de las muestras, se reducenlos artefactos que generan algoritmos basados en texturas 2D y shear-warp. Sin embargo, la interpolacin tri-lineal suele ser ms lenta que la

    interpolacin bi-lineal, puesto que requiere de ms operacionesaritmticas y accesos al volumen. Si el volumen es muy grande, y latextura no puede almacenarse completamente en memoria de textura, eldespliegue del volumen no puede efectuarse, a menos que se utilice unatcnica ms sofisticada conocida como bricking[LAM99].

    2.4 Despliegue de Volmenes de Gran Tamao

    Debido al crecimiento tecnolgico de los dispositivos de captura deimgenes, como resonadores magnticos y tomgrafos, la resolucin de

    los volmenes que se obtienen de ellos ha aumentado considerablementeen los ltimos aos. Estos volmenes suelen superar las capacidades dememoria de sistemas convencionales. Adicionalmente, proyectoscientficos como el Visible Human [VHP94] y simulaciones [MIR99] hangenerado volmenes que exceden las capacidades de memoria, inclusoen estaciones de trabajo. Es por ello que diversos investigadores se hantomado la tarea de proponer soluciones para lograr visualizarlos, ya seaparticionando y desplegando el volumen por partes, visualizar un rea deinters o con esquemas multi-resolucin. A continuacin se discutencada una de estas tcnicas.

    2.4.1 Bricking

    La tcnica de bricking consiste en particionar el volumen en pequeossubvolmenes o ladrillos denominados bricks, por lo general de igualtamao, que pueden ser desplegados individualmente [GRZ98], [LAM99].Al momento de realizar el despliegue, estos bricksdeben ser ordenados ydesplegados, comnmente desde el ms lejano al ms cercano (ver Fig.2.22).

    Esta tcnica se utiliza para el caso de volmenes muy grandes que nopueden ser almacenadas completamente en la memoria de textura.Tambin puede utilizarse para explotar la localidad espacial en el accesoa los datos y mejorar el rendimiento de la aplicacin.

    Para una interpolacin consistente entre los bricks, los pxeles de lafrontera se comparten entre bricks adyacentes (ver Fig. 2.23). Debido aque los pxeles entre bricksson almacenados dos veces, en el caso 3D setiene un overheaden el almacenamiento de O((n/b)3), para un volumen de

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    41/161

    Captulo 2: Despliegue Directo de Volmenes

    -35-

    tamao n3, particionado en bricks de tamao b3. Adicionalmente, seagregan a los sumo b2 pxeles de holgura por dimensin en los bricksdela frontera, para completar el tamao del brick.

    [0,1] [,1-]

    Textura 1D

    x x x

    Textura 1D(a) (b)

    artefactos

    Figura 2.23: bricking unidimensional. La textura original contiene 11 pxeles. Eltamao del brick (b) ha sido fijado a 4 pxeles, y por lo general debe ser potencia de2. Los pxeles con x son de holgura para completar el tamao del ltimo brick. (a)La textura 1D es particionada en bricks. El dominio de textura de cada brickes [0,1]salvo el brick frontera, que es [0,]. Al rasterizar una primitiva grfica con estospequeos mosaicos de texturas, se obtiene una incorrecta interpolacin en lasfronteras de los bricks, pues en el pxel frontera no se tiene informacin del pxel

    vecino para interpolar. Como resultado se obtienen artefactos visuales entre bricks.(b) Compartiendo medio pxel frontera entre bricks, y redefiniendo adecuadamentelas coordenadas de textura (dominio de interpolacin), se obtiene una consistenteinterpolacin entre bricksdurante la rasterizacin.

    Figura 2.22: despliegue de un volumen utilizando bricking.

  • 8/6/2019 Tesis Doctoral Rhadames Volumenes Multi-resolucion

    42/161

    Captulo 2: Despliegue Directo de Volmenes

    -36-

    Pese a que la tcnica de brickingresuelve el problema de las limitacionesde memoria textura, resulta imprctico para aplicaciones en tiempo real,puesto que el ancho de banda entre la memoria principal y la memoriade textura es limitado. El problema de ancho de banda se agudizacuando adicionalmente el volumen no puede ser almacenado

    completamente en la memoria principal. Para reducir el problema delancho de banda, se puede evitar la carga de bricks vacos. En estecontexto, algunos trabajos han utilizado la representacin jerrquica delvolumen basada en octree. As, el volumen es particionado a distintostamaos por cada nivel del octree [SRI97]. El nivel 0 constituye elvolumen entero, de O(n3). Recursivamente, el volumen es dividido enbricks de particionamiento ms fino, hasta alcanzar un criterio hojadeterminado. Utilizando el octree, un nodo que representa muchos bricksde particionamiento ms fino puede ser tempranamente descartado pararendering, al recorrer el octreeen pre-orden. Posteriormente, la idea fueuti