Você está na página 1de 71

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMTICA PROGRAMA DE PS-GRADUAO EM COMPUTAO

CARLOS AUGUSTO DIETRICH

Visualizao Interativa e Manipulao de Imagens 3D em Tempo Real usando Mtodos Baseados na GPU

Dissertao apresentada como requisito parcial para obteno do grau de Mestre em Cincia da Computao

Profa. Dra. Luciana Porcher Nedel Orientadora Dra. Slvia Delgado Olabarriaga Co-orientadora

Porto Alegre, agosto de 2004

CIP CATALOGAO NA PUBLICAO

Dietrich, Carlos Augusto Visualizao Interativa e Manipulao de Imagens 3D em Tempo Real usando Mtodos Baseados na GPU / Carlos Augusto Dietrich. Porto Alegre: Programa de Ps-Graduao em Computao, 2004. 71 f.: il. Dissertao (mestrado) Universidade Federal do Rio Grande do Sul. Programa de Ps-Graduao em Computao, Porto Alegre, BRRS, 2004. Orientadora: Luciana Porcher Nedel; Co-orientadora: Slvia Delgado Olabarriaga. 1. Visualizao volumtrica. 2. Interao. Hardware grfico. I. Nedel, Luciana Porcher. II. Olabarriaga, Slvia Delgado. III. Ttulo.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Reitora: Profa. Wrana Maria Panizzi Pr-Reitor de Ensino: Prof. Jos Carlos Ferraz Hennemann Pr-Reitora Adjunta de Ps-Graduao: Profa. Joclia Grazia Diretor do Instituto de Informtica: Prof. Philippe Olivier Alexandre Navaux Coordenador do PPGC: Prof. Carlos Alberto Heuser Bibliotecria-chefe do Instituto de Informtica: Beatriz Regina Bastos Haro

SUMRIO

LISTA DE ABREVIATURAS E SIGLAS ............................................................ 5 LISTA DE SMBOLOS....................................................................................... 6 LISTA DE FIGURAS .......................................................................................... 7 RESUMO.......................................................................................................... 11 ABSTRACT...................................................................................................... 12 1 INTRODUO .............................................................................................. 13 1.1 Visualizao de Imagens Mdicas Volumtricas................................................ 13 1.2 Objetivo ............................................................................................................... 15 1.3 Principais Contribuies..................................................................................... 15 1.4 Organizao......................................................................................................... 16 2 MATERIAIS................................................................................................... 17 2.1 Introduo ........................................................................................................... 17 2.2 OpenGL............................................................................................................... 17 2.2.1 Pipeline de Visualizao .................................................................................... 19 2.3 Hardware Grfico ............................................................................................... 21 2.3.1 Acelerao Grfica Pr-GPU.............................................................................. 22 2.3.2 Primeira Gerao de GPUs................................................................................. 22 2.3.3 Segunda Gerao de GPUs................................................................................. 23 2.3.4 Terceira Gerao de GPUs ................................................................................. 23 2.3.5 Quarta Gerao de GPUs.................................................................................... 24 2.4 Concluso ............................................................................................................ 25 3 VISUALIZAO DIRETA DE VOLUMES BASEADA EM TEXTURAS ....... 26 3.1 Introduo ........................................................................................................... 26 3.2 Visualizao Direta de Volumes ......................................................................... 26 3.3 Aproximao da Visualizao Direta por Texturas........................................... 28 3.4 Concluso ............................................................................................................ 30 4 RECORTE VOLUMTRICO BASEADO NO MAPEAMENTO DE TEXTURAS ......................................................................................................................... 32 4.1 Viso Geral das Ferramentas ............................................................................. 32 4.2 Weighted Sweep Graph ...................................................................................... 34 4.2.1 Interseco entre Linhas e Polgonos Convexos.................................................. 35 4.2.2 Interseco Entre Planos e Poliedros Convexos .................................................. 37 4.3 Recorte Interativo Usando a WSG ..................................................................... 39 4.3.1 Definio Interativa do Poliedro de Amostragem................................................ 39 4.3.2 Recorte do Poliedro de Amostragem .................................................................. 39

4.4 Borracha Virtual ................................................................................................. 40 4.4.1 Representao do VOI na GPU .......................................................................... 41 4.4.2 Atualizao do VOI na GPU .............................................................................. 43 4.4.3 Implementao na GPU...................................................................................... 44 4.5 Escavadeira Virtual ............................................................................................ 45 4.5.1 Implementao na GPU...................................................................................... 46 4.6 Concluso ............................................................................................................ 48 5 APLICAO DAS FERRAMENTAS DE VISUALIZAO E RECORTE INTERATIVOS EM IMAGENS MDICAS........................................................ 50 5.1 Introduo Aplicao Mdica.......................................................................... 50 5.2 Materiais.............................................................................................................. 52 5.3 Mtodos ............................................................................................................... 53 5.3.1 Aplicao das Ferramentas ................................................................................. 53 5.3.2 Desempenho das Ferramentas ............................................................................ 53 5.4 Resultados............................................................................................................ 54 5.4.1 Aplicao das Ferramentas ................................................................................. 54 5.4.2 Desempenho das Ferramentas ............................................................................ 55 5.5 Discusso ............................................................................................................. 57 5.5.1 Aplicao das Ferramentas ................................................................................. 57 5.5.2 Desempenho das Ferramentas ............................................................................ 58 6 DISCUSSO E CONCLUSES ................................................................... 60 6.1 Limitaes............................................................................................................ 61 6.2 Extenses ............................................................................................................. 62 REFERNCIAS................................................................................................ 64 APNDICE A PIXEL SHADER DA FERRAMENTA DE RECORTE BORRACHA VIRTUAL ................................................................................ 67 APNDICE B PIXEL SHADER 1 DA FERRAMENTA DE RECORTE ESCAVADEIRA VIRTUAL ........................................................................... 68 APNDICE C PIXEL SHADER 2 DA FERRAMENTA DE RECORTE ESCAVADEIRA VIRTUAL ........................................................................... 69 APNDICE D VERSES COLORIDAS DAS FIGURAS DO TEXTO.............. 70

LISTA DE ABREVIATURAS E SIGLAS

2D 3D BSP-trees PC CPU DICOM GPU HU kD-trees MVD OpenGL RGB RM TC VGA VOI WSG

bi-dimensional. tri-dimensional. Binary Space Partition trees. Computador Pessoal (Personal Computer). Central Processing Unit1 (Unidade de Processamento Central). Digital Imaging and Communications in Medicine. Graphics Processor Unit (Unidade de Processamento Grfico). Hounsfield Units. k-Dimensional trees. Mtodo de Visualizao Direta. Open Graphics Library. Red, Green, Blue (canais de cor vermelho, verde e azul). Ressonncia Magntica (Magnetic Resonance). Tomografia Computadorizada (Computed Tomography). Video Graphics Array. Volume de Interesse (Volume of Interest). Weighted Sweep Graph.

Algumas siglas foram mantidas na sua linguagem original para facilitar a compreenso do leitor.

LISTA DE SMBOLOS

c[i ] [i ] P

pi G vi ei

s & vi

os & W( v i ) (P, s ) C(, d) F(vi) PR R Ft d min(a, b) SC TP TC TPPR Roi vcop vTPPR TC


TC '

cor (tipicamente uma grandeza vetorial) amostrada na posio i do espao. opacidade (grandeza escalar) amostrada na posio i do espao. polgono/poliedro definido por uma lista ordenada de pontos (p1, p2, p3,..., pn). ponto i de um polgono ou poliedro. grafo planar. vrtice i. aresta i. linha de varredura. vetor ortogonal linha de varredura. vrtice vi projetado sobre o vetor s . & vrtice vi projetado mais esquerda (em relao a s ). & peso de um vrtice projetado (distncia Euclidiana entre vi e os). WSG definida a partir de um polgono/poliedro P na direo s . corte em na distncia d. lista de vrtices adjacentes a vi em G. ponto de aplicao da ferramenta indicado com o mouse sobre a tela. raio de ao para o cursor da ferramenta. distncia do fragmento no momento t. distncia (em coordenadas de tela) do fragmento PR . mnimo entre a e b. coordenadas de tela do fragmento. coordenadas de objeto do fragmento. coordenadas de textura do fragmento. posio no espao de objeto do fragmento correspondente a PR . raio de ao i da ferramenta no espao de objeto. vetor normalizado coplanar ao plano de projeo. vetor correspondente ao vetor formado entre os pontos TC e TPPR , coplanar ao plano de projeo. coordenada de textura obtida a partir da soma entre TPPR e vTPPR TC .

LISTA DE FIGURAS

Figura 1.1: Visualizao 3D com MVD de um TC abdominal. .................................. 14 Figura 1.2: Segmentao do VOI (fgado) por meio das ferramentas de recorte interativo. (a) Imagem original (TC abdominal); (b) definio de um volume grosseiro com planos de recorte binrio; segmentao do VOI com uma borracha virtual (c) e uma escavadeira virtual (d)...................... 15 Figura 1.3: Fgado segmentado de um TC abdominal, resultado dos recortes ilustrados na Figura 1.2............................................................................ 15 Figura 2.1: Fluxo de visualizao do OpenGL ........................................................... 18 Figura 2.2: Diagrama de blocos do pipeline de visualizao do OpenGL 1.1.............. 18 Figura 2.3: Estgio de transformao dos vrtices no pipeline do OpenGL . .............. 19 Figura 2.4: Estgio de construo de primitivas e rasterizao. Neste estgio, os vrtices so primeiro reorganizados em primitivas geomtricas; a partir destas, o rasterizador calcula quais pores de cada primitiva so visveis e as dividem em fragmentos, que so os potenciais pontos de atualizao do frame-buffer...................................................................... 20 Figura 2.5: Estgio de operaes por fragmento......................................................... 21 Figura 2.6: Blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da gerao pr-GPU. ........................................................ 22 Figura 2.7: Blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da primeira gerao de GPUs. .......................................... 23 Figura 2.8: Diagrama de blocos do pipeline grfico programvel na quarta gerao... 25 Figura 3.1: Classificao comumente usada para mtodos de visualizao direta de volumes. (a) Mtodos baseados em imagem, onde raios so lanados dos pixels do plano de projeo em direo ao volume, e as contribuies dos elementos ao longo de cada raio so combinadas para formar a cor final do pixel; (b) mtodos baseados em objeto, onde a contribuio de cada elemento do volume computada sobre o plano de projeo................................................................................................... 27 Figura 3.2: Esquema da visualizao de volume de dados por texturas; (a) volume de dados; (b) polgonos de amostragem; (c) mapeamento dos polgonos de amostragem no espao de textura; (d) rendering dos polgonos de amostragem no frame buffer. ................................................................... 29 Figura 3.3: Pipeline de visualizao direta por texturas.............................................. 30 Figura 4.1: Posies dos planos de amostragem no espao de textura (CULLIP; NEUMANN, 1993). (a) Planos alinhados a um eixo ortogonal do espao de textura e (b) planos paralelos ao plano de projeo. ................. 33 Figura 4.2: Diagrama simplificado do fluxo de visualizao e atualizao do VOI. Nas operaes de recorte, o objetivo atualizar a WSG e a mscara de

recorte. Na visualizao, o VOI (mostrado dentro da elipse de contorno tracejado) combinado com o volume real para gerar a imagem final. O usurio controla os procedimentos de atualizao VOI............................. 34 Figura 4.3: Uma linha de varredura movendo-se da esquerda para a direita. A cada instante de tempo t computa-se a sua interseco com o polgono P. No instante t ilustrado, as arestas suporte so as arestas formadas entre os vrtices v1 e v4 e os vrtices v2 e v3. .......................................................... 36 Figura 4.4: WSG codificando a ordem dos vrtices atravessados pela linha de varredura ............................................................................................... 36 Figura 4.5: Instante de tempo t na varredura da linha sobre o polgono P (b). Em (a), observa-se o corte C(, t) correspondente na WSG, que contm as arestas-suporte do segmento de interseo entre a linha de varredura e o polgono P. ........................................................................................... 37 Figura 4.6: WSG resultante da varredura de um cubo por um plano definido por uma direo s arbitrria. ......................................................................... 37 Figura 4.7: Trs diferentes posies do plano de varredura e os correspondentes cortes na WSG. Os cortes na WSG so usados para computar os vrtices do polgono de interseco.......................................................... 38 Figura 4.8: Especificao dos planos de recorte para a definio do VOI. O usurio controla a direo normal do plano usando o mouse para indicar a extremidade da linha que parte do centro do VOI. O ponto de referncia no plano controlado por um slider que especifica a distncia entre o plano de recorte e o centro do VOI........................................................... 39 Figura 4.9: Uso da informao contida na WSG para o recorte de um paraleleppedo por um plano. (a) Grafo G representando o paraleleppedo; (b) posicionamento do plano de recorte sobre o paraleleppedo (a rea em cinza indica a regio de recorte); (c) recorte computado na WSG, a partir das informaes do plano de recorte e (d) atualizao do grafo G. ............................................................................ 40 Figura 4.10: Forma de atuao da borracha virtual. O usurio aponta, com o mouse, uma posio sobre a grade da imagem que mostra a projeo do volume. A borracha tem um formato circular, com o centro sobre a posio apontada (PR) e raio definido interativamente (R). A ferramenta ento exclui todas as pores do volume projetivamente correspondentes rea de aplicao da borracha. ..................................... 41 Figura 4.11: Armazenamento do VOI por meio de uma textura 3D adicional. A mscara de recorte definida pelo usurio sobre a tela pode ser armazenada em um volume binrio (abaixo) ou em um volume onde cada texel armazena a distncia ao objeto de recorte (acima). direita, so vistas as combinaes entre o volume e o VOI armazenado segundo as abordagens citadas............................................................................... 42 Figura 4.12: Organizao das fatias da textura 3D na textura 2D intermediria. (a) mscara de recorte 3D de 4 4 4 (cada quadrado das figuras corresponde a um texel) e (b) mscara de recorte plana equivalente de 8 8 . ....................................................................................................... 44 Figura 4.13: Forma de atuao da escavadeira virtual. O usurio aponta, com o mouse, uma posio sobre a grade da imagem (projeo do volume). A ferramenta ento marca todos os fragmentos dentro da esfera de recorte virtual como no visveis. O centro da esfera definido pela projeo

do ponto indicado pelo usurio na superfcie do VOI, enquanto que o seu raio calculado em relao ao raio definido na tela ( R ). ................... 46 Figura 4.14: Raios de ao no espao de objeto (Roi) resultantes da aplicao da ferramenta em duas posies da tela (PRi), onde o mesmo raio R utilizado................................................................................................... 48 Figura 4.15: Clculo da distncia entre os texels no espao de tela no segundo pixel shader. Basicamente, a distncia entre TPPR e TC (a) transformada para o espao de tela (b), a partir do qual se procede da mesma forma do que na borracha virtual. ........................................................................... 48 Figura 5.1: Distribuio dos vasos sanguneos no interior do fgado humano, em vista posterior (NETTER, 1999). ............................................................. 50 Figura 5.2: Exemplos de pacotes de visualizao estruturas anatmicas comumente utilizados para o treinamento mdico. (a) e (b): Atlas Interativo de Anatomia Humana Netter (1999); (c) e (d): VOXEL-MAN 3D Navigator: Inner Organs (2000). ............................................................. 51 Figura 5.3: Aplicaes das ferramentas de recorte sobre uma textura construda proceduralmente. (a) volume inicial; (b) recortes sucessivos no estgio de amostragem (o nmero de planos de amostragem foi reduzido para ilustrar o recorte realizado pela WSG); (c) volumes resultantes da aplicao da borracha e (d) da escavadeira virtuais. ................................. 54 Figura 5.4: Recorte do VOI no estgio de atualizao. (a) imagem e volume inicial (representado por suas linhas de contorno); (b) resultado de sucessivos recortes, definindo um VOI, ainda que bastante grosseiro; (c) polgonos de amostragem da textura (representados pelo seu contorno), ilustrando o recorte realizado pela WSG................................................................... 54 Figura 5.5: Aplicao da borracha virtual (a, b) em uma visualizao 3D de um TC abdominal. O volume resultante mostrado em (c) corresponde ao parnquima do fgado; neste volume ainda podem ser observados artefatos (partes de costelas e tecidos contrastados) que no podem ser alcanados pela aplicao desta ferramenta, por estarem em reentrncias do parnquima ......................................................................................... 55 Figura 5.6: Aplicao da escavadeira virtual (a, b) sobre o VOI mostrado na Figura 5.5 (c) e o volume resultante (c)............................................................... 55 Figura 5.7: Poliedro usado no teste de desempenho do recorte no estgio de atualizao. (a) Poliedro (visto por suas arestas na cor cinza) e o contorno dos polgonos de amostragem (na cor preta) recortados pela WSG; (b) Poliedro recortado e polgonos de amostragem. ....................... 56 Figura 5.8: Desempenho da WSG na amostragem de diferentes poliedros. Observase que a aplicao dos recortes (que resultam em faces adicionais) pode melhorar o desempenho do algoritmo. ..................................................... 56 Figura 5.9: Erro na consistncia do resultado da aplicao da borracha virtual (a). A perda de preciso ilustrada em (b) (pico no crculo removido) resultado das cpias realizadas durante as constantes atualizaes da mscara de recorte, entre buffers de precises diferentes. ......................... 57 Figura 5.10: Aplicao da borracha virtual no primeiro volume, usando mscaras de recorte com tamanhos diferentes. A baixa resoluo (16 16 16 ) da textura usada em (a) produz resultados piores do que a alta resoluo ( 64 64 64 ) usada em (b)...................................................................... 58

