Capítulo 7: Implementación y Pruebascual está disponible en varias plataformas, como Windows®, Linux® yMacOS®. Para el manejo de las extensiones de OpenGL® se utilizó lalibrería GLEW 1 v1.3.3 [OPE07].Los sistemas contienen adicionalmente elementos de interfaz comodiálogos, botones, cajas de tilde o check-boxes, etc. Estos sonsuministrados por la librería EasyGLFramework, la cual ha sidodiseñada y desarrollada en este trabajo, para permitir el uso de unainterfaz convencional 2D dentro del ambiente gráfico 3D ofrecido porOpenGL®, y con el manejador de eventos de GLUT.Durante el desarrollo de los sistemas se utilizó el paradigma deprogramación orientada a objetos. Ciertas convenciones fueron utilizadasen la nominación de las clases, estructuras, atributos, métodos yconstantes, inspiradas en el estilo del framework de MFC (MicrosoftFundation Class) [MFC08]. Las clases empiezan con la letra C, losatributos contienen el prefijo “m_”, los métodos empiezan con letramayúscula, las estructuras y constantes se nominan en letrasmayúsculas. Ejemplos: CLens, CTreeCaching, m_textureSize, m_tree,IsEmpty(), PI, POINT.7.2 Volúmenes y Plataforma de PruebaPara las pruebas, se han seleccionado cuatro datasets (ver tabla 7.1 yFig. 7.1). Del proyecto del humano visible [VHP94] se tienen los cortesfotografiados en RGB de la mujer visible convertidos a escala de grises(VF8b), y adicionalmente su tomografía computarizada (VFCT). Se cuentacon un dataset proveniente de una angiografía, en donde el pacientepresenta una aneurisma (ANCT). Finalmente se ha generado un volumensintético (IE) proveniente de la evaluación de una ecuación implícita de laforma F(x,y,z)=0. Estos datasets han sido submuestreados en variosniveles de detalles, y divididos en bricks para construir el octree. Durantepre-procesamiento, los datasets de 12 bits por muestra (ANCT y VFCT)son escalados a 16 bits de precisión, para obtener una mejor precisióndurante la interpolación [LJU06D]. Cada conjunto de bricks hermanos seagrupan en un simple GOB, que son almacenados en un archivo binario,sin compresión.con el sistema operativo de manera independiente de la plataforma. Incluye manejo deventanas, raton y teclado.1 GLEW: acrónimo de OpenGL Extension Wrangler. Es una librería que ayuda a lainicialización y uso de las extensiones de OpenGL®. Provee un mecanismo eficientepara derterminar las extensiones de OpenGL® que soporta una plataforma.-110-
Capítulo 7: Implementación y PruebasVF8b VFCT ANCT IEAncho (v = vóxeles) 1024 512 512 992Alto (v) 1216 512 512 992Número de cortes (v) 5186 992 1559 1984Tamaño original (GB) 12,03 0,85 0,76 3,64Tamaño de brick. (v) 32 3 16 3 16 3 16 2 x32Tamaño de brick (KB) 32 8 8 16Tamaño Multi-resolución (GB) 15,74 1,25 1,12 4,57Bits por vóxel 8 12 12 16Niveles de detalle 0..8 0..7 0..8 0..6Ancho de banda (MB/seg.) 338,32 195,31 195,31 272,93Tabla 7.1: datasets de prueba. El ancho de banda efectivo hacia la tarjeta gráfica esmedido por cada dataset para su tamaño de brick.(a) (b) (c) (d)Figura 7.1: datasets de prueba. (a) VF8b, (b) VFCT, (c) ANCT, (d) IE. Las imágenesmostradas fueron generadas con ray casting basado en GPU, con un viewport de1024x768, sin reducción de artefactos entre bricks adyacentes.El sistema de prueba es un PC con procesador dual core de Intel, 4 GBde memoria principal, una tarjeta gráfica NVidia GeForce 8800 GTS con640MB de memoria, y un disco duro con tecnología SATA II. El sistemaoperativo del PC es Windows XP® SP3 32bits. En esta plataforma, unproceso no puede acceder más de 2GB de memoria principal. Debido queOpenGL® mantiene una copia adicional en memoria principal de cada-111-