Figura 6.1: Mapeamento no-linear das distncias calculadas nos shaders para a mscara de recorte. .................................................................................. 62 Figura 6.2: Medies feitas com segmentos de linha sobre o volume visualizado. O volume foi adquirido de um fgado de porco ex situ, por TC contrastado. 62 Figura 6.3: Resultado da aplicao da ferramenta de classificao sobre uma imagem TC de um fgado ex-situ de porco. O usurio indica vrios pontos sobre os vasos sanguneos (a) para estabelecer suas regies de influncia no parnquima (b) ................................................................... 63

RESUMO

Este trabalho apresenta um conjunto de ferramentas que exploram as capacidades recentes das placas grficas de computadores pessoais para prover a visualizao e a interao com volumes de dados. O objetivo oferecer ao usurio ferramentas que permitam a remoo interativa de partes no relevantes do volume. Assim, o usurio capaz de selecionar um volume de interesse, o que pode tanto facilitar a compreenso da sua estrutura quanto a sua relao com os volumes circundantes. A tcnica de visualizao direta de volumes atravs do mapeamento de texturas explorada para desenvolver estas ferramentas. O controle programvel dos clculos realizados pelo hardware grfico para gerar a aparncia de cada pixel na tela usado para resolver a visibilidade de cada ponto do volume em tempo real. As ferramentas propostas permitem a modificao da visibilidade de cada ponto dentro do hardware grfico, estendendo o benefcio da visualizao acelerada por hardware. Trs ferramentas de interao so propostas: uma ferramenta de recorte planar que permite a seleo de um volume de interesse convexo; uma ferramenta do tipo borracha, para eliminar partes no relevantes da imagem; e uma ferramenta do tipo escavadeira, para remover camadas do volume. Estas ferramentas exploram partes distintas do fluxo de visualizao por texturas, onde possvel tomar a deciso sobre a visibilidade de cada ponto do volume. Cada ferramenta vem para resolver uma deficincia da ferramenta anterior. Com o recorte planar, o usurio aproxima grosseiramente o volume de interesse; com a borracha, ele refina o volume selecionado que, finalmente, terminado com a escavadeira. Para aplicar as ferramentas propostas ao volume visualizado, so usadas tcnicas de interao conhecidas, comuns nos sistemas de visualizao 2D. Isto permite minimizar os esforos do usurio no treinamento do uso das ferramentas. Finalmente, so ilustradas as aplicaes potenciais das ferramentas propostas para o estudo da anatomia do fgado humano. Nestas aplicaes foi possvel identificar algumas necessidades do usurio na visualizao interativa de conjuntos de dados mdicos. A partir destas observaes, so propostas tambm novas ferramentas de interao, baseadas em modificaes nas ferramentas propostas.

Palavras-chave: Visualizao volumtrica baseada em texturas; recorte volumtrico interativo; visualizao volumtrica em tempo real; imagens mdicas.

Real-time Interactive Visualization and Manipulation of 3D Images using GPU-based Methods

ABSTRACT

This work presents a set of tools that provide 3D visualization and interaction with large volumetric data relying on recent programmable capabilities of consumer-level graphics cards. The objective is providing the user with interactive volume sculpting tools. With those tools the user is able to select a volume of interest, which helps both in the its understanding as with your relationship with the whole volume. We exploit the texture-based volume rendering to develop these tools. The programmable control of calculations performed by the graphics hardware for generating the appearance of each pixel on the screen is exploited to resolve the visibility of each point of the volume in real-time. The tools proposed here allows real-time modification of visibility parameters inside the graphics hardware, extending the benefit of hardware acceleration beyond display, namely for computation of voxel visibility. Three interactive tools are proposed: a plane-based cutting tool that allows the selection of a convex volume of interest, an eraser-like tool to eliminate non-relevant parts of the image and a digger-like tool that allows the user to eliminate layers of a 3D image. These tools exploit stages of texture-based volumetric visualization pipeline where is possible taking the decision about volume visibility. Each tool comes to add some new functionality to the previous tool. With the plane-based cut, the user only approximates the volume of interest; with the eraser-like tool, he refines his selection, which is finished with the digger-like tool. Known user interaction techniques, as adopted in 2D painting systems, are used to apply the proposed tools on a volume. The strategy is to minimize the user training efforts to learn how to operate the tools. Finally, the potential applications of the conceived tools are illustrated for liver anatomy study. In these applications, it was possible to identify some needs of the user in medical datasets visualizations. We also propose some new interactive tools that extend the functionality of previous tools based on these observations.

Keywords: Texture-based volume visualization; interactive volume clipping; real-time volume rendering; medical imaging.

1 INTRODUO

1.1 Visualizao de Imagens Mdicas Volumtricas


Tcnicas de visualizao tridimensional esto provando ser teis em uma grande quantidade de aplicaes no campo da medicina, incluindo diagnstico, planejamento de tratamento, simulao cirrgica, treinamento mdico, conduo intra-operativa e tele-cirurgia (TOMBROPOULOS, 1999). Sries de imagens bidimensionais como tomografias computadorizadas (TC) e ressonncias magnticas (RM) so as fontes de dados especficos de cada paciente para estes tipos de aplicaes. Ambos TC e RM geram uma srie de imagens bidimensionais que representam seces transversais (fatias) atravs da anatomia do paciente. Quando empilhadas umas sobre as outras, estas imagens representam a estrutura tridimensional (imagem volumtrica) adquirida. Elas assim provem aos mdicos uma forma no-invasiva de visualizar a anatomia interna do paciente, localizar tecidos dentro do corpo e visualizar algumas propriedades fisiolgicas destes tecidos. Para as aplicaes fazerem uso total da informao contida dentro destes dados mdicos, so necessrias tcnicas de visualizao e interao com imagens volumtricas, preferencialmente em tempo real. Em geral, as abordagens para a visualizao de volumes so divididas entre mtodos diretos e indiretos. Mtodos que no extraem explicitamente estruturas geomtricas do volume so chamados de diretos. Em mtodos de visualizao direta (MVDs), o volume visualizado com base numa segmentao fraca realizada por funes de transferncia, que mapeiam os valores registrados nas partculas do volume para valores de cor e opacidade (ZHOU, 2003). MVDs vm sendo propostos desde o incio da dcada de 80, quando foram apresentados os primeiros modelos ticos para a visualizao (rendering) por computador (BLINN, 1982; KAJIYA; VON HERZEN, 1984). Tcnicas tradicionais de MVDs contam com a eficincia da CPU (Central Processing Unit), como a tcnica shear-warping proposta por Lacroute e Levoy (1994). Com a disponibilidade do hardware de texturizao em computadores pessoais (PC), alguns autores passaram a explorar as capacidades do mapeamento de texturas 2D e 3D para implementar MVDs (CABRAL; CAM; FORAN, 1994; CULLIP; NEUMANN, 1993). Hoje, o avano do hardware grfico permite a visualizao direta baseada em texturas com imagens de qualidade satisfatria e melhor desempenho do que abordagens baseadas na CPU (REZK-SALAMA et al., 2000). Estas caractersticas fazem da tcnica de mapeamento de texturas, hoje uma das principais linhas de pesquisa em visualizao direta. A despeito da evoluo das tcnicas de visualizao, em muitos casos a anlise de imagens volumtricas ainda feita baseada em imagens 2D. Atualmente, a visualizao de tomografias no meio clnico feita fatia a fatia. Embora muitos radiologistas e mdicos treinados sejam capazes de elaborar diagnsticos a partir deste tipo de visualizao, h um grande interesse em visualizar estes dados em trs dimenses. Este

14

interesse ainda maior quando se trata de rgos e tecidos que possuem uma anatomia complexa, como o caso do fgado humano e o seu sistema vascular. A visualizao 3D de imagens mdicas um tpico de pesquisa muito explorado atualmente. Um dos principais focos destas pesquisas a interao com os dados mdicos volumtricos. Assim como nestas pesquisas, tcnicas interativas de inspeo de dados mdicos so os motivadores deste trabalho. Em especial, a visualizao do fgado em TCs abdominais, como pode ser visto no exemplo da Figura 2.1.

Figura 2.1: Visualizao 3D com MVD de um TC abdominal. A ocluso do objeto de interesse um problema comum na visualizao 3D de dados mdicos. No caso da Figura 2.1, por exemplo, a visualizao do fgado obstruda pelo corao e algumas costelas. Alguns pesquisadores (AYLWARD; BULLITT, 2002) sugerem a segmentao da imagem volumtrica para resolver este problema. A partir da imagem segmentada, o objeto de interesse pode ser isolado e visualizado separadamente. A segmentao tambm permite a extrao de medidas do objeto de interesse (tamanho, volume, etc), muito importante na anlise de dados mdicos. No entanto, a pesquisa de mtodos de segmentao de imagens mdicas diverge em uma srie de tcnicas muito distintas. Freqentemente, o sucesso destas tcnicas depende da sua adaptao aos mtodos de aquisio de imagens e aos objetos de interesse. Este tipo de abordagem restringe as possveis aplicaes genricas da tcnica de visualizao. Nesta dissertao so propostas ferramentas de interao com volumes visualizados diretamente que permitem isolar e visualizar o objeto separadamente. De certa forma, tambm ocorre segmentao, porm implicitamente entre duas partes do processo de visualizao volumtrica interativa: primeiro, na funo de transferncia definida na aquisio dos dados (que no abordada neste trabalho); segundo, na aplicao interativa de ferramentas de recorte volumtrico. Por meio destas ferramentas, o usurio capaz de definir o volume de interesse (VOI) dentro do volume. Desta forma, elas podem ser consideradas uma forma fraca de segmentao interativa, que no est ligada aquisio ou a rea de aplicao da tcnica. A Figura 2.2 mostra a aplicao de ferramentas de recorte na segmentao do fgado em uma imagem TC abdominal.

15

Figura 2.2: Segmentao do VOI (fgado) por meio das ferramentas de recorte interativo. (a) Imagem original (TC abdominal); (b) definio de um volume grosseiro com planos de recorte binrio; segmentao do VOI com uma borracha virtual (c) e uma escavadeira virtual (d). As ferramentas interativas propostas aqui tm o objetivo de deixar para o usurio a deciso do que deve ser visualizado ou no no volume de dados. Neste processo, o usurio pode usar sua experincia para a tomada de decises. No entanto, as ferramentas devem ser flexveis o bastante para que ele possa aplicar o seu conhecimento sobre a imagem. No caso da visualizao do fgado em TCs abdominais, o resultado da sesso interativa ilustrada na Figura 2.2 pode ser visto na Figura 2.3.

(a)

(b)

(c)

(d)

Figura 2.3: Fgado segmentado de um TC abdominal, resultado dos recortes ilustrados na Figura 2.2.

1.2 Objetivo
Propor ferramentas interativas para auxiliar na soluo da ocluso de objetos de interesse em imagens 3D visualizadas diretamente utilizando recursos de programao das placas grficas. Estas ferramentas sero aplicadas na inspeo interativa da imagem tridimensional de fgados humanos, para auxiliar o aprendizado da anatomia deste rgo.

1.3 Principais Contribuies


As principais contribuies deste trabalho em relao a publicaes anteriores so: a) o algoritmo de representao e recorte de poliedros WSG (Weighted Sweep Graph), descrito na Seo 4.2; b) a implementao da interface de controle da borracha virtual no hardware grfico, descrita na Seo 4.4; c) a implementao da interface de controle da escavadeira virtual no hardware grfico, descrita na Seo 4.5;

16

d) a implementao da ferramenta de classificao da imagem volumtrica no hardware grfico, descrita na Seo 6.2.

1.4 Organizao
O projeto das ferramentas propostas neste estudo muito influenciado pela programao dos dispositivos grficos de PCs. Esta programao inclui a interface de programao para dispositivos grficos (OpenGL) e as capacidades atuais destes dispositivos. No Captulo 0 so vistos os detalhes da interface de programao OpenGL e o desenvolvimento do hardware grfico ao longo da ltima dcada, que servem de contexto para a proposta das ferramentas de interao. No Captulo 0 so discutidos os principais conceitos sobre visualizao direta de imagens 3D relacionados a este estudo. Tambm apresentado o esquema necessrio para a implementao do mtodo de visualizao, onde os pontos do fluxo de rendering no qual as ferramentas de interao podem ser implementadas so discutidos. No Captulo 0 so propostas as tcnicas de recorte volumtrico para a visualizao direta baseada no mapeamento de texturas. Como mostrado no Captulo 0, existem pontos no fluxo de visualizao que podem ser usados para a implementao das ferramentas de interao; no Captulo 0, detalhada a forma como estes pontos podem ser explorados. A partir desta observao, so propostos os algoritmos para as ferramentas de recorte e sua integrao ao mtodo de rendering direto usando o hardware das placas grficas. No Captulo 0 so mostrados os resultados da aplicao das ferramentas propostas sobre imagens mdicas. Primeiro vista a importncia de ferramentas de inspeo de imagens 3D no aprendizado de anatomia, e algumas das ferramentas disponveis atualmente. Na seqncia, so vistos os resultados da aplicao das ferramentas propostas neste estudo em imagens de TCs abdominais contrastados. No Captulo 0, so discutidas as principais questes envolvidas no projeto e implementao das ferramentas propostas. Tambm so discutidas sugestes para lidar com algumas das limitaes da implementao atual das ferramentas. Finalmente, so propostas possveis extenses das ferramentas criadas neste estudo.

2 MATERIAIS

2.1 Introduo
O projeto e a implementao das ferramentas propostas neste estudo muito influenciado pela forma de programao dos dispositivos grficos de PCs. Esta programao inclui a interface com dispositivos grficos (padro OpenGL, ver Seo 2.2) e as capacidades de programao disponveis atualmente nestes dispositivos. A interface de programao adotada, o OpenGL, define o fluxo de visualizao (pipeline) de primitivas geomtricas no hardware grfico. O pipeline definido pelo OpenGL serve como base para a proposta das ferramentas de interao, e discutido na Seo 2.2. As capacidades atuais dos dispositivos grficos de PCs tm influenciado muitas pesquisas envolvendo a visualizao direta de imagens 3D (ENGEL; KRAUS; ERTL, 2003; WEISKOPF; ENGEL; ERTL, 2003). A gerao atual de placas grficas permite a programao de alguns estgios do pipeline de visualizao. A flexibilidade da programao destes dispositivos tem possibilitado a implementao at mesmo de algoritmos de propsito geral, como a deteco de coliso entre poliedros (GOVINDARAJU et al., 2003) e mtodos de lgebra linear (KRGER; WESTERMANN, 2003). Neste estudo, a programabilidade do hardware grfico tambm explorada. Assim, na Seo 2.3 so discutidas em maiores detalhes as capacidades atuais do hardware grfico.

2.2 OpenGL
Em 1992, a SGI lanou uma interface de programao que veio a se tornar o primeiro padro mundialmente reconhecido para a programao de dispositivos grficos. Este o OpenGL, cujo desenvolvimento foi fortemente baseado na biblioteca IRIS GL, tambm de propriedade da SGI. O objetivo do OpenGL fornecer um fluxo padronizado de visualizao de imagens e primitivas geomtricas, como mostra a Figura 2.1. A definio do pipeline de visualizao foi o passo mais importante na proposta do OpenGL. O pipeline grfico recebe dados geomtricos representando um objeto ou uma cena e cria imagens bidimensionais a partir deles. A aplicao prov os dados geomtricos como uma coleo de vrtices que podem formar polgonos, linhas e pontos. A imagem resultante tipicamente representa o que um observador pode ver de um ponto particular de visualizao. A definio do fluxo de visualizao modular permitiu o desenvolvimento de hardware especfico para o tratamento de cada estgio, o que pode ser visto ao

18

acompanhar a evoluo das placas grficas. A Figura 2.2 mostra um diagrama de blocos mais detalhado do pipeline de visualizao do OpenGL.
Vrtices armazenados na GPU comandos enviados pela aplicao Operaes por Vrtice Construo das primitivas Operaes por fragmento

Rasterizao

frame buffer

Memria de textura

Operaes por pixel

Figura 2.1: Fluxo de visualizao do OpenGL (baseada em (SHREINER, 1999)).


VRTICES Vrtices Normais Cores Coordenadas de textura

Normal atual

Cor atual

Coordenada de textura atual

Matriz de Modelagem e visualizao

Clculo da cor e iluminao por vrtice

Gerao das coordenadas de textura

Matriz de textura

PRIMITIVAS

Reconstruo das primitivas geomtricas

Recorte controlado pela aplicao glReadPixels() Matriz de projeco

glDrawPixels() ou glTexImageXX()

Recorte contra o volume de visualizao

Modos de armazenamento de pixels

Diviso por w Modos de transferncia de pixels FRAGMENTOS Posio de rasterizao atual Rasterizao

Operaes por fragmento

Memria de textura

PIXELS frame buffer

Figura 2.2: Diagrama de blocos do pipeline de visualizao do OpenGL 1.1 (baseado em (SHREINER, 1999)).

19

Na maior parte do diagrama podem ser vistas trs setas verticais entre os principais blocos. Estas setas representam vrtices e os dois tipos primrios de dados que podem ser associados a eles: valores de cor e coordenadas de texturas. Tambm pode ser visto que o tipo de dados se altera conforme a progresso de estgios dentro do pipeline: vrtices tornam-se primitivas geomtricas, fragmentos e finalmente pixels no frame buffer (rea em memria para o armazenamento do contedo do plano de projeo) (SHREINER, 1999). Esta progresso discutida em maiores detalhes nas sees seguintes.
2.2.1 Pipeline de Visualizao

A aplicao envia ao hardware grfico uma seqncia de vrtices representando primitivas geomtricas, tipicamente polgonos, linhas e pontos utilizando uma srie de funes especiais. Um vrtice define um ponto, uma extremidade de linha ou o encontro de duas arestas de um polgono. Cada vrtice tem, associados a si, uma posio e vrios outros atributos como cor, uma cor secundria (chamada cor especular), uma ou mais coordenadas de textura e um vetor normal. O vetor normal indica a direo da face qual o vrtice pertence, sendo tipicamente usado em clculos de iluminao.
2.2.1.1 Transformao dos Vrtices

A transformao dos vrtices o primeiro estgio no pipeline grfico. Neste estgio, uma seqncia de operaes aplicada a cada vrtice, o que inclui transformar a posio do vrtice do espao de objeto para o espao de recorte (clip coordinates), transformar as coordenadas de textura e calcular a iluminao do vrtice para a determinao de suas cores primria e secundria. Na Figura 2.3 so mostrados os estgios do diagrama apresentado na Figura 2.2 nos quais so feitas as transformaes nos vrtices.
VRTICES Vrtices Normais Cores Coordenadas de textura

Normal atual

Cor atual

Coordenada de textura atual

Matriz de Modelagem e visualizao

Clculo da cor e iluminao por vrtice

Gerao das coordenadas de textura

Matriz de textura

Figura 2.3: Estgio de transformao dos vrtices no pipeline do OpenGL .


2.2.1.2 Montagem de Primitivas e Rasterizao

Os vrtices transformados seguem em seqncia para o prximo estgio, chamado construo de primitivas e rasterizao (primitive assembly and rasterization). Este estgio inclui vrios blocos mostrados separadamente no diagrama da Figura 2.2; no

20

entanto, como so operaes seqenciais configurveis, comum referenci-los como um nico estgio. Primeiro, o passo de construo de primitivas reconstri as primitivas baseado na informao enviada pela aplicao, que acompanha a seqncia de vrtices (at agora, os vrtices eram tratados separadamente). Isto resulta numa seqncia de tringulos, linhas ou pontos, que podem ser recortadas pelo volume de visualizao, e tambm por qualquer plano de recorte especificado pela aplicao. Polgonos que sobrevivem ao recorte devem ser rasterizados. A rasterizao o processo pelo qual a primitiva geomtrica convertida em uma imagem bidimensional. O modo como este processo realizado deu origem ao termo rasterizador, derivado de raster scanning, ou seja, o processo de formao de uma imagem feito pela varredura linha por linha (em televiso). Cada ponto desta imagem contm uma posio associada, um valor de profundidade (distncia ao frame buffer) e um conjunto de parmetros interpolados como cor, cor secundria e uma ou mais coordenadas de textura. Estes parmetros so derivados dos vrtices transformados que formavam a primitiva geomtrica antes da rasterizao. Juntos, um ponto e suas informaes associadas so chamados de fragmento. O termo fragmento usado porque a rasterizao quebra cada primitiva geomtrica, como um tringulo, em fragmentos do tamanho de pixels para cada pixel que a primitiva cobre no frame buffer. Se um fragmento passar pelos testes do estgio subseqente, ele ir somar sua contribuio no frame buffer. Tambm importante citar aqui que no h relao entre o nmero de vrtices de uma primitiva e o nmero de fragmentos que so gerados na rasterizao. Um tringulo que ocupe pouco espao no frame buffer vai ser dividido em poucos fragmentos. Ocupando um espao maior no frame buffer, o mesmo tringulo seria dividido em um nmero maior de fragmentos, pois tem uma rea (em pixels) maior. Na Figura 2.4 so mostrados os estgios do diagrama da Figura 2.2 no qual so feitas a construo de primitivas e a rasterizao.
PRIMITIVAS

Reconstruo das primitivas geomtricas

Recorte controlado pela aplicao glReadPixels() Matriz de projeco

glDrawPixels() ou glTexImageXX()

Recorte contra o volume de visualizao

Modos de armazenamento de pixels

Diviso por w Modos de transferncia de pixels FRAGMENTOS Posio de rasterizao atual Rasterizao

Operaes por fragmento

Memria de textura

Figura 2.4: Estgio de construo de primitivas e rasterizao. Neste estgio, os vrtices so primeiro reorganizados em primitivas geomtricas; a partir destas, o rasterizador

21

calcula quais pores de cada primitiva so visveis e as dividem em fragmentos, que so os potenciais pontos de atualizao do frame-buffer.
2.2.1.3 Operaes Por Fragmento

A partir do momento em que a primitiva rasterizada em uma coleo de zero ou mais fragmentos, o estgio de operaes por fragmento realiza uma seqncia de operaes e aplicaes de texturas para computar a cor final de cada fragmento. As operaes combinam os parmetros de cor, cor secundria e as cores recuperadas a partir das coordenadas de textura para o clculo da cor final do fragmento. A seqncia final de operaes por fragmento envolve uma srie de testes, imediatamente antes de atualizar o frame buffer. Durante este estgio, cada fragmento testado em relao aos seguintes aspectos: recorte contra uma regio do frame buffer fixada pela aplicao (scissor test); faixa de transparncias fixada pela aplicao (alpha test); teste contra o contedo de um buffer auxiliar do OpenGL, atravs de operaes lgicas controladas pela aplicao (stencil test) e profundidade, que determina se a visualizao do fragmento est obstruda por outro em relao ao ponto de viso (depth test). Se qualquer dos testes falha, este estgio descarta o fragmento sem atualizar a cor do pixel no frame buffer. Passando nos testes, a cor final do fragmento combinada com a cor do pixel correspondente do frame buffer. Finalmente, uma operao de escrita no frame buffer atualiza a cor e o valor de profundidade do pixel, que armazenado em um buffer adicional, o depth buffer. Na Figura 2.5 mostrado o estgio do diagrama da Figura 2.2 no qual feita a seqncia de operaes em cada fragmento.

PIXELS frame buffer

Figura 2.5: Estgio de operaes por fragmento.

2.3 Hardware Grfico


Na ltima dcada houve um grande esforo para a construo de hardware especializado para acelerar as operaes realizadas pelo pipeline grfico. O resultado uma gerao de placas grficas que praticamente engloba todos os estgios do pipeline em um nico microchip, com poder de processamento muito superior ao alcanado na CPU. Partes do pipeline grfico tambm podem agora ser controladas pela aplicao, como o tratamento de vrtices e fragmentos, atravs de conjuntos de instrues muito semelhantes s usadas na CPU. A empresa IBM introduziu o hardware VGA (Video Graphics Array) em 1987. Naquela poca, a controladora VGA no era mais do que um frame-buffer. Isto significava que a CPU era responsvel pela atualizao de todos os pixels diretamente, o que raramente feito nos dias de hoje. A empresa nVIDIA Corporation introduziu o termo GPU (Graphics Processor Unit) no final da dcada de 90, quando o termo controlador VGA no mais descrevia adequadamente o hardware grfico de um PC. A evoluo das GPUs est organizada grosseiramente em quatro geraes. Cada gerao apresenta melhorias no desempenho e envolve maior programabilidade da GPU. Cada gerao tambm influencia e incorpora a funcionalidade das duas maiores

22

interfaces de programao 3D, o OpenGL e o DirectX (o DirectX o conjunto das interfaces de programao multimdia da Microsoft, incluindo o Direct3D para a programao de aplicaes grficas). Nas sees a seguir, as caractersticas de cada gerao so discutidas em separado.
2.3.1 Acelerao Grfica Pr-GPU

Antes da introduo das GPUs, companhias como a SGI e Evans&Sutherland desenvolviam hardware grfico caro e especializado. Os sistemas grficos desenvolvidos por estas companhias introduziram muitos dos conceitos, como transformaes de vrtices e mapeamento de texturas, que so utilizados hoje. Estes sistemas foram muito importantes para o desenvolvimento histrico da computao grfica, mas, como eram muito caros, no alcanaram o mesmo sucesso de mercado das GPUs atuais. Hoje, as GPUs so muito mais poderosas e baratas que qualquer destes sistemas anteriores. A Figura 2.6 mostra em destaque os blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da gerao pr-GPU.

FRAGMENTOS

Posio de rasterizao atual

Rasterizao

Operaes por fragmentos

Memria de textura

Acelerao Pr-GPU

PIXELS frame buffer

Figura 2.6: Blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da gerao pr-GPU.
2.3.2 Primeira Gerao de GPUs

A primeira gerao de GPUs (em torno de 1998) inclui as placas grficas TNT2 da nVIDIA, a Rage da companhia ATI e a Voodoo3 da companhia 3dfx. Estas placas so capazes de rasterizar tringulos pr-transformados pela aplicao antes de serem enviados GPU e aplicar uma ou mais texturas. Quando executam aplicaes 3D ou 2D, estas GPUs praticamente livram a CPU do trabalho de atualizar pixels individualmente. Entretanto, as GPUs desta gerao tm duas limitaes claras. Em primeiro lugar, falta a capacidade de transformar vrtices, e estas transformaes ainda ocorrem na CPU. Em segundo, elas tm um conjunto muito limitado de operaes para combinar texturas e calcular a cor dos fragmentos rasterizados. A Figura 2.7 mostra em destaque os blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da primeira gerao.

23

glReadPixels() Matriz de projeo

glDrawPixels() ou glTexImageXX()

Recorte contra o volume de visualizao

Modos de armazenamento de pixels

Diviso por w

Primeira Gerao de GPUs

Modos de transferncia de pixels FRAGMENTOS Posio de rasterizao atual Rasterizao

Operaes por fragmento

Memria de textura

PIXELS frame buffer

Figura 2.7: Blocos do pipeline grfico do OpenGL implementados no hardware das placas grficas da primeira gerao de GPUs.
2.3.3 Segunda Gerao de GPUs

A segunda gerao de GPUs (1999-2000) inclui as placas grficas GeForce 256 e GeForce2 da nVIDIA, a Radeon 7500 da ATI e a Savage3D da companhia S3. Estas GPUs livram a CPU das transformaes e iluminao dos vrtices. A transformao rpida dos vrtices era uma das principais caractersticas que diferenciavam as poderosas estaes de trabalho dos PCs antes desta gerao. Embora o conjunto de operaes matemticas para combinao de texturas e colorao de fragmentos tenha sido expandido nesta gerao para incluir texturas com environment mapping (cube map textures) e operaes matemticas com sinal, as possibilidades ainda so limitadas. Por outro lado, esta gerao mais configurvel (vrias caractersticas do pipeline fixo podem ser configuradas pela aplicao). As GPUs desta gerao embarcam praticamente todos os estgios do pipeline grfico ilustrado na Figura 2.2.
2.3.4 Terceira Gerao de GPUs

A terceira gerao de GPUs (2001) inclui as placas grficas GeForce3 e GeForce4 da nVIDIA, a Xbox da Microsoft e a Radeon 8500 da ATI. Esta gerao de GPUs trouxe as unidades programveis de tratamento de vrtices. Alm de suportar os modelos convencionais de transformao e iluminao do OpenGL e do DirectX 7, estas GPUs oferecem aplicao a possibilidade de especificar o algoritmo de processamento (shaders) dos vrtices. O tratamento de fragmentos ganha novas opes de configurao, mas ainda no h controle suficiente para que possa ser considerado programvel. Contando com o tratamento de vrtices programvel, mas ainda sem esta capacidade em nvel de fragmentos, esta gerao considerada uma gerao de transio. Na Figura 2.8 ilustrado o bloco do pipeline que pode receber um conjunto de instrues informado pela aplicao para o processamento dos vrtices. O DirectX 8

24

e extenses do OpenGL permitem a programao de transformaes de vrtices para as aplicaes.


2.3.5 Quarta Gerao de GPUs

A quarta e atual gerao de GPUs (2002 ao incio de 2004) inclui as placas grficas GeForce FX da nVIDIA e as Radeon 9700 e Radeon 9800 da ATI. Estas GPUs permitem o tratamento programvel de vrtices e fragmentos. Este nvel de programabilidade trouxe a possibilidade de transferir completamente transformaes complexas de vrtices e operaes de colorao de fragmentos da CPU GPU. Em adio determinao da cor final, as novas capacidades dos programas de fragmentos tambm incluem, por exemplo, determinar uma nova profundidade ou mesmo descartar fragmentos para evitar a atualizao do frame buffer. O DirectX 9 e vrias extenses do OpenGL expem aplicao os estgios programveis da GPU. A Figura 2.8 mostra o diagrama de blocos do pipeline grfico programvel das GPUs atuais. A tendncia dominante no projeto de hardware grfico o esforo para aumentar ainda mais a programabilidade da GPU. Hoje, diversas linguagens (C for Graphics da nVIDIA, High Level Shading Language da Microsoft, OpenGL 2.0 Shading Language, etc) oferecem formas de traduzir algoritmos em seqncias de instrues que a GPU possa executar.

25

VRTICES

Rotina de processamento de fragmentos

Rotina de processamento de vrtices

Vrtices

Normais

Cores

Coordenadas de textura

Normal atual

Cor atual

Coordenada de textura atual

Processador de vrtices

PRIMITIVAS

Reconstruo das primitivas geomtricas

Recorte controlado pela aplicao glReadPixels() Matriz de projeco

glDrawPixels() ou glTexImageXX()

Recorte contra o volume de visualizao

Modos de armazenamento de pixels

Diviso por w Modos de transferncia de pixels FRAGMENTOS Posio de rasterizao atual Rasterizao

Processador de fragmentos

Memria de textura

PIXELS Operaes por fragmento

frame buffer

Figura 2.8: Diagrama de blocos do pipeline grfico programvel na quarta gerao.

2.4 Concluso
A programabilidade disponvel nas GPUs tem sido explorada em diversas publicaes. O controle explcito sobre o clculo da cor de cada fragmento, em especial, possibilitou o desenvolvimento e a adaptao de uma srie de algoritmos de visualizao de volumes (ENGEL; KRAUS; ERTL, 2003; KRGER; WESTERMANN, 2003; WEISKOPF; ENGEL; ERTL, 2003). Outras capacidades disponveis atualmente, como a multitextura, permitem a associao de uma quantidade maior de informaes ao rendering de cada fragmento. Estas informaes chegam ao processador de fragmentos como cores de textura, mas podem ser interpretadas de forma mais apropriada por shaders informados pela aplicao. Esta abordagem explorada por muitos autores (ENGEL; KRAUS; ERTL, 2003; KRGER; WESTERMANN, 2003; WEISKOPF; ENGEL; ERTL, 2003). O pipeline discutido na Seo 2.2 a base para a proposta e a programao das ferramentas de interao apresentadas nesta dissertao. No Captulo 0 ele revisitado, com objetivo de determinar quais pontos do fluxo de visualizao podem ser explorados para a implementao das ferramentas de interao com imagens 3D. No Captulo 0, so mostradas as formas como estas capacidades foram exploradas neste estudo.

3 VISUALIZAO DIRETA DE VOLUMES BASEADA EM TEXTURAS

3.1 Introduo
Neste captulo discutida a idia geral da visualizao direta baseada em texturas. Algoritmos modernos de visualizao direta so baseados nos mtodos apresentados por Levoy (1988), Drebin, Carpenter e Hanrahan (1988), Sabella (1988) e Upson e Keeler (1988). Desde a proposta destes trabalhos, muitos autores exploram extenses (PFISTER, 1999) e otimizaes (KRGER; WESTERMANN, 2003; LACROUTE; LEVOY, 1994; LEVOY, 1990) dos modelos originais. O surgimento da tcnica de mapeamento de texturas, no entanto, inspirou alguns autores (CABRAL; CAM; FORAN, 1994; CULLIP; NEUMANN, 1993) a explorar novas abordagens para mtodos de visualizao direta. Cabral, Cam e Foran (1994) demonstram que tanto a reconstruo quanto a interao com imagens volumtricas visualizadas diretamente so possveis em hardware grfico com a capacidade de mapeamento de texturas 3D. A partir da terceira gerao de GPUs (2001), o mapeamento de texturas 3D est incorporado no hardware grfico. O ganho de desempenho, somado programabilidade do clculo de fragmentos, motivou alguns autores (ENGEL; KRAUS; ERTL, 2003; KRGER; WESTERMANN, 2003; WEISKOPF; ENGEL; ERTL, 2003) a explorar as capacidades da GPU para a visualizao direta. Alm dos esquemas abordados em pesquisas anteriores (slice-based rendering (CULLIP; NEUMANN, 1993)), tcnicas como o ray-casting proposto por Levoy (1988) tambm so implementados na GPU (KRGER; WESTERMANN, 2003). Hoje possvel dizer que a visualizao direta baseada em texturas uma das principais linhas de pesquisa em visualizao volumtrica. Seguindo a linha destas pesquisas, este trabalho explora o mapeamento de texturas para a visualizao direta e implementao de ferramentas interativas para a seleo do VOI. A implementao do sistema de visualizao segue o modelo de Cullip e Neumann (1993), isto , a visualizao baseada em fatias (slice-based rendering). Neste Captulo, este esquema discutido, apresentando como a sua escolha influi na proposta das ferramentas de interao. Finalmente, mostrado o pipeline de visualizao do esquema utilizado, onde so identificados os pontos que podem ser explorados para a implementao das ferramentas interativas.

3.2 Visualizao Direta de Volumes


Desde sua introduo no final da dcada de 80 por Levoy (1988), diferentes MVDs foram propostos segundo abordagens que podem ser fracamente classificadas como

27

baseadas em imagem e baseadas em objeto. Nos mtodos baseados em objeto, a contribuio de cada elemento do volume computada sobre o plano de projeo (splatting (WESTOVER, 1990), texturas (CULLIP; NEUMANN, 1993; CABRAL; CAM; FORAN, 1994), etc). J nos mtodos baseados em imagem, raios so lanados dos pixels do plano de projeo em direo ao volume, e as contribuies dos elementos ao longo de cada raio so combinadas para formar a cor final do pixel associado ao raio (ray-casting (LEVOY, 1988), etc). Esquemas ilustrando as duas abordagens podem ser vistos na Figura 3.1.

Plano de Projeo Pixel Ponto de Viso

Plano de Projeo Pixel Ponto de Viso

(a) (b) Figura 3.1: Classificao comumente usada para mtodos de visualizao direta de volumes. (a) Mtodos baseados em imagem, onde raios so lanados dos pixels do plano de projeo em direo ao volume, e as contribuies dos elementos ao longo de cada raio so combinadas para formar a cor final do pixel; (b) mtodos baseados em objeto, onde a contribuio de cada elemento do volume computada sobre o plano de projeo. O tema comum, entretanto, a soluo (aproximada) da integral de visualizao volumtrica (MAX, 1995) para cada pixel do plano de projeo. A soluo integra as cores atenuadas ao longo de cada raio de viso, entre o observador e cada pixel da tela. Basicamente, esta integral modela a forma como a luz transportada de cada elemento do volume at cada pixel do plano de projeo. Este processo depende dos vrios fenmenos em funcionamento, como a emisso, o espalhamento e a absoro da luz. Modelos fsicos que estudam o funcionamento destes fenmenos so chamados de modelos ticos. Os primeiros modelos ticos para o rendering foram desenvolvidos por Blinn (BLINN, 1982) e estendidos por Kajiya e Herzen (1984) para volumes povoados por partculas (elementos) de densidades no-homogneas. Blinn (1982) adaptou a teoria de transferncia de radiao do modelo de partculas para sntese de imagens realsticas de Esposito (1979), Chandrasekhar (1960) e outros. Algoritmos modernos de visualizao volumtrica so baseados em Levoy (1988), Drebin, Carpenter e Hanrahan (1988), Sabella (1988) e Upson e Keeler (1988). Como a soluo analtica das equaes integro-diferenciais para a transferncia de luz atravs de um modelo no-homogneo geralmente no possvel analiticamente (KAJIYA; VON HERZEN, 1984; MAX, 1995) e numericamente muito custosa, foram desenvolvidas diversas simplificaes para o seu tratamento computacional. Entre estas simplificaes esto o espalhamento simples de luz e o no-sombreamento entre as partculas do volume.

28

O espalhamento simples de luz ignora mltiplas fontes de luz, o que verdade se as partculas no so muito brilhantes (de baixa reflectividade). Pela suposio de nosombreamento, as fontes de luz no provocam sombra enquanto iluminam o volume (mesma luminosidade em todas as partculas do volume), o que economiza esforo no clculo da contribuio da fonte de luz.

3.3 Aproximao da Visualizao Direta por Texturas


Neste trabalho assume-se o modelo tico de absoro e emisso (absorption plus emission) apresentado por Max (1995). Este modelo til para a visualizao de dados mdicos (meios no-homogneos). Neste modelo, considera-se que o volume povoado por uma nuvem de partculas. As partculas podem atenuar a luz que vem at elas, assim como podem emitir luz prpria. Para um sistema de partculas esfricas idnticas, tem-se de Wittenbrink, Malzbender e Gross (1998) que a contribuio ao longo de um raio de viso pode ser aproximada pela seguinte soma de Riemann:
cor =
N n =1

c[n] [n] (1 [m]) ,


m =1

n 1

(3.1)

para N amostras ao longo de um raio. O volume amostrado nas posies n e m , onde c[i ] e [i ] so a cor (tipicamente uma grandeza vetorial) e a opacidade (escalar) amostradas na posio i do raio, respectivamente. Em outras palavras, a cor no pixel que origina o raio o somatrio das cores c[n] emitidas em cada ponto n ao longo do raio, atenuadas pela sua prpria opacidade [n] e a transparncia dos pontos em frente ao pixel na linha de viso do observador. Usando o modelo tico discutido, a equao de composio back-to-front (de trs para frente, em relao ao ponto de viso) tem a seguinte forma (LEVOY, 1988):

cor = (1 frente )cortrs + corfrente frente .

(3.2)

O OpenGL tem funes que suportam este tipo de combinao de fragmentos. No entanto, para que a tcnica de visualizao direta de volumes seja computada inteiramente no hardware grfico, ainda so necessrios dois requisitos. Em primeiro lugar, deve haver alguma forma de armazenar a imagem 3D na memria da GPU. Em segundo lugar, deve ser desenvolvido um sistema de amostragem do conjunto de dados por meio de primitivas geomtricas, que so os tipos de dados suportados pela GPU. Este o propsito da tcnica da visualizao direta atravs do mapeamento de texturas. Basicamente, a tcnica se resume a reamostrar a imagem 3D, representada por uma pilha de texturas 2D ou uma textura 3D, atravs de um conjunto de primitivas geomtricas. A Figura 3.2 mostra um esquema dos principais passos do rendering volumtrico por texturas.

29

Plano de projeo

Ponto de viso

Figura 3.2: Esquema da visualizao de volume de dados por texturas; (a) volume de dados; (b) polgonos de amostragem; (c) mapeamento dos polgonos de amostragem no espao de textura; (d) rendering dos polgonos de amostragem no frame buffer. Na tcnica tradicional de visualizao direta por mapeamento de texturas, a integral do raio para cada pixel calculada atravs do rendering de polgonos de reamostragem atravs do volume (slice-based rendering (CULLIP; NEUMANN, 1993)). Deste modo, a emisso e a absoro ao longo de cada raio de viso so computadas por meio da amostragem e combinao do volume para cada passo da integrao. Cada fragmento de um polgono corresponde contribuio de um segmento de raio integral do rendering volumtrico para cada pixel do frame buffer. A principal vantagem que toda a tarefa pode ser feita no hardware grfico, sendo limitada apenas pelo desempenho da GPU. Na implementao da visualizao direta por mapeamento de texturas, a tcnica se resume ao rendering de polgonos texturizados. Segundo a notao descrita por Ikits et al. (2004), este pipeline pode ser dividido em trs estgios: inicializao, atualizao (update) e desenho (drawing). No estgio de inicializao, o conjunto de dados volumtricos armazenado como uma textura 3D na GPU. Os dados podem ser pr-processados (para a pr-classificao, por exemplo), ou podem enviar GPU informaes adicionais para o processamento em estgios posteriores. Esta deciso influi na implementao do estgio de desenho. Atualizaes no pipeline so exigidas quando o usurio interage com o sistema, mudando os parmetros de visualizao (mudana do ponto de viso ou do plano de projeo, por exemplo). Na abordagem de slice-based rendering com planos paralelos ao plano de projeo, esta mudana exige que todos os polgonos de amostragem sejam reconstrudos. O estgio de desenho responsvel por gerar a imagem final. Neste estgio, a cor de cada fragmento dos polgonos de amostragem calculada e combinada no frame buffer. A cor final comumente a cor de textura, correspondente ao espao do conjunto de dados amostrado por este fragmento. A combinao da cor do fragmento com a cor do pixel correspondente no frame buffer feita de acordo com a Equao 3.2. Na Figura 3.3, mostrado o pipeline de visualizao direta por texturas, baseado no diagrama da Figura 2.8.

(a)

(b)

(c)

(d)

30

VRTICES

Rotina de processamento de fragmentos

Rotina de processamento de vrtices

Vrtices (geometria de amostragem)

Coordenadas de textura

Coordenada de textura atual

Processador de vrtices

PRIMITIVAS

Reconstruo das primitivas geomtricas

Matriz de projeco

glDrawPixels() ou glTexImageXX()

Recorte contra o volume de visualizao

Modos de armazenamento de pixels

Diviso por w Modos de transferncia de pixels FRAGMENTOS Posio de rasterizao atual Rasterizao

Processador de fragmentos

Memria de textura

PIXELS Operaes por fragmento

frame buffer

Figura 3.3: Pipeline de visualizao direta por texturas. A flexibilidade na programao do clculo da cor dos fragmentos no estgio de desenho possibilita a adaptao de diversos algoritmos de visualizao na GPU. Krger e Westermann (2003), por exemplo, prope um sistema de ray-casting baseado no mtodo de Levoy (1988). Os autores sugerem um novo fluxo de visualizao iterativo para a construo da imagem final. Embora eles relatem um ganho de desempenho significativo em relao tcnica de Cullip e Neumann (1993), o objetivo neste Captulo discutir um modelo de visualizao suficientemente genrico para servir de suporte proposta das ferramentas de interao. O fluxo de visualizao sugerido por Cullip e Neumann (1993) se encaixa nesta exigncia, sendo tambm a base de outras publicaes recentes (ENGEL; KRAUS; ERTL, 2003; WEISKOPF; ENGEL; ERTL, 2003).

3.4 Concluso
A tcnica de visualizao de volumes baseada em texturas proposta por Cullip e Neumann (1993) j est sedimentada como uma forma eficiente de visualizao direta (ENGEL; KRAUS; ERTL, 2003). No entanto, a flexibilidade da programao das GPUs permite adaptar outras tcnicas de visualizao direta ao hardware grfico. As texturas

31

3D, neste contexto, so vistas como uma forma eficiente de armazenamento e recuperao de dados, manipuladas pela tcnica de visualizao implementada na GPU. Um bom exemplo a tcnica de ray-casting proposta por Krger e Westermann (2003). A despeito das vantagens de uma ou outra tcnica, as ferramentas propostas nesta dissertao tm o objetivo de ser adaptadas a qualquer mtodo de visualizao volumtrica baseada em texturas. Para isto, neste captulo so discutidos apenas os principais aspectos relacionados ao rendering de texturas, que resultam no diagrama da Figura 3.3. O diagrama ilustrado na Figura 3.3 serve como base para a proposta das ferramentas de interao. Ele ilustra os principais blocos do pipeline grfico usados pela implementao da visualizao direta de volumes baseada em texturas. A partir da anlise do fluxo de dados entre estes blocos, no Captulo 0 so identificados os pontos onde as ferramentas de interao podem ser implementadas.

4 RECORTE VOLUMTRICO BASEADO NO MAPEAMENTO DE TEXTURAS

4.1 Viso Geral das Ferramentas


Seguindo uma tendncia recente, este projeto explora a tcnica de mapeamento de texturas para a visualizao direta, integrando ferramentas interativas ao pipeline de visualizao volumtrica baseada em texturas. Como discutido no Captulo 3, este pipeline pode ser dividido em trs estgios: inicializao, atualizao (update) e desenho (drawing) (IKITS et al., 2003). Nesta seo, os estgios deste pipeline so discutidos em relao ao sistema implementado, para posicionar a proposta das ferramentas. No estgio de inicializao, o volume de dados lido e enviado para a memria da GPU como uma textura 3D. O volume pode ser processado antes do envio, para aplicao de uma funo de transferncia (pr-classificao da imagem) ou para o clculo de parmetros exigidos pela tcnica de visualizao (como o gradiente por voxel, para aplicao de tcnicas de iluminao). O processamento do volume neste estgio influi na implementao do estgio de desenho. No sistema proposto nesta dissertao, nenhum processamento feito sobre o volume de dados antes do seu envio GPU. O estgio de atualizao responsvel pela atualizao das estruturas usadas no estgio de desenho. As atualizaes so necessrias quando o usurio interage com o sistema, mudando os parmetros de visualizao ou recortando o volume. Os parmetros de visualizao dizem respeito posio da cmera, e cada mudana exige o recorte dos planos de amostragem paralelos ao plano de projeo contra o volume (viewport-aligned slices). O recorte pode ser produzido por trs ferramentas diferentes: o recorte planar, a borracha virtual e a escavadeira virtual. O conjunto de polgonos de amostragem deve ser atualizado cada vez que o recorte planar usado ou os parmetros de visualizao so mudados. Existem muitos esquemas de amostragem possveis, sendo que os principais so descritos por Cullip e Neumann (1993). Basicamente, os autores propem a amostragem por planos recortados contra o espao de textura (polgonos). Estes planos podem ser paralelos ao plano de projeo ou alinhados a um eixo ortogonal do espao de textura, como pode ser visto na Figura 4.1.

33

Volume de dados Plano de Projeo

Polgonos de amostragem Plano de Projeo

Volume de dados

Polgonos de amostragem

(a) (b) Figura 4.1: Posies dos planos de amostragem no espao de textura (CULLIP; NEUMANN, 1993). (a) Planos alinhados a um eixo ortogonal do espao de textura e (b) planos paralelos ao plano de projeo. Para realizar este procedimento, proposto um algoritmo que explora a coerncia espacial entre os polgonos de amostragem do volume, a WSG (Weighted Sweep graph). A WSG capaz de codificar um VOI convexo para a construo eficiente dos polgonos necessrios para a sua amostragem, em qualquer das abordagens sugeridas por Cullip e Neumann (1993). Uma simples modificao no algoritmo permite que a estrutura tambm suporte operaes de recorte planar no VOI. Assim, esta estrutura integra a amostragem exigida pela tcnica de visualizao baseada em texturas com a primeira ferramenta de recorte. A WSG proposta na Seo 4.2, e a implementao do recorte planar sobre a estrutura discutida na Seo 4.3. A borracha e a escavadeira virtuais so implementadas na GPU e servem para identificar fragmentos que no devem contribuir para a formao da imagem final. Estas ferramentas so usadas para atualizar uma segunda textura 3D, a mscara de recorte, seguindo o paradigma proposto por Weiskopf, Engel e Ertl (2003). Esta segunda textura usada como uma mscara para indicar se cada fragmento do volume real visvel ou no. A borracha virtual usada para marcar como no visveis todos os texels que esto dentro de um volume imaginrio cilndrico definido pelo usurio. A escavadeira virtual similar borracha virtual, mas limita a rea de ao da ferramenta a pores prximas superfcie do volume. Para isto, o procedimento da escavadeira exige dois pixel shaders executados em duas passagens pelo pipeline de rendering. As duas ferramentas atualizam a mscara de recorte, que armazena o VOI na GPU. Como a mscara de recorte uma textura 3D e no pode ser atualizada diretamente pelo resultado do rendering, usada uma textura 2D intermediria para o armazenamento do resultado dos shaders. Esta textura copiada por meio da CPU para a mscara de recorte. As ferramentas implementadas na GPU, borracha e escavadeira, so detalhadas respectivamente nas sees 4.4 e 4.5. O estgio de desenho combina os parmetros fixados pelo usurio para a construo da imagem final. No sistema proposto nesta dissertao, este estgio implementado em um pixel shader. O shader recebe como parmetros os polgonos de amostragem construdos pela WSG (VOI armazenado na CPU), a textura 3D com o volume real e a mscara de recorte. Para cada fragmento dos polgonos de amostragem, o shader busca a cor do fragmento na textura com o volume real e testa a sua condio na mscara de recorte. Se o fragmento for visvel, ele segue para adicionar sua contribuio no frame buffer; caso contrrio, ele descartado.

34

A Figura 4.2 ilustra um esquema simplificado do sistema proposto. Nele so identificados os principais procedimentos e estruturas de dados, assim como o seu posicionamento (estgios de desenho/atualizao e implementao na CPU/GPU). O VOI final definido pela combinao das informaes contidas na WSG e na mscara de recorte. Definido desta forma, ele comum a todos os estgios do sistema. A atuao do usurio sobre as ferramentas de recorte, mostrada em arcos, atualiza a informao do VOI.
shader 1 da escavadeira textura de profundidade ATUALI ZAO

shader 2 da escavadeira Mscara de recorte 2D shader da borracha

WSG

Mscara de recorte shader de visualizao textura da imagem 3D visualizao 2D

DES ENHO

CPU

GPU

Figura 4.2: Diagrama simplificado do fluxo de visualizao e atualizao do VOI. Nas operaes de recorte, o objetivo atualizar a WSG e a mscara de recorte. Na visualizao, o VOI (mostrado dentro da elipse de contorno tracejado) combinado com o volume real para gerar a imagem final. O usurio controla os procedimentos de atualizao VOI.

4.2 Weighted Sweep Graph


Nesta seo descreve-se o algoritmo de recorte por varredura de plano (plane-sweep) usado pela ferramenta de interao. O algoritmo de varredura pode ser visto em mais detalhes em Benley e Ottman (1979), Hertel et al. (1983) e Nievergelt e Preparata (1982). Nesta seo, ele usado para explorar a coerncia entre os polgonos recortados contra o espao de textura. O uso desta abordagem permite propor uma forma eficiente de construir os polgonos de amostragem sem a necessidade de calcular o recorte, como descrito nos pargrafos a seguir. A principal idia da abordagem plane-sweep reduzir um problema esttico de n dimenses para um (talvez mais simples) problema dinmico de (n1) dimenses. Isto obtido pela varredura de uma coleo de objetos em um dado espao por um hiperplano,

35

mantendo a cada instante o subconjunto de elementos interceptados pelo hiperplano (denominados elementos ativos) (HERTEL et al., 1983). As interseces com o hiperplano evoluem continuamente no tempo at que um evento ocorra e altere o conjunto de elementos ativos. Esta abordagem explora a coerncia entre os elementos interceptados na evoluo do hiperplano de varredura. Por propsitos didticos, o algoritmo primeiro discutido na formulao anloga para 2D (interseo entre linhas e polgonos convexos) antes de ser descrito para o caso 3D (interseco entre planos e poliedros convexos).
4.2.1 Interseco entre Linhas e Polgonos Convexos

Um polgono P no plano definido por uma lista ordenada de pontos 2D (p1, p2, p3,..., pn). Sua representao por um grafo planar G define um vrtice vi em G para cada ponto pi do polgono, e arestas ek entre dois vrtices vi e vj se os pontos correspondentes pi e pj compartilharem um segmento de linha no polgono. Um grafo planar subdivide o plano em uma regio interna e uma regio externa ilimitada. Um grafo planar dito convexo se cada regio interna convexa e o complemento da regio externa tambm convexo. O conjunto ativo (conjunto de arestas seccionadas) pode ser obtido pelo clculo da interseco entre uma linha de varredura contra um polgono convexo P, como mostrado na Figura 4.3. O segmento resultante ab dentro de P e sobre a linha de varredura pode ser representado pelas extremidades a e b. A direo da linha de varredura dada por um vetor s ortogonal linha , e cada posio (t) corresponde a um diferente instante de tempo. Por simplicidade, assume-se que o movimento da linha de varredura da esquerda para a direita (uma simples rotao pode ser aplicada se s no horizontal). Uma mudana no conjunto ativo ocorre quando a linha de varredura passa atravs de um dos vrtices do polgono (o que define um evento). Para encontrar os eventos & necessrio projetar cada vrtice vi sobre o vetor s (referidos como vi ). O vrtice projetado mais esquerda (em relao a s ) chamado de origem (os) da linha de varredura (por simplicidade, assume-se que apenas um vrtice define os). Para cada & & vrtice projetado vi , define-se o peso de um vrtice projetado W( vi ) como a distncia & Euclidiana entre vi e os. A ordem dos vrtices projetados (em relao aos seus pesos) d a ordem dos eventos, como mostra a Figura 4.3. Nota-se que as arestas do polgono interseccionadas pela linha de varredura no mudam entre os eventos. Estas arestas so chamadas de arestas-suporte, j que elas definem as extremidades ab do segmento de interseco. Interpolaes lineares nas equaes paramtricas das arestas-suporte podem ser usadas para obter a e b para cada posio intermediria da linha de varredura. As arestas-suporte so atualizadas somente a cada evento processado.

36

v4 v1 a P b v2 . v v2 . 1 (os) t (t) . v.3 v4 v3 S

Figura 4.3: Uma linha de varredura movendo-se da esquerda para a direita. A cada instante de tempo t computa-se a sua interseco com o polgono P. No instante t ilustrado, as arestas suporte so as arestas formadas entre os vrtices v1 e v4 e os vrtices v2 e v3.
Para um dado polgono P de n lados e uma direo s , possvel construir uma estrutura de suporte, um grafo direcionado acclico valorado (definio formal da WSG), que identifica as arestas de suporte e os tempos dos eventos necessrios para atualiz-las. Uma WSG (P, s ) definida de uma representao planar G de um polgono P como se segue: a) para cada vrtice vi em G, criar um nodo ni em WSG; b) para cada nodo ni, definir uma aresta direcionada ek entre ni e um nodo nj (ni dito pai de nj) se: a. vi adjacente a vj em G; & & b. a linha de varredura passa por vi antes de passar por vj (W( vi ) < W( v j )). A Figura 4.4 mostra um exemplo de WSG, onde a distncia vertical entre os nodos da WSG definida de acordo com seus pesos.
v2 v1 . v2 . v1

v3 v4 S

. v3 . v4

Figura 4.4: WSG codificando a ordem dos vrtices atravessados pela linha de varredura . Define-se um corte C(, d) na WSG em uma distncia d, como uma lista de todas as arestas (e1, e2, e3,..., en) na WSG que satisfazem as seguintes condies: a) ei uma aresta na WSG; & & b) W( vi ) d W( v j ), onde ni e nj so conectados por ei na WSG. Uma busca em profundidade no grafo a partir do nodo correspondente a os pode ser usada para calcular um corte na WSG. Uma propriedade importante no corte que ele contm as arestas-suporte (Figura 4.4). Assim, transforma-se o problema de computar as

37

arestas-suporte em uma posio t da linha de varredura em um problema de computar um C(, t). Mudanas no corte acontecem quando a linha de varredura atravessa um vrtice, o que corresponde a alcanar um nodo na WSG. A atualizao no corte exige a remoo da aresta que conecta o nodo ao seu pai e a insero da aresta que conecta o vrtice ao seu filho. A Figura 4.5 mostra um instante de tempo da varredura do polgono e o corte correspondente na WSG.
v2 v1 . v2 . v1 v4 v1 a P b v3 v4 S . v3 . v4 v2 (t) t . . v2 v1 . . v3 v4 v3 S

Figura 4.5: Instante de tempo t na varredura da linha sobre o polgono P (b). Em (a), observa-se o corte C(, t) correspondente na WSG, que contm as arestas-suporte do segmento de interseo entre a linha de varredura e o polgono P.
4.2.2 Interseco Entre Planos e Poliedros Convexos

(a)

(b)

A noo de uma linha de varredura pode ser estendida em 3D para um plano de varredura , definido pela direo dada por um vetor normal s . A computao da WSG referente a um grafo G (que representa agora o poliedro convexo P) e uma direo de varredura s anloga ao caso 2D. A Figura 4.6 ilustra a WSG obtida para um paraleleppedo ao longo de uma direo de varredura arbitrria.
S v7 . v7 v2 v3

v6

v3

v8

. v6, 3, 8 v1 . v5, 2, 4 v7 v6

v4

v5

v2

v4

v1

. v1 S

v8 v5

Figura 4.6: WSG resultante da varredura de um cubo por um plano definido por uma direo s arbitrria. Uma dificuldade que surge no caso 3D que a interseco entre o plano de varredura e o poliedro corresponde a um polgono. No caso 2D, esta interseco um segmento de linha facilmente representado por duas extremidades. Para definir um polgono em 3D, no somente os vrtices so necessrios, mas tambm a ordenao

38

entre eles, seguindo uma conveno de orientao (sentido horrio ou anti-horrio). Nota-se que cada nodo no caso 2D, exceto o nodo correspondente a os, tem apenas um nico filho, o que no verdade no caso 3D. Tambm se deve considerar que o corte em 3D tem tantas arestas quantos forem os lados no polgono de interseco, com pelo menos trs (tringulo). Assim, algumas regras adicionais que controlam a ordem dos nodos filhos so sugeridas a seguir, para que seja respeitada a ordem de construo do polgono. Considera-se que F(vi) = (v1, v2, v3,..., vn) seja a lista de vrtices adjacentes a vi em G. Esta lista pode ser obtida por uma simples visita ordenada em torno de vi em G (em sentido horrio ou anti-horrio). Assume-se que os vrtices em F(vi) so sempre enumerados desta maneira. Tomada uma direo de varredura s , define-se vk como o & vrtice de F(vi) que tenha o menor peso (ou seja, v k ser pai dos vrtices de vi na WSG). Para que a ordem de construo do polgono seja respeitada, F(vi) deve ser reordenada na forma F(vi) = (vk, vk+1, vk+2,..., vn,..., vk-2, vk-1). Este procedimento repetido para todos os vrtices de G, na fase de inicializao da WSG. Se em F(vi) no houver nenhum vrtice vk onde W(vk) < W(vi), a ordem permanece inalterada. Na Figura 4.7 so ilustradas trs diferentes posies do plano de varredura e as WSGs resultantes. O primeiro corte definido entre as arestas conectando os vrtices v7-v6, v7-v3 e v7-v8, usadas para computar os pontos a, b e c do polgono de interseco. O segundo corte definido entre as arestas que conectam os vrtices v6-v5, v6-v2, v3-v2, v3-v4, v8-v4 e v8-v5, que definem os pontos d, e, f, g, h, i do hexgono de interseco. A restrio de que somente um vrtice define a raiz da WSG pode ser eliminada pela simples adio de um nodo fantasma ao grafo, que conecte os nodos de menor peso e seja considerado a nova raiz da WSG.
S v7 a v6 g h b i v2 k l v1 j . v1 S v3 d e c v8 f . v5, 2, 4 k c g v5 f . v6, 3, 8 . v7 v2 i v3 d j h l v1 a e v7 b v8 v4

v5

v4

v6

Figura 4.7: Trs diferentes posies do plano de varredura e os correspondentes cortes na WSG. Os cortes na WSG so usados para computar os vrtices do polgono de interseco. Usando a WSG como suporte, o clculo dos polgonos de amostragem de um volume convexo qualquer trivial. Definido um ponto de viso, a direo s ortogonal ao plano de varredura tambm ortogonal ao plano de projeo. No caso do OpenGL, s pode ser recuperado diretamente da matriz de visualizao da cena. Computada a WSG a partir de s e do volume convexo, cada polgono de amostragem gerado por uma busca em profundidade na WSG, C(, d). A distncia d incrementada para a construo de cada polgono.

39

4.3 Recorte Interativo Usando a WSG


Aqui so discutidas as formas de usar a estrutura de amostragem proposta na Seo 4.2 para construir uma ferramenta interativa de recorte volumtrico. Na primeira parte, proposta uma modificao no algoritmo da WSG para a reestruturao do poliedro P a partir de um corte. A seguir, sugerida uma forma de controle interativo da definio de um corte no poliedro.
4.3.1 Definio Interativa do Poliedro de Amostragem

No esquema proposto, o VOI sempre definido por uma regio convexa contida dentro do volume original. A especificao desta regio convexa pelo usurio segue uma abordagem de poda. Comeando com uma forma convexa bsica (um cubo, por exemplo), o usurio pode definir um plano que corta o volume. O recorte do volume convexo por um plano resulta em outro volume convexo, com uma face adicional. O processo pode ser repetido sempre que necessrio. Cada plano de recorte informado pelo usurio pelo seu vetor normal e um ponto no plano, que so controlados usando o mouse. O vetor normal dado pela direo de um segmento de reta que parte do centro do VOI e termina num ponto indicado pelo usurio com o mouse. O ponto de referncia no plano controlado por um slider que especifica a distncia entre o plano de recorte e o centro do VOI. A forma de interao proposta pode ser visualizada na Figura 4.8.
Normal do plano de recorte Normal do plano de recorte

Plano de recorte Plano de recorte volume inicial VOI VOI

Figura 4.8: Especificao dos planos de recorte para a definio do VOI. O usurio controla a direo normal do plano usando o mouse para indicar a extremidade da linha que parte do centro do VOI. O ponto de referncia no plano controlado por um slider que especifica a distncia entre o plano de recorte e o centro do VOI. Na WSG que computa os polgonos de amostragem, os parmetros informados pelo usurio so usados para calcular o recorte do poliedro. A direo normal definida pelo mouse corresponde a direo de varredura s . A distncia d exigida para o clculo do corte indica a distncia definida pelo slider. Os planos de recorte podem ser adicionados em qualquer momento, e VOIs convexos arbitrrios podem ser definidos sem que o desempenho da amostragem seja afetado significativamente.
4.3.2 Recorte do Poliedro de Amostragem

Dada uma direo qualquer de varredura s , o grafo WSG (P, s ) pode ser construdo para um poliedro P. A partir da codificao de P em , possvel computar o recorte C(, d) de planos (definidos por s e uma distncia d qualquer) contra o

40

poliedro P. Supondo agora que o interesse esteja em recortar o poliedro P por um plano qualquer, a informao de C(, d) tambm pode ser usada para a reestruturao de P. Um recorte de um poliedro P por um plano pode ser calculado a partir de um corte C(, d) na WSG (P, s ). Para isto, basta considerar que o plano de recorte definido por uma direo normal e um ponto no plano. A partir destes parmetros, possvel calcular uma direo s e uma distncia d, que posicionem C(, d) sobre o plano de recorte. Basicamente, a direo s corresponde normal do plano, enquanto que a distncia d calculada a partir do centro do poliedro e do ponto sobre o plano de recorte. Assim, para calcular o recorte de P, os seguintes passos so executados para cada vrtice vi calculado a partir de C(, d): a) adicionar vi ao poliedro, onde os vizinhos de vi so: a. os vrtices vj e vk do poliedro, correspondentes aos nodos nj e nk da aresta de C(, d) que originou vi; b. os vrtices vi-1 e vi+1 de calculados a partir de C(, d); b) remover da vizinhana de vi os vrtices que estiverem do lado negativo do plano de recorte. Desta forma, a topologia do poliedro atualizada em relao ao plano de recorte definido pelo usurio. Observa-se que o passo (b) da atualizao da vizinhana de vi requer que o conjunto de vrtices calculado a partir de C(, d) seja conhecido antes dos passos de atualizao do poliedro. A Figura 4.9 mostra os passos de atualizao do VOI descritos acima para o recorte de um paraleleppedo por um plano.
S v6 v2 v3 v1 v5 v4 v8 v5 v6 v7 v2 c v1 b v7 a v8 v5 a v2 c b v1 S v4 .v
5, 2, 4

v3 v4 v6

v7 v3 v8

.v

v6 .v
6, 3, 8

v2 c b v5 a v4 v v3

v1

Figura 4.9: Uso da informao contida na WSG para o recorte de um paraleleppedo por um plano. (a) Grafo G representando o paraleleppedo; (b) posicionamento do plano de recorte sobre o paraleleppedo (a rea em cinza indica a regio de recorte); (c) recorte computado na WSG, a partir das informaes do plano de recorte e (d) atualizao do grafo G.

(a)

(b)

(c)

(d)

4.4 Borracha Virtual


Ferramentas do tipo borracha so comuns em aplicativos de editorao de imagens 2D, com uma interface de controle muito simples: com o mouse, o usurio indica posies sobre a grade da imagem que sero excludas. No entanto, a dimenso adicional de um volume (profundidade) exige que o usurio seja capaz de descrever coordenadas tridimensionais para apontar regies dentro do volume. Isto motivou a construo de diversos tipos de ferramentas de recorte mais sofisticadas, tais como planos e volumes de recorte (PFISTER, 1999), por exemplo. Sua sofisticao vem tanto do nmero adicional de parmetros de controle, quanto dos dispositivos de interao

41

comumente usados (mouse 3D, etc). A despeito de sua eficincia, estas ferramentas falham em expressar a simplicidade do controle das borrachas virtuais usadas na editorao de imagens 2D. Inspirada por esta observao, nesta seo feita a proposta de uma borracha virtual que atua diretamente sobre o volume. Para o usurio, no entanto, o controle da ferramenta feito da mesma forma com que feito no tratamento de imagens 2D. O ponto de aplicao da ferramenta indicado com o mouse sobre a grade da imagem (ponto PR ). Adicionalmente, o usurio pode indicar um raio de ao ( R ) para o cursor, que modifica o tamanho da borracha. A Figura 4.10 ilustra a forma de atuao da ferramenta.

Plano de projeo

Ponto PR e raio R Ponto de viso

Figura 4.10: Forma de atuao da borracha virtual. O usurio aponta, com o mouse, uma posio sobre a grade da imagem que mostra a projeo do volume. A borracha tem um formato circular, com o centro sobre a posio apontada (PR) e raio definido interativamente (R). A ferramenta ento exclui todas as pores do volume projetivamente correspondentes rea de aplicao da borracha. Nas sees a seguir, so descritos principais aspectos da implementao da borracha virtual. Na Seo 4.4.1, discutida a estrutura de dados que suporta a definio VOIs na GPU. A Seo 4.4.2 descreve o procedimento necessrio para a atualizao da estrutura de dados que contm o VOI. Finalmente, a Seo 4.4.2 descreve a implementao do shader que processa a influncia do apontamento do usurio sobre cada fragmento do VOI.
4.4.1 Representao do VOI na GPU

Em Weiskopf, Engel e Ertl (2003) os autores discutem uma forma (voxelized clipping object) de armazenar o VOI na GPU, que pode ser usada na visualizao direta baseada em texturas. Esta abordagem modela o VOI por meio de uma segunda textura

42

3D. Nesta textura, os texels provem a visibilidade dos texels correspondentes na textura 3D que representa o volume real. Basicamente, a idia discretizar (em texels) e modelar o VOI como uma mscara volumtrica binria. Os texels dentro do VOI recebem o valor 1 , e os demais recebem o valor 0 . A textura que contm o VOI e a textura real so combinadas pela multiplicao de seus texels. Deste modo, todos os texels que no so visveis so multiplicados por zero. Durante o rendering, os fragmentos dos polgonos de amostragem so mapeados simultaneamente para as posies correspondentes nas duas texturas 3D. Em cada fragmento, os valores de textura so multiplicados para gerar a cor final. Fragmentos que esto fora do VOI tm ento valor nulo, e podem ser descartados por testes subseqentes. Os autores tambm discutem uma modificao nesta tcnica, onde a textura 3D no mais interpretada como uma textura binria, mas sim como valores reais representando distncias com sinal. Cada texel armazena a sua distncia ao ponto mais prximo do volume de recorte. Como os formatos mais comuns de texturas disponveis atualmente (no OpenGL) so limitados a valores no intervalo [0,1] , a distncia mapeada linearmente para este intervalo. Desta forma, o valor 0.5 representa a superfcie do VOI. A vantagem desta abordagem que ela no sofre os efeitos da discretizao binria do VOI (aliasing). A Figura 4.11 mostra exemplos das duas abordagem de seleo de fragmentos por meio de uma segunda textura 3D.
Mscara de recorte com distncias

+
Plano de projeo Volume Mscara de recorte binria Ponto PR e raio R

Ponto de viso

+
Volume

Figura 4.11: Armazenamento do VOI por meio de uma textura 3D adicional. A mscara de recorte definida pelo usurio sobre a tela pode ser armazenada em um volume binrio (abaixo) ou em um volume onde cada texel armazena a distncia ao objeto de recorte (acima). direita, so vistas as combinaes entre o volume e o VOI armazenado segundo as abordagens citadas. Na implementao das ferramentas propostas nesta seo, o VOI armazenado na GPU como uma textura 3D, a mscara de recorte. Cada texel desta textura armazena a sua distncia ao ponto mais prximo do volume de recorte (conjunto de recortes definidos pelo usurio), e inicialmente visvel (inicializado com a maior distncia

43

possvel dentro do espao de textura). A mscara de recorte enviada pela aplicao GPU no estgio de inicializao do sistema. Ainda na inicializao, o sistema associa mscara de recorte a regra de interpolao tri-linear, por meio de comandos do OpenGL. Como discutido em Weiskopf, Engel e Ertl (2003), a interpolao tri-linear na consulta dos valores da mscara de recorte permite tanto a suavizao do aliasing na superfcie do VOI discretizado como a utilizao de texturas 3D com dimenses diferentes. Nas duas ferramentas de recorte a atualizao da informao contida na mscara de recorte feita na GPU. O OpenGL, no entanto, no possui procedimentos para gerar uma imagem 3D no rendering normal. Isto exige uma adaptao do resultado dos shaders, que descrita na prxima seo.
4.4.2 Atualizao do VOI na GPU

A atualizao dos valores da mscara de recorte feita pelos pixel shaders das ferramentas de recorte. No entanto, a mscara de recorte uma textura 3D, enquanto que o color buffer, onde gravado o resultado dos shaders, 2D. Isto exige uma verso plana temporria da textura 3D, que possa ser gravada pelos shaders no color buffer. Contando com esta estrutura adicional, a mscara de recorte pode ser armazenada como uma textura 3D, e o resultado dos shaders copiado para a mscara de recorte aps cada atualizao. Nesta verso plana, cada pixel deve corresponder a um texel da mscara de recorte. Em Harris et al. (2003) os autores propem que a textura 3D seja armazenada como uma textura 2D, onde as fatias da textura 3D esto dispostas lado a lado. A geometria de amostragem, neste caso, apenas garante que todos os texels sero amostrados (cobre toda a rea da textura 2D). Esta abordagem, no entanto, perde a interpolao tri-linear realizada no acesso aos valores da textura 3D. Como discutida por Weiskopf, Engel e Ertl (2003), esta caracterstica importante para garantir a suavidade do recorte. Assim, a mscara de recorte deve continuar sendo armazenada como uma textura 3D; a mudana precisa ser feita no resultado dos shaders, que deve ser organizado de forma que possa ser copiado de volta para a memria da textura 3D. Nesta dissertao, proposta uma forma de organizao dos texels da mscara de recorte em uma verso plana, que pode ser armazenada no color buffer. Basicamente, os texels so dispostos na textura 2D na mesma ordem em que so enviados para a textura 3D. Esta organizao tambm permite que o color buffer seja copiado diretamente para a memria de textura 3D sem que seja necessrio reorganizar a disposio dos texels. A Figura 4.12 ilustra um exemplo da disposio dos texels de uma mscara de recorte de 4 4 4 em uma textura 2D de 8 8 .

44

1 0 1 1

Figura 4.12: Organizao das fatias da textura 3D na textura 2D intermediria. (a) mscara de recorte 3D de 4 4 4 (cada quadrado das figuras corresponde a um texel) e (b) mscara de recorte plana equivalente de 8 8 . A partir da organizao ilustrada na Figura 4.12, os pixel shaders das ferramentas de recorte precisam apenas processar e armazenar cada fragmento no frame buffer. A geometria de amostragem, da mesma forma que em Harris et al. (2003), apenas garante que todos os texels sero amostrados. importante ressaltar que esta abordagem apenas uma adaptao para implementar a atualizao da textura 3D por meio do contedo do color buffer. Outras abordagens, como o uso de superbuffers2 (que permitem o rendering direto para texturas 3D), podem ser usadas sem detrimento da implementao das ferramentas.
4.4.3 Implementao na GPU

A borracha virtual implementada em um shader que recebe como entrada a mscara de recorte e as matrizes de visualizao da cena, assim como PR e R , definidos interativamente pelo usurio. O objetivo do shader construir uma nova verso plana da mscara de recorte, subtraindo o volume de recorte definido por PR e R do VOI armazenado. A implementao deste shader na linguagem Cg pode ser vista no Apndice A. Cada fragmento processado pelo shader corresponde a um texel da mscara de recorte. O valor do fragmento atualizado segundo a equao

Ft +i = min(d , Ft ) ,

(4.1)

onde Ft representa a distncia do fragmento no momento t (armazenada na mscara de recorte) e d a distncia do fragmento ao ponto de aplicao da borracha virtual, calculado como segue:

d = PR SC ,

(4.2)

Superbuffers At o trmino deste projeto, a extenso ao OpenGL que permite a utilizao de superbuffers estava prevista, mas no estava disponvel para utilizao.

45

onde SC corresponde s coordenadas de tela do fragmento. As coordenadas de tela so obtidas atravs da transformao da coordenada de textura3 do fragmento pelas matrizes de visualizao. Ao final do processo, cada texel da mscara de recorte registra a sua menor distncia mscara definida por PR . O usurio pode definir o valor de R e modificar interativamente a rea de atuao da mscara de recorte. Na implementao, o raio R indica a superfcie do volume de recorte (Figura 4.10). Como visto na Seo 4.4.1, a superfcie do volume de recorte armazenada na mscara de recorte com o valor 0.5 , devido a normalizao das distncias calculadas no shader. Assim, o shader normaliza a distncia calculada na Equao 4.2 em relao R , para que o valor de R (definido em coordenadas de tela) corresponda a superfcie do volume de recorte na mscara de recorte. O clculo de d na Equao 4.2 ento normalizado em relao a R da seguinte maneira:
d'= d( 0.5 ). R (4.3)

Desta forma, todos os texels da mscara de recorte que esto contidos no VOI tm valor maior ou igual a 0.5 .

4.5 Escavadeira Virtual


O modelo de recorte proposto na borracha virtual permite a excluso de partes do volume. Em imagens mdicas, no entanto, comum encontrar tecidos que possuem reentrncias na sua superfcie. Estas reentrncias podem ser uma caracterstica anatmica do tecido ou efeito do contato com tecidos vizinhos. No caso do fgado humano, por exemplo, pode se notar resultado do contato com o corao (Figura 2.1 e Figura 2.3). Ao observar o modelo de interao mostrado na Seo 4.4, nota-se que a borracha virtual no pode ser usada para a remoo de partes do volume que esto em concavidades na superfcie do VOI. A aplicao da borracha virtual atravessa todo o volume, enquanto que a inteno remover algo que est na superfcie. Nesta seo proposta uma ferramenta de recorte que permite a excluso de partes da imagem localizadas na superfcie do volume, a escavadeira virtual. O controle da ferramenta feito da mesma forma que na borracha virtual. O ponto de aplicao da ferramenta indicado com o mouse sobre a grade da imagem (ponto PR ). O usurio tambm pode indicar um raio de ao ( R ) para o cursor, que modifica a rea de atuao da escavadeira. Esta ferramenta, no entanto, age na superfcie do VOI. O raio R usado para calcular a rea de atuao em torno do ponto na superfcie do VOI correspondente ao ponto PR , definindo um volume de recorte com formato esfrico. O efeito sobre o volume semelhante colocao de uma bomba sobre a sua superfcie (WORMS 3D, 2003). A Figura 4.13 ilustra a forma de atuao da ferramenta.

coordenadas de textura Na implementao do sistema proposto nesta dissertao, os espaos de objeto e de textura ocupam o mesmo subespao de R definido entre (0, 0, 0) e (1, 1, 1). Desta forma, as coordenadas de objeto (usadas para o desenho dos polgonos de amostragem) so equivalentes s coordenadas de textura.

46

Plano de projeo

Ponto PR e raio R Ponto de viso

Figura 4.13: Forma de atuao da escavadeira virtual. O usurio aponta, com o mouse, uma posio sobre a grade da imagem (projeo do volume). A ferramenta ento marca todos os fragmentos dentro da esfera de recorte virtual como no visveis. O centro da esfera definido pela projeo do ponto indicado pelo usurio na superfcie do VOI, enquanto que o seu raio calculado em relao ao raio definido na tela ( R ). A seo seguinte descreve o algoritmo que processa a influncia do apontamento do usurio sobre cada fragmento do volume.
4.5.1 Implementao na GPU

A implementao da escavadeira virtual muito semelhante da borracha virtual. Ela exige, no entanto, um parmetro adicional: a informao sobre a posio correspondente ao ponto PR na superfcie do volume. Esta informao necessria para que seja possvel determinar a partir de que ponto o volume ser escavado. Para permitir isto, foi necessrio dividir a implementao da escavadeira virtual em dois pixel shaders. O primeiro gera uma textura 2D onde cada texel armazena a posio (em coordenadas de objeto) do primeiro fragmento visvel na superfcie do volume, em relao ao plano de projeo. O segundo, da mesma forma que na borracha virtual, gera a nova verso plana da mscara de recorte. A implementao destes shaders na linguagem Cg pode ser vista nos Apndices B e C, respectivamente. O resultado do primeiro pixel shader uma textura 2D (textura de superfcie). Cada texel desta textura corresponde a um pixel na janela de visualizao (frame buffer). O shader recebe como parmetros a geometria de amostragem da textura 3D (VOI definido pela WSG) e a mscara de recorte. A superfcie do VOI determinada pela interseco entre o VOI definido pela WSG e a mscara de recorte. O valor de cada texel da textura de superfcie gerado segundo a equao

47

TP =

(0,0,0), se Ft
TC

0.5

(4.4)

onde TP representa a cor do texel e TC a coordenada de textura do fragmento. Para cada texel do VOI (onde Ft 0.5 ) a posio no espao de textura ( TC ) gravada no frame buffer. A posio do texel no espao de textura armazenada nos canais RGB do pixel. Aps o processamento do shader, o frame buffer copiado para a memria de textura da textura de superfcie. Desta forma, a textura de superfcie corresponde imagem construda pelo shader de visualizao do volume (Figura 4.2), onde a cor de cada pixel a coordenada de textura do ltimo fragmento que foi projetado sobre ele. A partir desta textura, possvel recuperar a posio no espao de textura do texel correspondente a PR ( TPPR ). A implementao da escavadeira ainda tem outra diferena em relao da borracha virtual. Como pode ser visto na Equao 4.2, na borracha virtual o clculo da distncia da projeo do texel ao ponto PR feito no espao de tela. Na escavadeira virtual so calculadas as distncias entre TPPR e cada texel na mscara de recorte no segundo pixel shader. As posies destes texels, no entanto, esto no espao de textura. A transformao projetiva no garante uma relao entre as distncias calculadas nestes espaos, como ilustrado na Figura 4.14. A soluo proposta aqui calcular a distncia entre os texels no espao de tela. Para isto, o vetor formado entre TPPR e a coordenada TC do texel rotacionado at estar paralelo ao plano de projeo (estes vetores podem ser observados na Figura 4.15). Isto obtido segundo a equao vTPPR TC = (TPPR TC ) vcop , (4.5)

onde vcop um vetor normalizado e coplanar ao plano de projeo. No OpenGL este vetor pode ser obtido a partir da matriz de modelagem e visualizao (eixos de rotao x e y). O vetor vTPPR TC ento somado a TC , do qual se obtm uma coordenada no espao de textura TC ' . Este procedimento ilustrado na Figura 4.15. A partir de TC ' , o procedimento continua como descrito nas equaes 4.1, 4.2 e 4.3, considerando TC ' como a coordenada de textura do fragmento.

48

Volume

rea de atuao da escavadeira Ro2

Ro1 PR1 PR2 Plano de projeo

Ponto de viso

Figura 4.14: Raios de ao no espao de objeto (Roi) resultantes da aplicao da ferramenta em duas posies da tela (PRi), onde o mesmo raio R utilizado.

TC

Volume TC

TC

Volume

TPPR

TP PR

PR

Plano de projeo

PR d

Plano de projeo

Ponto de viso

Ponto de viso

Figura 4.15: Clculo da distncia entre os texels no espao de tela no segundo pixel shader. Basicamente, a distncia entre TPPR e TC (a) transformada para o espao de tela (b), a partir do qual se procede da mesma forma do que na borracha virtual.

(a)

(b)

4.6 Concluso
As ferramentas de recorte descritas neste captulo foram desenvolvidas de acordo com necessidades identificadas na interao com imagens mdicas 3D. A cada

49

ferramenta proposta, o usurio pode ter uma melhor definio do VOI dentro da imagem 3D. A ferramenta de recorte na amostragem capaz de definir apenas uma verso grosseira do VOI. No entanto, ela reduz o nmero de fragmentos de amostragem a cada recorte, aumentando o desempenho do fluxo de rendering. A borracha e a escavadeira virtuais permitem ao usurio duas maneiras de dar o acabamento ao VOI, permitindo a definio no apenas de VOIs bastante detalhados, como tambm cncavos.

5 APLICAO DAS FERRAMENTAS DE VISUALIZAO E RECORTE INTERATIVOS EM IMAGENS MDICAS

5.1 Introduo Aplicao Mdica


O sistema de visualizao interativa proposto no Captulo 4 oferece ao usurio ferramentas para inspeo de imagens volumtricas. Estas ferramentas podem ser aplicadas para a remoo de partes no-relevantes do volume, e proporcionar uma viso mais clara do objeto de interesse. Esta capacidade til na visualizao de imagens mdicas que contenham partes complexas da anatomia humana. Neste Captulo, so mostrados experimentos de aplicao do sistema proposto na visualizao da anatomia de um rgo com anatomia muito complexa, o fgado humano. A complexidade do sistema vascular do fgado torna qualquer interveno cirrgica neste rgo uma operao de grande risco. A Figura 5.1 mostra um esquema da topologia vascular do fgado.

Figura 5.1: Distribuio dos vasos sanguneos no interior do fgado humano, em vista posterior (NETTER, 1999). Como pode se visto na Figura 5.1, o sistema vascular do fgado possui muitos vasos sanguneos importantes e com vrias ramificaes. Esta topologia tambm varia significativamente em cada pessoa, o que dificulta ainda mais a criao de um modelo

51

mental da anatomia deste rgo. Tradicionalmente, o cirurgio em treinamento para este tipo de operao constri este modelo mental atravs do estudo de Atlas de anatomia humana (ilustraes 2D) e imagens de TC e RM. Recentemente, o uso de Atlas em meio digital tem se difundido no meio acadmico, permitindo a explorao de modelos 3D virtuais do corpo humano. No entanto, mesmo nestes aplicativos as opes do usurio para explorao interativa do modelo ainda so restritas. A explorao interativa de modelos anatmicos 3D normalmente restringe as opes do usurio ao controle de cmera e seleo de regies pr-segmentadas da anatomia. A Figura 5.2 mostra exemplos de pacotes comumente utilizados para esta aplicao. Estes pacotes oferecem modelos ilustrativos (2D e 3D) de partes da anatomia humana. O usurio pode inspecionar os modelos a partir de uma cmera virtual, que se desloca interativamente pelo espao no qual o objeto mostrado. Embora tenha liberdade na escolha da posio de visualizao, o usurio tem poucas opes de interao com os modelos visualizados. Normalmente, estas opes so restritas seleo de partes prsegmentadas do modelo. A restrio de qualquer ao do usurio na inspeo de um modelo anatmico tridimensional pode dificultar sua compreenso da estrutura do objeto de interesse, ou de sua relao com objetos vizinhos. Estas restries so menores (mas ainda significativas) nas estaes de trabalho de TCs e RMs. Nestas estaes, tambm possvel reconstruir modelos 3D a partir das imagens adquiridas. No entanto, a interao com os modelos reconstrudos ainda restrita. Alm disto, estas estaes tm um alto custo se comparadas a computadores pessoais.

(a)

(b)

(c)

(d)

Figura 5.2: Exemplos de pacotes de visualizao estruturas anatmicas comumente utilizados para o treinamento mdico. (a) e (b): Atlas Interativo de Anatomia Humana Netter (1999); (c) e (d): VOXEL-MAN 3D Navigator: Inner Organs (2000).

52

Nos experimentos conduzidos com imagens mdicas neste Captulo, o sistema de visualizao proposto no Captulo 4 usado para a inspeo da anatomia do fgado humano. Atravs das ferramentas de recorte, o usurio remove as estruturas que circundam o rgo e visualiza seu interior. So avaliados o desempenho computacional e o resultado visual do sistema proposto. Na Seo 5.2 so discutidos os materiais utilizados nos experimentos. Na seo seguinte, so descritos os procedimentos usados na conduo dos experimentos. Finalmente, so mostrados e discutidos os resultados dos experimentos nas sees 5.4 e 5.5, respectivamente.

5.2 Materiais
So usados dois volumes na conduo dos experimentos. O primeiro volume uma textura 3D construda proceduralmente, onde cada texel opaco e tem uma cor atribuda aleatoriamente. Esta textura tem dimenses de 8 8 8 e trs canais de cor por texel. O segundo volume um TC abdominal contrastado (angiograma). Neste tipo de aquisio injetado um lquido de contraste na corrente sangunea. Este lquido tem uma alta densidade radiolgica e se espalha pelo sistema circulatrio, realando os vasos sanguneos em imagens adquiridas por raios-X. As 128 imagens que formam o volume foram adquiridas em um aparelho Toshiba Asteion Helicoidal, na Santa Casa de Porto Alegre, e armazenadas como fatias axiais no formato DICOM (Digital Imaging and Communications in Medicine). Cada fatia tem resoluo de 512 512 pixels, onde cada pixel corresponde a um volume de 0.625 0.625 3 milmetros cbicos. No segundo volume usado nos experimentos, cada voxel armazena um valor de densidade radiolgica. Para que fosse possvel visualiz-lo por meio da tcnica de mapeamento de texturas, foi construda uma funo de transferncia que mapeia valores de densidade radiolgica para valores de cor (RGB) e opacidade. A funo de transferncia usada nestas imagens uma combinao da window4 definida pelo operador da estao do tomgrafo com duas cores, feita no shader de visualizao. A window utilizada neste volume tem nvel central em 400 HU (coeficiente de densidade radiolgica) e largura de 2000 HU. O resultado da aplicao da window define a opacidade de cada voxel. No shader de visualizao, a cor vermelha atribuda a fragmentos com opacidade inferior a 0.5 ; caso contrrio, o fragmento recebe a cor branca. Esta funo de transferncia resulta em uma imagem onde os tecidos de baixa densidade radiolgica (tecidos moles) tm cor vermelha e tecidos de alta densidade radiolgica (ossos e lquido de contraste) tm cor branca. Os experimentos para medio do desempenho do sistema foram conduzidos em duas CPUs. A primeira CPU processador Intel Pentium IV de 2 gigahertz e 512 megabytes de memria primria. A segunda um processador Intel Pentium III de 700 megahertz com 64 megabytes de memria primria. A GPU utilizada em todos experimentos uma ATI Radeon 9700 com 128 MB de memria, instalada na primeira CPU. O sistema foi desenvolvido para plataforma Windows 2000 Professional, utilizando o compilador Visual C++ .NET, em modo debug (sem otimizaes no cdigo feitas pelo
4

window Funo de transferncia linear em forma de rampa, que possui um nvel central (nvel de intensidade que corresponde ao nvel mdio da rampa) e uma largura (que corresponde ao intervalo de intensidades abrangido pela rampa).

53

compilador). As texturas 3D so armazenadas com preciso de 16 bits por canal de cor, enquanto que o frame buffer tem 12 bits de preciso por canal de cor.

5.3 Mtodos
A conduo dos experimentos dividida em duas partes. A primeira parte trata da visualizao do resultado da aplicao das ferramentas, e descrita na Seo 5.3.1. A segunda parte descreve como foram feitos os experimentos para a medio do desempenho computacional do sistema, e descrita na Seo 5.4.2. Em todos os experimentos, a janela de visualizao usada tem resoluo inicial de 512 512 . Esta janela determina o tamanho da textura de superfcie (descrita na Seo 4.5) e do frame buffer, e tem influncia sobre o desempenho do shader de visualizao (o tamanho do frame buffer um dos fatores que pode aumentar o nmero de fragmentos de uma cena). O usurio interage com o volume atravs do mouse, que fixa os parmetros de visualizao (posio da cmera) e das ferramentas de interao.
5.3.1 Aplicao das Ferramentas

A aplicao das ferramentas de recorte feita sobre os dois volumes. No primeiro volume so feitos recortes aleatrios sobre a imagem, utilizando duas resolues para a mscara de recorte. So usadas mscaras de recorte com dimenses de 16 16 16 e 64 64 64 . No segundo volume os recortes so aplicados para remover as estruturas anatmicas que circundam o fgado no volume. As aplicaes das trs ferramentas de recorte propostas so feitas em seqncia sobre a mesma imagem, ilustrando o procedimento de seleo do VOI na imagem volumtrica.
5.3.2 Desempenho das Ferramentas

As medies do tempo de processamento das ferramentas so feitas com um contador de alta freqncia, atravs do procedimento QueryPerformanceCounter(...). Como discutido em Abrash (2001), este procedimento permite medir intervalos de tempo com definio de at 5.04031e 6 segundos. O segundo volume de visualizao usado em todos os experimentos para medio do desempenho. O desempenho da ferramenta de recorte no estgio de atualizao medido nas duas partes do procedimento. A primeira parte o recorte do VOI por um plano (que exige a reestruturao da topologia do poliedro de amostragem). A segunda a construo e envio dos polgonos de amostragem GPU. Os dois procedimentos so realizados na segunda CPU e so medidos em segundos (intervalo de tempo necessrio para sua computao). O desempenho das ferramentas de recorte no estgio de desenho corresponde ao procedimento de atualizao da mscara de recorte. O desempenho deste procedimento medido em segundos, desde o momento em que o usurio faz o apontamento na tela at o momento em que o fluxo de visualizao normal restabelecido, ou seja, at o momento em que possa ser visualizada a alterao do usurio na imagem final. A influncia das dimenses da mscara de recorte no desempenho deste procedimento tambm so testadas nos experimentos, para mscaras de recorte com tamanhos de 16 16 16 e 64 64 64 . O experimento para a medio do desempenho destas

54

ferramentas dispara 100 recortes seguidos no centro da tela (ponto PR nas coordenadas ( 256,256 )), sem alterar o raio de ao do cursor, e apresenta o tempo mdio decorrido em cada recorte.

5.4 Resultados
5.4.1 Aplicao das Ferramentas

Na Figura 5.3 ilustrada a aplicao das ferramentas de recorte sobre o primeiro volume. Na Figura 5.3 (b) visto o resultado da aplicao de vrios planos de recorte ao volume. Neste momento, o VOI est definido pelo poliedro de amostragem. Nos itens (c) e (d) da Figura 5.3, so vistos os recortes realizados pela borracha e pela escavadeira virtuais. O VOI, a partir do uso destas ferramentas, a interseco entre o poliedro de amostragem e o VOI armazenado na mscara de recorte.

Figura 5.3: Aplicaes das ferramentas de recorte sobre uma textura construda proceduralmente. (a) volume inicial; (b) recortes sucessivos no estgio de amostragem (o nmero de planos de amostragem foi reduzido para ilustrar o recorte realizado pela WSG); (c) volumes resultantes da aplicao da borracha e (d) da escavadeira virtuais. Na Figura 5.4 ilustrada a aplicao da ferramenta de recorte na atualizao sobre o segundo volume. Na Figura 5.4 (a), ilustrado volume inicial (paraleleppedo), onde pode ser visualizado o espao amostrado que no contribui na formao da imagem final. Na Figura 5.4 (b), aps sucessivos recortes com a ferramenta, a rea amostrada se resume ao contorno do fgado, ainda grosseiro. Na Figura 5.4 (c) so visualizados os contornos dos polgonos de amostragem da textura 3D recortados contra o poliedro de amostragem pela WSG.

(a)

(b)

(c)

(d)

Figura 5.4: Recorte do VOI no estgio de atualizao. (a) imagem e volume inicial (representado por suas linhas de contorno); (b) resultado de sucessivos recortes, definindo um VOI, ainda que bastante grosseiro; (c) polgonos de amostragem da textura (representados pelo seu contorno), ilustrando o recorte realizado pela WSG (no Apndice D pode ser vista uma verso colorida desta figura, e no endereo www.inf.ufrgs.br/~cadietrich/dissertacao pode ser encontrados vdeos que mostram a aplicao desta ferramenta em tempo real).

(a)

(b)

(c)

55

Na Figura 5.5 e na Figura 5.6 so ilustradas as aplicaes das ferramentas de recorte no estgio de desenho. Na Figura 5.5 (a, b) so ilustrados a aplicao da borracha virtual e o volume resultante (c). Da mesma forma, na Figura 5.6 visualizada a aplicao da escavadeira virtual. O cursor da interface das ferramentas poder ser visualizado nas duas figuras (crculo de cor preta na Figura 5.5 e amarela na Figura 5.6).

Figura 5.5: Aplicao da borracha virtual (a, b) em uma visualizao 3D de um TC abdominal. O volume resultante mostrado em (c) corresponde ao parnquima do fgado; neste volume ainda podem ser observados artefatos (partes de costelas e tecidos contrastados) que no podem ser alcanados pela aplicao desta ferramenta, por estarem em reentrncias do parnquima (no Apndice D pode ser vista uma verso colorida desta figura, e no endereo www.inf.ufrgs.br/~cadietrich/dissertacao pode ser encontrados vdeos que mostram a aplicao desta ferramenta em tempo real).

(a)

(b)

(c)

Figura 5.6: Aplicao da escavadeira virtual (a, b) sobre o VOI mostrado na Figura 5.5 (c) e o volume resultante (c) (no Apndice D pode ser vista uma verso colorida desta figura, e no endereo www.inf.ufrgs.br/~cadietrich/dissertacao pode ser encontrados vdeos que mostram a aplicao desta ferramenta em tempo real).
5.4.2 Desempenho das Ferramentas

(a)

(b)

(c)

O tempo de recorte de um poliedro por um plano foi medido para dois poliedros com topologias diferentes. O tempo medido no recorte de um poliedro de 8 vrtices de 1.54545e 4 segundos. O recorte aplicado no teste eliminou um vrtice do poliedro original, adicionando outros trs (primeiro recorte mostrado na Figura 4.8). O segundo recorte foi aplicado ao poliedro da Figura 5.7, de 578 vrtices. O poliedro ilustrado foi construdo a partir de uma srie de recortes eqidistantes ao centro do poliedro original (paraleleppedo). O recorte seccionou o poliedro ilustrado na Figura 5.7 (a) em duas partes, eliminando 184 vrtices do poliedro. O tempo de recorte medido foi de 1.33819e 3 segundos.

56

(a) (b) Figura 5.7: Poliedro usado no teste de desempenho do recorte no estgio de atualizao. (a) Poliedro (visto por suas arestas na cor cinza) e o contorno dos polgonos de amostragem (na cor preta) recortados pela WSG; (b) Poliedro recortado e polgonos de amostragem. O desempenho da WSG no recorte e envio dos polgonos de amostragem visto no grfico da Figura 5.8. O grfico relaciona o espaamento entre os planos de amostragem dentro de um paraleleppedo e o intervalo de tempo decorrido no procedimento.
1,2 1 0,8 0,6 0,4 0,2 0 0,017321 0,000642 0,000327 0,000219 0,000165 0,000132 0,000110 0,000095 Paraleleppedo Original Paraleleppedo com uma face adicional Paraleleppedo com duas faces adicionais

tempo do procedimento

Espao entre os planos de amostragem

Figura 5.8: Desempenho da WSG na amostragem de diferentes poliedros. Observa-se que a aplicao dos recortes (que resultam em faces adicionais) pode melhorar o desempenho do algoritmo. O tempo de atualizao mdio da mscara de recorte de dimenses 64 64 64 na borracha virtual de 0.096 segundos. O tempo medido na mscara de recorte de 16 16 16 0.007 segundos. Da mesma forma, os tempos mdios de aplicao da escavadeira virtual so de 0.115 e 0.046 segundos.

57

5.5 Discusso
5.5.1 Aplicao das Ferramentas

A limitao na preciso do frame buffer e da memria de textura tm influncia no resultado do recorte processado na GPU e na qualidade da imagem final. Como discutido no Captulo 4, o procedimento destas ferramentas atualiza a mscara de recorte a cada nova insero do usurio. O resultado do rendering dos shaders armazenado no frame buffer, copiado para a CPU e novamente copiado para a memria de textura. A textura de superfcie, atualizada pelo shader da escavadeira virtual, copiada diretamente do frame buffer para a memria de textura. Estas cpias afetam os valores armazenados nas texturas e a consistncia do resultado das ferramentas, devido preciso limitada do frame buffer em relao memria de textura e ao resultado calculado nos shaders. O erro maior no caso da mscara de recorte: valores calculados que sejam prximos ao limiar de recorte, ao sofrerem qualquer variao no seu contedo, alteram o aspecto da superfcie do VOI. Esta variao pode ser vista na Figura 5.9. A Figura 5.9 (a) ilustra o primeiro recorte realizado pelo usurio com a borracha virtual. Na mesma posio da imagem, na Figura 5.9 (b), pode ser vista a variao da rea onde a ferramenta foi aplicada inicialmente, devido as atualizaes do buffer da mscara de recorte feitas ao longo da aplicao da borracha.

Figura 5.9: Erro na consistncia do resultado da aplicao da borracha virtual (a). A perda de preciso ilustrada em (b) (pico no crculo removido) resultado das cpias realizadas durante as constantes atualizaes da mscara de recorte, entre buffers de precises diferentes. O uso de diferentes resolues para a mscara de recorte tambm influencia na consistncia do recorte feito com as ferramentas de recorte na GPU. Enquanto que baixas resolues resultam em um tempo de atualizao menor, altas resolues resultam em um recorte mais consistente. A Figura 5.10 mostra em detalhes o resultado do uso de duas resolues diferentes para a mscara de recorte. A limitao no tamanho da memria de textura disponvel nas GPUs atuais ainda exige que sejam usadas baixas resolues para o armazenamento da mscara de recorte.

(a)

(b)

58

Figura 5.10: Aplicao da borracha virtual no primeiro volume, usando mscaras de recorte com tamanhos diferentes. A baixa resoluo (16 16 16 ) da textura usada em (a) produz resultados piores do que a alta resoluo ( 64 64 64 ) usada em (b).
5.5.2 Desempenho das Ferramentas

(a)

(b)

O desempenho do recorte por planos suportado pela WSG depende da complexidade do poliedro de amostragem. A complexidade do poliedro est relacionada ao seu nmero de vrtices e faces. No entanto, mesmo para poliedros muito complexos (como o ilustrado na Figura 5.7 (a)), o tempo de resposta do sistema permite mais de 700 atualizaes por segundo, suficiente para a interao em tempo real. O desempenho do procedimento de construo dos polgonos de amostragem depende do poliedro que define o VOI. Duas caractersticas do poliedro so importantes na medida do desempenho da WSG neste procedimento: sua complexidade e o seu tamanho. A complexidade do poliedro influencia na complexidade do grafo da WSG. Com um grafo mais complexo, o custo do caminhamento para a construo de cada polgono de amostragem maior. J o tamanho do poliedro influencia no nmero de polgonos de amostragem que sero construdos. Quanto mais polgonos forem necessrios, mais vezes o grafo da WSG ser percorrido, aumentando o custo do procedimento. O resultado dos experimentos para a medio do desempenho da WSG ilustrado no grfico da Figura 5.8. O grfico relaciona o espaamento entre os planos de amostragem e o intervalo de tempo decorrido no procedimento. Observando este grfico, nota-se que o custo do procedimento depende muito mais do nmero de planos de amostragem do que da complexidade do poliedro: enquanto que o custo sempre aumenta para um nmero maior de planos, o paraleleppedo com duas faces adicionais tem desempenho superior ao paraleleppedo original. Isto se deve reduo de tamanho do poliedro de amostragem no segundo recorte: dentro de um poliedro menor, com o mesmo espaamento entre os planos, menos polgonos de amostragem so construdos. A atualizao da mscara de recorte depende de vrios aspectos da CPU e da GPU. O clculo do novo buffer da textura, isoladamente, muito rpido, pois corresponde apenas ao rendering de 262.144 fragmentos (para a mscara de recorte de 64 64 64 ). Neste caso, a cpia dos buffers entre a GPU e a CPU consome a maior parte do tempo. Estas cpias dependem da velocidade do barramento onde a GPU instalada. O sistema de visualizao proposto neste estudo adiciona um custo significativo ao fluxo de visualizao direta baseada em texturas. As ferramentas de recorte processadas no estgio de desenho exigem um acesso mscara de recorte para cada fragmento processado pelo shader de visualizao. Basicamente, cada fragmento que vai compor a imagem final deve consultar se visvel ou no. O nmero de fragmentos, por sua vez,

59

depende do numero de polgonos de amostragem, da rea que cada polgono de amostragem ocupa no frame buffer e do tamanho do frame buffer (em pixels). Assim, difcil aproximar o nmero de fragmentos que compem uma imagem visualizada pela tcnica de mapeamento de texturas. Aqui, a anlise do desempenho do shader de visualizao se limita a considerar que, para cada fragmento do volume real processado, um acesso adicional a uma textura 3D deve ser feito, e o desempenho no acesso depende apenas do desempenho da GPU.

6 DISCUSSO E CONCLUSES

Nesta dissertao proposto um sistema de visualizao volumtrica interativa baseada no mapeamento de texturas. So discutidas a implementao e a integrao ao fluxo de visualizao volumtrica de trs ferramentas de recorte volumtrico interativo. A primeira ferramenta de recorte atua no estgio de atualizao da geometria de amostragem da textura 3D. A sua proposta inclui um algoritmo eficiente de recorte de planos contra poliedros convexos (WSG) e a sugesto de uma interface de controle para a ferramenta. A WSG serve de suporte ao recorte processado na CPU e tambm como estrutura para construo dos planos de amostragem da textura 3D. Como estrutura de suporte ao recorte por planos binrios difcil enumerar outra estrutura de dados com funcionamento semelhante. Neste ponto poderiam ser consideradas estruturas de particionamento do espao, como BSP-trees e kD-trees. No entanto, o custo computacional do clculo do recorte de planos contra estas estruturas maior. Estas estruturas armazenam todos os planos de recorte, enquanto que a WSG guarda apenas o VOI resultante dos recortes. Desta forma, enquanto a WSG gera apenas polgonos dentro do seu domnio, estas estruturas testam, para cada plano, o recorte contra todo o conjunto de planos armazenados. As duas ferramentas de recorte processadas no estgio de desenho exploram o poder computacional disponvel nas GPUs atuais. Nestas ferramentas, foram propostas duas interfaces que permitem interagir com o volume a partir do plano de projeo (imagem final), baseadas na tcnica de armazenamento de informao de visibilidade sugerida por Weiskopf, Engel e Ertl (WEISKOPF; ENGEL; ERTL, 2003). Estas interfaces permitem inspecionar o volume com a mesma simplicidade encontrada em aplicativos comuns de editorao de imagens 2D. O usurio, a partir de dispositivos de interao comuns (mouse), capaz de interagir com o volume de forma eficiente. O uso da GPU para a implementao do sistema restringe o seu desempenho apenas ao poder computacional das GPUs atuais. Nos ltimos anos, possvel perceber que as GPUs avanam em um ritmo muito rpido (dobram a sua capacidade de processamento a cada ano), o que encoraja o uso destes dispositivos. No entanto, a gerao atual de GPUs ainda tem uma srie de restries na preciso das operaes nos shaders e no armazenamento de dados na memria de textura. O impacto destas limitaes sobre o sistema de visualizao proposto so discutidas na Seo 6.1. Ao longo deste estudo foi possvel observar que o conjunto de tcnicas e estruturas propostas para a construo do sistema pode ser facilmente adaptado para a criao de novas ferramentas de interao com volumes. Duas propostas implementadas so discutidas na Seo 6.2. Analisando cada uma em separado, as ferramentas propostas nesta dissertao so muito simples. A WSG capaz de armazenar um poliedro convexo, suportando o recorte de planos contra este poliedro. O resultado do recorte pode ser usado tanto para

61

a construo de um polgono quanto para o recorte do prprio poliedro. As borracha e escavadeira virtuais so interfaces de atualizao da mscara de recorte, que exploram o poder computacional da GPU para realizar esta tarefa eficientemente. Sobre este ponto de vista, a contribuio deste projeto no est em uma ferramenta em separado, mas sim no conjunto formado por elas. As estruturas propostas nesta dissertao exploram todos os estgios do rendering volumtrico baseado em texturas, desde a amostragem at o acabamento. Juntas, elas formam um sistema de rendering volumtrico, cuja implementao j provou ser eficiente o bastante at mesmo para permitir a proposta de novas ferramentas.

6.1 Limitaes
As principais desvantagens da visualizao direta baseada em texturas so as limitaes no tamanho da memria de textura e na preciso do armazenamento dos dados na GPU (ZHOU, 2003). A memria de textura limitada requer que grandes volumes de dados sejam divididos em blocos menores, e ocorra uma troca constante entre a memria da CPU e da GPU. A falta de preciso no armazenamento de dados na GPU (no frame buffer e memria de textura) restringe a qualidade da imagem final. Na gerao atual de GPUs, a memria de textura usa 64 bits para o armazenamento dos quatro canais de cor por texel, e o frame buffer usa de 32 a 48 bits por pixel. Esta preciso est longe da que pode ser obtida com algoritmos processados na CPU (128 bits de preciso por pixel). A ltima gerao de GPUs suporta texturas com 128 bits de preciso, mas somente com interpolao por vizinho mais prximo (nearest neighbor) e sem operaes de combinao (como a da Equao 3.2). Entretanto, considerando o ritmo no qual o hardware grfico tem avanado nos ltimos anos, estas limitaes podem desaparecer em pouco tempo. A ltima gerao de GPUs (equivalente quinta gerao), prevista para julho de 2004, possui preciso de 128 bits em todo pipeline, alm de suportar mltiplas GPUs por CPU. Estas especificaes, alm do desempenho computacional superior ao da gerao anterior, praticamente eliminam as limitaes do sistema proposto. Alguns dos problemas observados nos experimentos descritos no Captulo 0 no exigem uma nova gerao de GPUs para a sua soluo. Um deles a perda de preciso no armazenamento do VOI na GPU (ilustrado na Figura 5.9). A sugesto para a soluo deste problema exige uma mudana na normalizao dos valores de distncia gravados na mscara de recorte: j que o problema est nos valores prximos ao limiar de recorte, estes valores devem ser alterados para que no fiquem mais to prximos a ele. Isto leva idia de adotar um mapeamento no-linear das distncias calculadas nos shaders para a mscara de recorte, ilustrada na Figura 6.1.

62

Distncias armazenadas na textura

Limiar de recorte

0.5

- 3

Distncias no espao de tela

Figura 6.1: Mapeamento no-linear das distncias calculadas nos shaders para a mscara de recorte.

6.2 Extenses
O sistema de visualizao descrito nesta dissertao tambm serve como base para a implementao de outras ferramentas de interao. Este fato foi observado ao longo do estudo, na aplicao do sistema visualizao das imagens mdicas. Estas ferramentas no fazem parte dos objetivos deste estudo, mas servem para ilustrar a eficincia do sistema proposto. A primeira ferramenta implementada sobre o sistema permite a medio de distncias entre pontos da imagem 3D. A medio feita por meio de segmentos de reta, cujas extremidades so indicadas pelo usurio com o mouse. Estas extremidades correspondem a dois pontos PR (Seo 4.4). Por meio da textura de superfcie (Seo 4.5.1), possvel recuperar a posio no espao de textura (correspondente ao espao de objeto) dos pontos. Contando com a posio no espao das duas extremidades do segmento, o clculo da distncia trivial. A Figura 6.2 mostra exemplos de medies feitas com segmentos de linha sobre o volume visualizado. Apesar de ser uma ferramenta simples, ela permite ao usurio estabelecer relaes entre as partes do volume e correlacionar o modelo virtual ao modelo real.

Figura 6.2: Medies feitas com segmentos de linha sobre o volume visualizado. O volume foi adquirido de um fgado de porco ex situ, por TC contrastado.

63

A segunda ferramenta construda sobre o sistema permite ao usurio visualizar, na imagem 3D, a rea de influncia aproximada de cada vaso sanguneo do fgado. Com esta informao, o usurio (mdico) pode estimar a diviso entre os segmentos do fgado, e planejar futuras operaes no rgo. Esta ferramenta assume que o parnquima do fgado pr-segmentado, como ilustrado na Figura 5.6 (c). O clculo da regio de influncia de cada vaso sanguneo sobre o parnquima discutido em Aylward e Bullit (AYLWARD; BULLITT, 2002). Os autores classificam cada poro do parnquima em relao ao vaso sanguneo mais prximo, considerando a distncia Euclidiana. Em sua proposta, no entanto, os autores contam com a segmentao dos vasos sanguneos e do parnquima. Esta caracterstica no est presente no sistema proposto neste estudo. Para lidar com esta limitao, foi construda uma interface que permite ao usurio informar para o sistema onde esto localizados os vasos sanguneos. Por meio desta interface, o usurio pode indicar (com o mouse) pontos sobre a grade da imagem que correspondam superfcie dos vasos sanguneos. Estes pontos correspondem a pontos PR . Para cada ponto informado, o sistema recupera TC PR a partir da textura de superfcie. A ferramenta usa ento a capacidade de varredura da mscara de recorte (presente nos pixel shaders da borracha e da escavadeira virtuais) para calcular a distncia de cada texel TC PR . Caso a distncia calculada seja menor do que a armazenada no texel, o pixel shader armazena a informao de classificao nos canais de cor disponveis do texel (at agora, a mscara de recorte utiliza apenas um canal de cor para armazenar a distncia d ). Nos testes da ferramenta, a informao de classificao usada uma cor indicada pelo usurio, associada ao ponto PR . A Figura 6.3 mostra o resultado da aplicao da ferramenta de classificao a uma imagem TC de um fgado ex-situ de porco, onde o usurio aponta vrios pontos de influncia sobre cada vaso. importante observar dois pontos na proposta desta ferramenta. Primeiro, ela assume que o usurio possa modificar a funo de transferncia da imagem 3D. Apesar desta capacidade estar implementada no sistema, ela no faz parte dos objetivos deste estudo. Segundo, o clculo da distncia realizado nesta ferramenta feito no espao de textura. Como discutido na Seo 4.5.1, este tipo de abordagem pode resultar em comportamentos imprevisveis do sistema.

Figura 6.3: Resultado da aplicao da ferramenta de classificao sobre uma imagem TC de um fgado ex-situ de porco. O usurio indica vrios pontos sobre os vasos sanguneos (a) para estabelecer suas regies de influncia no parnquima (b) (no Apndice D pode ser vista uma verso colorida desta figura).

(a)

(b)

REFERNCIAS
ABRASH, M. Timer Function Performance. nVIDIA Programming Resources. July 2001. Disponvel em: < www.nvidia.com >. Acesso em: jan. 2004. AYLWARD, S.; BULLITT, E. Initialization, noise, singularities, and scale in height ridge traversal for tubular object centerline extraction. IEEE Transactions on Medical Imaging, New York, v. 21, p. 61-75, Feb. 2002. BENTLEY, J. T.; OTTMAN, Th. Algorithm for reporting and counting geometric intersections. IEEE Transactions on Computers, New York, v. 28, p. 643-647, 1979. BLINN, J. Light reflection functions for simulations of clouds and dusty surfaces. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 21., 1994. Proceedings New York: ACM, 1982. p. 2129. CABRAL, B.; CAM, N.; FORAN, J. Accelerated volume rendering and tomographic reconstruction using texture mapping hardware. In: IEEE/ACM VOLUME VISUALIZATION SYMPOSIUM, 1994. Proceedings [S. l.; s. n.], 1994. p. 91-98. CHANDRASEKHAR, S. Radiative Transfer Theory. New York: Dover, 1960. CULLIP, T. J.; NEUMANN, U. Accelerating volume reconstruction with 3D texture hardware. Chapel Hill N.C.: University of North Carolina, 1993. (Technical Report TR93-027). DREBIN, R. A.; CARPENTER, L.; HANRAHAN, P. Volume rendering. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 1994. Proceedings New York: ACM, 1988. p. 65-74. ENGEL, K.; KRAUS, M.; ERTL, T. High-quality pre-integrated volume rendering using hardware-accelerated pixel shading. In: ACM SIGGRAPH/EUROGRAPHICS WORKSHOP ON GRAPHICS HARDWARE, 2001. Proceedings Los Angeles: ACM, 2001. p. 9-16. ESPOSITO, L. W. Extensions to the classical calculation of the effect of mutual shadowing in diffuse reflection. Icarus, [S. l.], v. 39, p. 69-80, 1979.

65

GELDER, A. V.; KIM, K. Direct volume rendering with shading via three-dimensional textures. In: IEEE/ACM VOLUME VISUALIZATION SYMPOSIUM, 1996. Proceedings [S. l.; s. n.], 1996. p. 23-30. GOVINDARAJU, N.; REDON, S.; COLIN, M.; MANOCHA, D. CULLIDE: interactive collision between complex models in large environments using graphics hardware. In: ACM SIGGRAPH/EUROGRAPHICS WORKSHOP ON GRAPHICS HARDWARE, 2003. Proceedings [S. l.]: ACM, 2002. HARRIS M. J.; BAXTER III, W. V.; SCHEUERMANN T.; LASTRA A. Simulation of Cloud Dynamics on Graphics Hardware. In: ACM SIGGRAPH/EUROGRAPHICS WORKSHOP ON GRAPHICS HARDWARE, 2003. Proceedings [S. l.]: ACM, 2003. HERTEL, S.; MELHORN, K.; MNTYL, M. J.; NIEVERGELT, J. Space sweep solves intersections of polyhedra elegantly. Helsinki: Laboratory of Information Processing, Helsinki University of Technology, 1983. (Report HTKK-TKO-B55). IKITS, M.; KNISS, J.; LEFOHN, A.; HANSEN, C. Volume rendering techniques. In: FERNANDO, R. GPU Gems: programming techniques, tips, and tricks for real-time graphics. Boston: Addison-Wesley, 2004. p. 667-692. KAJIYA, J. T.; VON HERZEN, B. Ray-tracing volume densities. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 1984. Proceedings New York: ACM, 1994. p. 165-174. KRGER, J.; WESTERMANN, R. Linear Algebra Operators for GPU Implementation of Numerical Algorithms. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 2003. Proceedings New York: ACM, 2003. LACROUTE, P.; LEVOY, M. Fast volume rendering using a shear-warp factorization of the viewing transformation. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 21., 1994. Proceedings New York: ACM, 1994. p. 451-458. LEVOY, M. Display of surfaces from volume data. IEEE Computer Graphics and Applications, [S. l.], v. 8, p. 29-37, May 1988. LEVOY, M. Efficient ray-tracing of volume data. ACM Transactions on Graphics, [S. l.], v. 9, p. 245-261, July 1990. MAX, N. Optical models for direct volume rendering. IEEE Transactions on Visualization and Computer Graphics, [S. l.], v. 1, June 1995. NETTER, F. H. Atlas Interativo de Anatomia Humana. [S. l.], 1999. 1 CD-ROM. NIEVERGELT, J.; PREPARATA, F. P. Plane-sweep algorithms for intersecting geometric figures. Communications of the ACM, [S. l.], v. 2, p. 739-747, Oct. 1982.

66

PFISTER, H. Real-time volume visualization with VolumePro. In: JAPANESE VISUALIZATION CONFERENCE, 5., 1999. Proceedings Tokyo: [s. n.], 1999. REZK-SALAMA, C.; ENGEL, K.; BAUER, M.; GREINER, G.; ERTL, T. Interactive volume on standard PC graphics hardware using multi-stage rasterization. In: ACM SIGGRAPH/EUROGRAPHICS WORKSHOP ON GRAPHICS HARDWARE, 2000. Proceedings Interlaken: ACM, 2000. p. 109-118. SABELLA, P. A rendering algorithm for visualizing 3D scalar fields. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 1988. Proceedings New York: ACM, 1988. p. 51-58. SHREINER, D. OpenGL reference manual: the official reference document to OpenGL, version 1.2. [S. l.]: Addison-Wesley, 1999. TOMBROPOULOS, R. Z. Techniques and applications for three-dimensional visualization in medicine. In: BIOENGINEERING CONFERENCE, 1999. Proceedings Big Sky: [s. n.], 1999. UPSON, C.; KEELER, M. V-buffer: visible volume rendering. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 1988. Proceedings New York: ACM, 1988. p. 59-64. VOXEL-MAN 3D Navigator: Inner Organs. Germany: Springer-Verlag, 2000. 1 CDROM. WEISKOPF, D.; ENGEL, K.; ERTL, T. Interactive clipping techniques for texturebased volume visualization and volume shading. IEEE Transactions on Visualization and Computer Graphics, [S. l.], July 2003. WESTOVER, L. Footprint evaluation for volume rendering. In: ANNUAL CONFERENCE ON COMPUTER GRAPHICS AND INTERACTIVE TECHNIQUES, SIGGRAPH, 1990. Proceedings Dallas: [s. n.], 1990. p.367-376. WITTENBRINK, C. M.; MALZBENDER, T.; GROSS, M. E. Opacity-weighted color interpolation for volume sampling. In: IEEE SYMPOSIOUM ON VOLUME VISUALIZATION, 1988. Proceedings [S. l.: s. n.], 1988. TEAM17 SOFTWARE LIMITED. Worms 3D. [S. l.], 2003. 1 CD-ROM. ZHOU, J. State of the art for volume rendering. Magdeburg: Computer Vision Group, Institute for Simulation and Graphics, Otto-von-Guericke University of Magdeburg, 2003. Technical Reports.

APNDICE A PIXEL SHADER DA FERRAMENTA DE RECORTE BORRACHA VIRTUAL

struct vertex2fragment { float2 TC_2D : TEXCOORD0; }; void main(vertex2fragment v2f , uniform float4x4 ModelViewProj : C0 , uniform float3 PR : C4 , uniform sampler3D Mascara_3D : TEXUNIT0 , uniform sampler2D Mascara_2D : TEXUNIT1 , out float4 Fti : COLOR0 ) { float4 TC, Ft, SC; TC = tex2D(Mascara_2D, v2f.TC_2D); Ft = tex3D(Mascara_3D, TC.xyz); SC = mul(float4(TC.xyz - 0.5f, 1.0f), ModelViewProj); SC.xyz /= SC.w; Fti = float4((0.0f).xxx, length(SC.xy - PR.xy) * PR.z); if (Fti.a > Ft.a) { Fti = Ft; }

APNDICE B PIXEL SHADER 1 DA FERRAMENTA DE RECORTE ESCAVADEIRA VIRTUAL

#define SUPERFICIE_DO_VOI 0.5f struct vertex2fragment { float3 TC_3D : TEXCOORD0; }; void main(vertex2fragment v2f , uniform sampler3D Mascara_3D : TEXUNIT0 , out float4 TP : COLOR0) { TP = float4(v2f.TC_3D, tex3D(Mascara_3D, v2f.TC_3D).a); if (TP.a < SUPERFICIE_DO_VOI) { discard; }

APNDICE C PIXEL SHADER 2 DA FERRAMENTA DE RECORTE ESCAVADEIRA VIRTUAL

struct vertex2fragment { float2 TC_2D : TEXCOORD0; }; void main(vertex2fragment v2f , uniform float4x4 ModelViewProj : C0 , uniform float4x4 ModelViewProj : C4 , uniform float3 PR : C8 , uniform sampler3D Mascara_3D : TEXUNIT0 , uniform sampler2D Mascara_2D : TEXUNIT1 , uniform sampler2D Superficie : TEXUNIT2 , out float4 Fti : COLOR0 ) { float3 TC, TPpr, TCi; float4 Ft, SC; TC = tex2D(Mascara_2D, v2f.TC_2D).rgb; Ft = tex3D(Mascara_3D, TC); TPpr = tex2D(Superficie, (PR.xy + 1.0f) / 2.0f).xyz; TCi = TPpr + (ModelView._m00_m10_m20 * distance(TPpr, TC)); SC = mul(float4(TCi - 0.5f, 1.0f), ModelViewProj); SC.xyz /= SC.w; Fti = float4((0.0f).xxx, distance(PR.xy, SC.xy) * PR.z); if (Fti.a > Ft.a) { Fti = Ft; }

APNDICE D VERSES COLORIDAS DAS FIGURAS DO TEXTO

(a) (b) (c) Figura 5-4: Recorte do VOI no estgio de atualizao. (a) imagem e volume inicial (representado por suas linhas de contorno); (b) resultado de sucessivos recortes, definindo um VOI, ainda que bastante grosseiro; (c) polgonos de amostragem da textura (representados pelo seu contorno), ilustrando o recorte realizado pela WSG.

(a) (b) (c) Figura 5-5: Aplicao da borracha virtual (a, b) em uma visualizao 3D de um TC abdominal. O volume resultante mostrado em (c) corresponde ao parnquima do fgado; neste volume ainda podem ser observados artefatos (partes de costelas e tecidos contrastados) que no podem ser alcanados pela aplicao desta ferramenta, por estarem em reentrncias do parnquima.

(a) (b) (c) Figura 5-6: Aplicao da escavadeira virtual (a, b) sobre o VOI mostrado na Figura 5.5 (c) e o volume resultante (c).

(a) (b) Figura 6-3: Resultado da aplicao da ferramenta de classificao sobre uma imagem TC de um fgado ex-situ de porco. O usurio indica vrios pontos sobre os vasos sanguneos (a) para estabelecer suas regies de influncia no parnquima (b).

Você também pode gostar