Você está na página 1de 54

Um Estudo de Algoritmos para Visualizao Simultnea

de Dados Volumtricos e Superfcies Poligonais

Marcelo Medeiros Carneiro


PUC-Rio/Departamento de Informtica
mmc@inf.puc-rio.br
Luiz Velho
IMPA - Instituto de Matemtica Pura e Aplicada
lvelho@visgraf.impa.br
PUC-RioInf.MCC14/00 Maro/2000
ABSTRACT : Some scientific visualization applications require rendering not only of
volume data but also of polygonal surfaces in the same scene. This work presents some
basic direct volume rendering algorithms in addition to some changes in them so as to
allow rendering of both representations at the same time. Hybrid Ray Casting and ShearWarp algorithms are discussed and the main problems related to the integration of
volume and surfaces are presented. This study allow us evaluate computational cost and
image quality in these hybrid algorithms.
K EYWORDS : Volume Rendering, Ray Casting, Shear-Warp, Splatting, Hybrid Volume
Rendering.
RESUMO : Algumas aplicaes em visualizao cientfica requerem no apenas a
renderizao de dados volumtricos, mas tambm de superfcies poligonais em uma
mesma cena. Este trabalho apresenta os principais algoritmos de visualizao
volumtrica direta e algumas variaes de forma a permitir a renderizao simultnea de
dados volumtricos e superfcies poligonais. So apresentadas verses de algoritmos
hbridos de Ray Casting e Shear-Warp e as principais dificuldades envolvidas nessa
integrao. Os resultados obtidos permitem uma avaliao do custo computacional e da
qualidade final das imagens obtidas.
PALAVRAS -CHAVE: Visualizao Volumtrica, Ray Casting, Shear-Warp, Splatting,
Renderizao Volumtrica Hbrida.

Sumrio
1

INTRODUO ......................................................................................................... 4

REPRESENTAO DO VOLUME....................................................................... 8

2.1

Modelo Conceitual ........................................................................................................................................ 9

2.2

Distribuio Espacial dos Dados .............................................................................................................11

REPRESENTAES E CONVERSES ..........................................................12

3.1

Representao de Superfcies e Slidos.................................................................................................12

3.2

Mtodos de Converso...............................................................................................................................15

3.2.1

Poligonizao .......................................................................................................................................15

3.2.2

Voxelizao ..........................................................................................................................................18

VISUALIZAO VOLUMTRICA......................................................................20

4.1

Pipeline de Visualizao.............................................................................................................................21

4.1.1

Classificao.........................................................................................................................................23

4.1.2

Iluminao ............................................................................................................................................26

4.1.3

Projeo.................................................................................................................................................27

4.2

Algoritmos de Visualizao......................................................................................................................27

4.2.1

Ray Casting ..........................................................................................................................................28

4.2.2

Splatting ................................................................................................................................................33

4.2.3

Shear-Warp ...........................................................................................................................................35

VISUALIZAO VOLUMTRICA HBRIDA....................................................37

5.1

Mtodos de Converso...............................................................................................................................37

5.2

Mtodos Hbridos ........................................................................................................................................39

5.2.1

Ray Casting ..........................................................................................................................................40

5.2.2

Splatting ................................................................................................................................................43

5.2.3

Shear-Warp ...........................................................................................................................................46

CONCLUSES......................................................................................................50

REFERNCIAS .....................................................................................................52

Lista de Figuras

Figura 1.1: Desenvolvimento de uma prtese ssea [Robb, 99]. ........................................5


Figura 1.2: Planejamento de um radioterapia [Robb, 99]....................................................6
Figura 2.1: Modelo conceitual de um dado volumtrico...................................................10
Figura 3.1: Descrio paramtrica e implcita...................................................................13
Figura 3.2: Classificao das clulas .................................................................................16
Figura 3.3: Casos bsicos do algoritmo Marching Cubes .................................................17
Figura 3.4: Casos bsicos do mtodo simplicial................................................................18
Figura 4.1: Propagao da luz no ambiente volumtrico [Paiva e outros, 99]. .................21
Figura 4.2: Pipeline de visualizao volumtrica. .............................................................22
Figura 4.3: Funo de transferncia de cor........................................................................24
Figura 4.4: Funo de transferncia de opacidade.............................................................24
Figura 4.5: Mudana nas funes de transferncia [Paiva e outros, 99] ...........................25
Figura 4.6: Algoritmo Ray Casting ...................................................................................29
Figura 4.7: Clculo da iluminao em um voxel ...............................................................29
Figura 4.8: Composio de cor e opacidade......................................................................31
Figura 4.9: Refinamento progressivo [Paiva e outros, 99] ................................................33
Figura 4.10: Algoritmo Shear-Warp..................................................................................35
Figura 5.1: Converso em uma representao comum volumtrica [Levoy, 90b]............39
Figura 5.2: Ray Casting Hbrido [Levoy, 90a] ..................................................................41
Figura 5.3: Clculo da visibilidade [Levoy, 90a]..............................................................43
Figura 5.4: Estrutura de dados Octree ...............................................................................44
Figura 5.5: Estrutura de dados Face Octree ......................................................................45
Figura 5.6: Shear-Warp Hbrido [Schmidt e outros, 99] ...................................................47

1 INTRODUO

Visualizao Volumtrica um termo geral utilizado para descrever tcnicas que


permitem a projeo de um conjunto de dados no espao tridimensional (conhecido
tambm por dados volumtricos) em uma superfcie de visualizao bidimensional
[Elvis, 92]. Essas tcnicas auxiliam o entendimento de propriedades e estruturas contidas
dentro do volume, pois permitem a visualizao do dado como um todo.
Em sua grande maioria, os algoritmos de visualizao volumtrica esto muito
mais preocupados em resolver o problema da visualizao, no dando maior importncia
ao problema da modelagem [Tosti e outros, 93]. Isso acontece porque o dado volumtrico
tratado apenas como um conjunto de grandezas escalares ou vetoriais no espao.
Quando o problema da modelagem do dado volumtrico levado em
considerao, os algoritmos podem tirar proveito da estrutura do dado volumtrico, pois,
compreendendo melhor seu contedo, podem ganhar uma certa inteligncia. Com isso,
mecanismos mais eficazes de navegao e visualizao podem ser implementados. Para
exemplificar, pode-se citar o uso de vnculos para auxiliar a navegao do usurio
durante um exame virtual (por exemplo, endoscopia assistida por computador). Durante o
exame, a navegao fica restrita apenas aos locais permitidos (por exemplo, no interior
de uma artria), impedindo que o usurio alcance uma regio fora da rea de interesse.
Em muitas aplicaes, necessrio no apenas visualizar os dados que formam o
volume, mas tambm algum outro tipo de representao, por exemplo, superfcies ou
outras primitivas geomtricas. Por isso, torna-se bastante til o desenvolvimento de
algoritmos hbridos que permitem a visualizao simultnea de dados volumtricos e
superfcies poligonais, por exemplo.
Muitas aplicaes na rea mdica requerem a utilizao de algoritmos hbridos de
visualizao volumtrica [Robb, 99]. Entre elas, pode-se citar desenvolvimento de
implantes e prteses, conforme mostrado na Figura 1.1. A imagem foi obtida atravs de
um exame de tomografia computadorizada (CT). Pela figura, pode-se notar que as
dimenses da prtese foram calculadas atravs do espelhamento do rosto do paciente.
Esse tipo de aplicao requer a utilizao de modelos geomtricos para serem
devidamente encaixados no volume.
4

Figura 1.1: Desenvolvimento de uma prtese ssea [Robb, 99].

Durante o planejamento de uma radioterapia (RTP, Radiation Therapy Planning)


tambm pode ser importante a utilizao de modelos geomtricos sobre o volume.
Alguns tipos de tumores no podem ser retirados atravs de interveno cirrgica, porm
uma dose suficiente de radiao pode ser capaz de destru-los. Entretanto, essa radiao
pode tambm atingir outras partes do corpo, destruindo clulas sadias. O objetivo de um
tratamento de radioterapia , portanto, eliminar somente os tumores, preservando as
demais estruturas do organismo (por exemplo, olhos e nervo tico). Isso requer a
utilizao de ferramentas adequadas que permitam ao mdico simular o tratamento e
corrigir a posio e intensidade da radiao, de forma a no prejudicar o paciente. A
Figura 1.2 ilustra esse procedimento. A imagem foi obtida atravs de um exame de
ressonncia magntica (MRI). As reas coloridas na parte superior da figura indicam o
nvel de radiao (vermelho: 100% de radiao, azul: 30%). A imagem inferior esquerda
mostram as estruturas sensveis a radiao (azul: olhos, amarelo: nervo tico, verde: raiz
do crebro, vermelho: tumor). A imagem direita mostra como a radiao atinge as reas

sensveis, onde pode-se notar que o tratamento deve ser corrigido, pois uma parte da raiz
do crebro foi atingida.

Figura 1.2: Planejamento de um radioterapia [Robb, 99].

A Visualizao Volumtrica ainda um campo da computao grfica com


grandes possibilidades de crescimento. Muitos algoritmos foram desenvolvidos e alguns
aperfeioados visando melhorar a qualidade das imagens ou diminuir seu tempo de
gerao, permitindo o desenvolvimento de sistemas interativos. Pode-se citar muitas
aplicaes de tcnicas de visualizao volumtrica, porm uma das mais importantes e
relevantes ainda na medicina (imagens mdicas). Nesse campo, o dado volumtrico
usualmente obtido atravs de algum processo de aquisio, seja por tomografia
computadorizada (CT), ressonncia magntica (MRI), microscopia confocal, entre outros
[Paiva e outros, 99].
Tipicamente, em uma aplicao em imagens mdicas, o dado volumtrico
apresentado como uma seqncia de fatias bidimensionais (slices, normalmente com
resoluo de 512x512 pontos), separadas por uma pequena distncia (poucos milmetros).
6

Cada fatia representa um seo transversal de um objeto de estudo (um rgo do corpo
humano, por exemplo) e o conjunto das fatias permite a construo de uma imagem
tridimensional do objeto, auxiliando o mdico no diagnstico de uma doena, tratamento
mais adequado ou planejamento de uma cirurgia.
Alm de larga aplicao na medicina, tcnicas de visualizao volumtrica
tambm so muito empregadas em outras reas da cincia, por exemplo, meteorologia,
geologia, engenharia mecnica etc. Entre essas reas, destaca-se a utililizao de
visualizao volumtrica na indentificao de estruturas geolgicas sob a superfcie do
solo. Isso permite, atravs da interpretao de dados ssmicos, inferir propriedades do
terreno, auxiliando o gelogo na identificao de bacias de petrleo [Gerhardt e outros,
98].
O principal objetivo deste trabalho apresentar um estudo de algoritmos hbridos
de visualizao cientfica, que so capazes de tratar no apenas de dados volumtricos,
mas tambm de objetos geomtricos, tais como superfcies poligonais.

Para isto,

primeiro so apresentadas as principais caractersticas do dado volumtrico, isto , de que


forma ele pode ser representado e manipulado. A seguir, so apresentadas algumas
tcnicas que permitem a converso de uma representao volumtrica para uma
representao poligonal e vice versa. Depois os principais algoritmos de visualizao
volumtrica so resumidamente apresentados e, a seguir, so estudados algumas
modificaes nesses algoritmos de forma a torn-los capazes de visualizar cenas
compostas por diferentes representaes.

2 REPRESENTAO DO VOLUME

Genericamente, o dado volumtrico pode ser definido por uma funo f do espao
tridimensional:
f: 3n

Essa funo pode ser analtica ou procedural mas, na maioria dos casos, f uma
funo discreta. Isso significa que a propriedade volumtrica definida apenas em alguns
pontos do espao. Entretanto, durante a visualizao, necessrio que o dado
volumtrico seja reconstrudo, portanto preciso que f seja contnua. Isso requer a
utilizao de uma funo de interpolao.
A forma mais simples de interpolao, conhecida por interpolao de ordem zero,
simplesmente associa o valor da funo f em qualquer ponto do espao como sendo o
valor da funo no ponto mais prximo onde ela definida. Esse mtodo de interpolao
gera um conjunto de regies com valores constantes de f ao redor dos pontos onde a
funo definida. Cada uma dessas regies, onde a propriedade do dado volumtrico no
varia, chamada de voxel (volume element, uma analogia ao caso 2D, pixel).
Uma forma mais apropriada de interpolao, conhecida por interpolao de
primeira ordem (ou interpolao trilinear), assume que a propriedade volumtrica varia
linearmente em cada uma das trs direes axiais. Isso permite a gerao de imagens de
melhor qualidade, pois a interpolao mais suave. Nesse caso, o conceito de voxel deixa
de existir. Entretanto, o dado volumtrico pode ser visto como sendo formado por um
conjunto de clulas adjacentes e fortemente unidas, onde o valor da propriedade
volumtrica definida em cada vrtice da clula (tipicamente oito vrtices) e interpolada
no interior da mesma. Outras formas de interpolao de ordem mais elevadas tambm
podem ser utilizadas. Apesar de muitos autores tratarem dessa forma, ainda no se pode
dizer que h um concenso na literatura com relao ao conceito de voxels e clulas.
O dado volumtrico pode ser obtido atravs de simulao, onde um modelo
matemtico utilizado para gerar o volume (por exemplo, um simulador de reservatrio
de petrleo), ou aquisio, onde um equipamento de sensoriamento utilizado para obter
os dados do mundo real (por exemplo, um tomgrafo). Tipicamente, os algoritmos de
visualizao volumtrica no fazem qualquer distino quanto a origem ou natureza do
8

dado. Uma vez obtido o volume, o processo de visualizao o mesmo, independente da


maneira como o dado foi obtido.
Conforme mencionado anteriormente, o ambiente volumtrico pode conter alm
de dados puramente volumtricos, objetos slidos delimitados por superfcies. Conforme
ser visto mais adiante, o uso simultneo de representaes volumtricas e no
volumtricas (superfcies poligonais) requer um esforo adicional para os algoritmos de
visualizao volumtrica, principalmente para resolver os problemas de aliasing (devido
a erros durante o processo de amostragem dos voxels e polgonos) e visibilidade nas
regies de interseo entre voxels e polgonos.
O dado volumtrico pode ser facilmente compreendido como sendo uma funo
espacial. Entretanto, objetos slidos tambm podem ser matematicamente modelados de
maneira anloga. Nesse caso, pode-se definir uma funo caracterstica dos slidos. Esta
funo binria e indica a presena ou no do slido em cada ponto do espao. No
entanto, a funo caracterstica tem algumas limitaes, principalmente por no definir
diretamente a estrutura do slido (interior e fronteira) e no indicar o vetor normal
superfcie do slido. A fronteira do slido pode ser indiretamente obtida, pois
corresponde aos pontos onde a funo caracterstica descontnua.

2.1

Modelo Conceitual

A Figura 2.1 ilustra o modelo conceitual de um dado volumtrico. No mundo fsico


temos dados espaciais, que constituem um sinal tridimensional representando a variao
de uma propriedade fsica do dado. Essa propriedade, na maioria dos casos (em especial
em imagens mdicas), uma grandeza puramente escalar, tipicamente representando a
densidade, temperatura, presso etc. nos diversos pontos do volume. Entretanto, a
propriedade tambm pode ser uma grandeza multidimensional (tal como um vetor)
representando, por exemplo, a velocidade em cada ponto do volume. A visualizao de
grandezas multidimensionais requer a utilizao de tcnicas especiais, sendo ainda uma
rea em estudo em visualizao cientfica. Alm disso, o ambiente volumtrico citado
pode incluir tambm objetos slidos, tipicamente delimitados por superfcies.

dados
espaciais

mundo fsico

funo
f: R 3 R n

modelo matemtico

amostragem
reconstruo

representao

matriz
tridimensional

implementao

Figura 2.1: Modelo conceitual de um dado volumtrico

O modelo matemtico capaz de expressar os dados volumtricos no mundo fsico


baseado em funes do espao. Este modelo vlido tanto para o dado volumtrico
propriamente dito como tambm para os objetos slidos existentes no ambiente. Um dos
grandes desafios dessa rea a unificao das duas representaes. Como ser visto
adiante, esta unificao conceitualmente simples no modelo matemtico.
Para representar tais funes necessrio realizar a amostragem do dado contnuo
e a reconstruo de um dado contnuo a partir de um conjunto de dados discreto. Por
razes de simplicidade, a amostragem tipicamente uniforme, o que gera um conjunto de
dados regular (reticulado). Esse passo fundamental pois precisa-se obter uma
representao discreta dos dados espacias. Entretanto, importante ressaltar que pode
haver perda de informao durante esse processo. Para que a perda seja controlada
necessrio que a taxa de amostragem seja superior freqncia de Nyquist. [Gomes e
Velho, 97]
Por fim, no nvel de implementao, este reticulado precisa ser armazenado em
uma estrutura de dados apropriada. Caso a amostragem tenha sido uniforme, a estrutura
mais adequada uma matriz tridimensional. Esta forma bastante compacta e permite
rpido acesso a qualquer dado no espao.

10

2.2

Distribuio Espacial dos Dados

Em geral, o dado volumtrico amostrado ao longo de trs eixos ortogonais, definindo


um reticulado cartesiano. Esse reticulado pode ser regular, onde os intervalos so
idnticos em todas as direes, ou retilneo, onde os intervalos podem ser diferentes em
cada direo, porm constantes em uma mesma direo. Entretanto, isso nem sempre
acontece. Em algumas aplicaes, os dados so amostrados em pontos aleatrios, o
reticulado pode ser esfrico, curvo etc. Essa generalizao torna os algoritmos de
visualizao volumtrica extremamente ineficientes e, sempre que possvel, deve ser
evitado.
Uma classificao bastante utilizada para descrever a estrutura espacial do dado
volumtrico pode ser encontrado em [Speray e outros, 90; Paiva e outros, 99], descrita
resumidamente em sete categorias distintas:
Cartesiano. Os elementos de dados so cubos alinhados com os eixos. a
forma ideal de estrutura espacial, pois permite acesso mais rpido aos dados;
Regular. Os elementos so paraleleppedos de dimenses constantes. Esse tipo
de estrutura muito comum em dados provenientes de Tomografia
Computadorizada;
Retilneo. Os elementos so paraleleppedos de dimenses variveis;
Estruturado ou curvilneo. Os elementos no so alinhados com eixos e podem
ser curvos. Muito comum em dinmica de fluidos;
Estruturado em blocos. Os dados so agrupados de forma a evitar limitaes
topolgicas;
No estruturado. Sem quaisquer restries geomtricas. Muito comum em
estudos de elementos finitos.

Um dos maiores problemas encontrados na visualizao de volumes a grande


quantidade de dados. Uma matriz de 512x512x512 contendo dados escalares de apenas 1
byte cada necessita de 128 Mbytes para ser armazenada. Esse problema trouxe srias
limitaes para a visualizao interativa, pois o tempo necessrio para o rendering do
volume ainda era muito grande.

11

3 REPRESENTAES E CONVERSES

Em um ambiente onde existe apenas dados volumtricos, muitas vezes interessante


extrair superfcies relacionadas com o dado. No caso de imagens mdicas, algumas
estruturas particulares (por exemplo, pulmo, artria etc) podem ser segmentadas, dando
origem a superfcies e objetos slidos. Em outras situaes, como a apresentada na
Figura 1.2, necessrio que primitivas geomtricas sejam posteriormente adicionadas ao
ambiente volumtrico. Em ambos os casos, imprescindvel a utilizao de duas
representaes diferentes para modelar o ambiente. Por isso, importante estudar com
mais detalhes como essas representaes esto relacionadas e como pode-se converter
uma representao volumtrica em superfcie e vice-versa.

3.1

Representao de Superfcies e Slidos

A geometria de um objeto (superfcie ou slido) pode ser descrita de duas formas


diferentes: utilizando o modelo paramtrico ou implcito [Gomes e Velho, 92]. No
modelo paramtrico, o objeto definido atravs de uma funo que, variando seus
parmetros dentro do intervalo estabelecido, enumera todos os pontos do objeto. Por
exemplo, um crculo unitrio em 2D pode ser descrito na forma paramtrica atravs da
funo:
f() = (cos , sin ), [0, 2]

Pode-se tambm definir a mesma geometria utilizando modelo implcito. Atravs


desse esquema, o conjunto de pontos de define o objeto especificado indiretamente,
atravs de uma funo de classificao. No exemplo do crculo, a forma implcita pode
ser definida atravs da funo:
F(x,y) = x2 + y2 1, x,y

No modelo implcito, os pontos que pertencem ao crculo so todos aqueles em


que F(x,y)=0. Nota-se que F uma funo que classifica os pontos do espao com

12

relao ao objeto, definindo, portanto, uma subdiviso do espao. A Figura 3.1 ilustra as
diferenas entre as duas formas de descrio. Nesse caso, tem-se:
F(x,y) < 0, (x,y) pertence ao interior do crculo;
F(x,y) = 0, (x,y) pertence ao crculo;
F(x,y) > 0, (x,y) est do lado de fora do crculo.

PARAMTRICO

IMPLCITO

y
F(x,y) > 0

F(x,y) = 0

F(x,y) < 0
1

f()

2
F(x,y) = x2 + y2 - 1

f() = (sin , cos )

Figura 3.1: Descrio paramtrica e implcita

Pode-se dizer que o modelo paramtrico muito mais usual, entretanto o modelo
implcito est sendo cada vez mais estudado, tendo em vista sua importncia para a
modelagem geomtrica [Gomes e Velho, 92]. O modelo paramtrico fornece uma
representao explcita da superfcie, porm tem algumas limitaes. Uma delas que,
em algumas situaes, difcil encontrar um espao de parmetros adequado. Por isso,
muitas vezes necessrio representar o espao paramtrico por partes.
importante ressaltar, no entanto, que as duas formas so complementares. Assim,
uma pode ser mais adequada que a outra em determinadas situaes. Para exemplificar,
quando preciso desenhar um objeto, o modelo paramtrico o mais indicado, pois para
obter todos os seus pontos basta variar os parmetros. Entretanto, problemas tpicos de

13

modelagem como, por exemplo, deteo de interferncia entre objetos, muito mais
simples utilizando a formulao implcita.
Todos os conceitos apresentados aqui tm uma forte relao com visualizao
volumtrica. A partir do modelo volumtrico geral, definido atravs de uma funo ou
sinal tridimensional, pode-se obter um modelo volumtrico mais especializado como, por
exemplo, baseado na formulao implcita dos objetos.
Esta formulao tem vrias vantagens na resoluo de problemas de modelagem
geomtrica. Por exemplo, o gradiente de uma funo implcita pode ser utilizado para o
clculo do vetor normal a superfcie. Alm disso, a formulao implcita est
intimamente relacionada com as isosuperfcies (curvas de nvel) de uma funo de
densidade. Considerando o objeto representado por esta funo implcita, sua fronteira
tambm uma isosuperfcie e corresponde exatamente regio onde a densidade sofre
uma variao mais acentuada. Isso muito importante para as tarefas de visualizao.
Por ltimo, pode-se tambm obter a vizinhana tubular de um slido implcito, o que
extremamente til para o clculo de interferncias e resoluo de diversos problemas de
modelagem geomtrica.
Um objeto slido tambm pode ser representado atravs de sua funo
caracterstica, que vale 1 em todos os pontos pertencentes ao objeto e 0 em todos os
demais pontos do espao. Em outras palavras,

seja : n {0,1} a funo

caracterstica do objeto . Portanto,


(p) = 1 se p e
(p) = 0 se p .

A funo caracterstica de um slido pode ser utilizada para criar uma descrio
implcita do objeto. Note que a fronteira do objeto corresponde regio onde sua funo
caracterstica descontnua e tambm corresponde uma curva de nvel no modelo
implcito.
Pode-se converter facilmente de uma representao implcita F para a funo
caracterstica atravs de:
(p) = 1 se F(p) 0 e
(p) = 0 se F(p) > 0.

14

O caso inverso, i.., converso de uma funo caracterstica em uma representao


implcita no trivial e pode ser encontrado em [Velho e outros, 95]. Este procedimento
baseado em um mtodo de deteo de borda e reconstruo utilizando wavelets. Este
mtodo interessante pois tambm pode ser utilizado para obter uma converso
aproximada de uma representao paramtrica para implcita. Para isso, primeiro obtido
a funo caracterstica do objeto. Isso realizado atravs da rasterizao volumtrica do
objeto (rasterizando primeiro a superfcie e depois preenchendo o volume definido por
ela) [Kaufman, 87; Pavlidis, 78]. Existem tambm mtodos algbricos exatos para
converso de paramtrico em implcito, porm so muito complexos e dificilmente
utilizados.

3.2

Mtodos de Converso

A criao de representaes discretas a partir de objetos implcitos um problema


bastante importante em Visualizao Cientfica. Uma das formas mais gerais de
representao implcita exatamente dados volumtricos, armazenados em uma matriz
tridimensional contendo valores escalares, ou seja, uma funo ou sinal 3D. A
reconstruo de uma funo contnua a partir de um conjunto discreto de pontos pode ser
muito til para resolver vrios problemas de modelagem em Visualizao Cientfica.

3.2.1 Poligonizao
Os mtodos de discretizao geomtrica procuram gerar, a partir de um modelo
geomtrico contnuo, uma representao discreta aproximada do modelo original. De
uma forma geral, os mtodos de poligonizao podem ser comparados com o problema
de lapidao de uma pedra preciosa, onde necessrio esculpir faces planas na pedra
com mnima perda de material [Gomes e Velho, 92].
Tipicamente, o primeiro passo de qualquer algoritmo de poligonizao
discretizar o domnio da funo, gerando assim, uma decomposio celular do espao
ambiente. Em muitas situaes (por exemplo, dados volumtricos) o domnio j est
discretizado. Nesse caso, quando a funo original no conhecida, a aproximao
poligonal pode no ser bem definida.
O segundo passo gerar uma representao paramtrica linear por partes, ou seja,
uma malha de polgonos. Para isso, necessrio classificar as clulas geradas a partir da
15

discretizao do domnio. A Figura 3.2 ilustra o caso bidimensional, porm o mesmo


pode ser aplicado em 3D. Atravs da anlise do sinal da funo implcita, pode-se inferir
se a clula est dentro (Figura 3.2a), fora (Figura 3.2b) do slido implcito ou tem
interseo com a superfcie implcita (Figura 3.2c). Se o sinal da funo implcita no o
mesmo em todos os vrtices da clula, ento h interseo da clula com o slido
implcito. Entretanto, deve-se ter cuidado para no utilizar uma discretizao inadequada
do espao ambiente, como ilustra a Figura 3.2d.

F(x,y)

(b)
+

(a)

+
(d)
+

(c)
+

Figura 3.2: Classificao das clulas

Aps a classificao de todas as clulas, necessrio gerar os polgonos, calculando-se a


interseo da fronteira de cada clula com a superfcie implcita. Para agilizar o processo,
normalmente, utiliza-se uma tabela com todas os casos possveis de interseo, j que o
nmero de possibilidades no muito grande. A seguir, os polgonos so colados, ou
seja, reconstrudos com estruturao. Com isso, obtem-se uma descrio paramtrica por
partes da funo implcita.
Com relao decomposio do domnio, os algoritmos de poligonizao podem
ser classificados como simpliciais e no simpliciais. Os simpliciais triangulam o domnio
da funo implcita. No caso 3D, as clulas geradas so tetraedros. Os algoritmos no
simpliciais tesselam o domnio, gerando clulas mais complexas.
O exemplo mais conhecido de algoritmo no simplicial

Marching Cubes

[Lorensen e Cline, 87]. Este mtodo utiliza uma decomposio do volume em


paraleleppedos, formados por cada conjunto de oito vrtices adjacentes dentro do
volume. Considerando um determinado valor de limiar o algoritmo procura identificar de
16

que forma a iso-superfcie passa pelos cubos. A princpio, 256 (28 ) casos poderiam ser
identificados. Entretanto, atravs simetrias, esse nmero pode ser reduzido para 16 casos
bsicos. Na verdade, so 15, pois o primeiro e ltimo geram a mesma geometria (Veja
Figura 3.3).

Caso 1

Caso 2

Caso 3

Caso 4

Caso 5

Caso 6

Caso 7

Caso 8

Caso 9

Caso 13

Caso 10

Caso 11

Caso 14

Caso 12

Caso 15

Figura 3.3: Casos bsicos do algoritmo Marching Cubes

17

Caso 16

Os mtodos simpliciais [Gomes e Velho, 92] possuem muito menos casos, pois a
interseo, se houver, pode ocorrer em apenas duas situaes diferentes, conforme
mostrado na Figura 3.4. Alm disso, os mtodos simpliciais tm outras vantagens em
relao aos no simpliciais. A mais importante , sem dvida, a ausncia de
ambigidades. Muitas vezes, os algoritmos no simpliciais como o Marching Cubes, tm
que resolver ambigidades com coerncia, tomando decises ad-hoc, para evitar que
aparecam furos na representao poligonal. Os mtodos simpliciais, por outro lado,
geram um nmero maior de clulas aps a decomposio do domnio, entretanto, os
casos so mais simples de serem tratados e, no final da poligonizao, o nmero de faces
geradas praticamento o mesmo.

Caso 1

Caso 2

Caso 3

Caso 4

Figura 3.4: Casos bsicos do mtodo simplicial

Em todos os mtodos de poligonizao, necessrio uma classificao do dado


volumtrico em duas regies para identificar as iso-superfcies. Isso significa que,
invariavelmente, muita informao perdida durante esse processo de classificao. A
principal conseqncia desse fato que pequenos detalhes do volume podem ser
ignorados. Alm disso, muitos objetos amorfos (de natureza essencialmente volumtrica,
tais como nuvem e fluidos), no podem ser representados satisfatoriamente utilizando
apenas primitivas geomtricas. Nesse caso, outras representaes mais adequadas devem
ser escolhidas.

3.2.2 Voxelizao
Essa tcnica permite converter um slido dado por uma representao de fronteira (por
exemplo, B-Rep) em uma representao volumtrica implcita. Com isto, um objeto
18

geomtrico com uma representao geomtrica contnua pode ser transformado em um


conjunto discreto de voxels que mais se aproxima da representao contnua original.
Como o resultado desta converso essencialmente um conjunto volumtrico de
dados representando diferentes densidades (assim como os resultados obtidos de
simulaes numricas e exames mdicos), ele pode ser visualizado atravs de qualquer
algoritmo de visualizao volumtrica. Com isso, pode-se facilmente misturar dados de
natureza essencialmente volumtrica (por exemplo, um exame de ressonncia magntica)
com modelos geomtricos, j que, aps a converso do ltimo, tem-se uma representao
comum. Obviamente, em muitas situaes, essa converso em uma representao nica
no desejada, visto que sempre h perdas.
O processo de converso de um modelo de fronteira em volumtrico tem uma forte
analogia com a converso de um objeto geomtrico 2D em pixels. Entretanto, o processo
de converso em 3D, tambm chamado de 3D scan conversion, mais complexo. Em
[Kaufman, 87] pode ser encontrado um estudo de alguns desses algoritmos. A princpio,
pode-se achar que basta selecionar todos os voxels que pertencem total ou parcialmente
ao objeto. Porm, o resultado obtido normalmente no satisfatrio, pois a converso
muito grosseira. Isso ocorre porque a qualidade de uma classificao binria dos voxels
est diretamente relacionada com a resoluo espacial do volume. Por isso, o aliasing
inevitvel quando no se toma os devidos cuidados.
Em [Wang e Kaufman, 93] pode ser encontrado uma tcnica para reduzir o efeito de
aliasing, baseado na estimativa da contribuio do slido na densidade dos voxels. Com
isso, a densidade de um voxel proporcional a distncia de seu centro ao objeto slido.
Isso pode ser visto como um filtro que suaviza a funo caracterstica do slido,
reduzindo, assim, o aliasing. [Breen e outros, 88] tambm descrevem, entre outras
assuntos, um mtodo de scan conversion de modelos CSG. Essa tcnica utilizada para
gerar um volume dados, representado por uma funo implcita, onde cada voxel
armazena a menor distncia entre a superficie do slido e o voxel (funo de distncia).

19

4 VISUALIZAO VOLUMTRICA

A visualizao de dados volumtricos um caso mais geral que a visualizao de


superfcies. A caracterstica bsica de um dado volumtrico , muitas vezes, no
apresentar superfcies explcitas, ou seja, as fronteiras no so muito bem definidas, os
objetos podem ser amorfos. Isto pode ocorrer em diversos graus, desde objetos pouco
amorfos, tais como slidos comuns com fronteira bem definida, at objetos totalmente
amorfos, tais como nuvens, gases etc. No ltimo caso, no possvel identificar as
superfcies que formam o objeto.
Uma outra questo importante est relacionada com o meio onde os objetos esto
inseridos. Este meio pode ser no participativo ou participativo. O meio no participativo
caracterizado por no atenuar a luz durante sua propagao. Esse o caso mais simples,
pois a iluminao precisa ser calculada apenas nas fronteiras dos objetos. O caso mais
geral, quando o meio participativo, muito mais complexo e a visualizao exata da
cena, segundo os modelos fsicos, computacionalmente difcil.
No caso da visualizao volumtrica, no se espera a perfeita simulao da
realidade, mas sim a visualizao exploratria dos dados. Alm disso, o tempo para a
gerao de uma imagem deve ser razovel o suficiente a ponto de permitir o mnimo de
interatividade. Por esse motivo, simplificaes devem ser realizadas no modelo fsico da
propagao da luz. Pode-se dizer que a visualizao volumtrica uma situao
intermediria, entre meio no participativo e meio participativo.
De uma maneira bem simples, a visualizao de um dado volumtrico tpico pode
ser vista como sendo a visualizao de slidos dentro de slidos, cuja funo densidade
constante dentro do volume. Entretanto, esses objetos slidos podem ter, na verdade,
fronteiras difusas. O que caracteriza uma fronteira difusa a variao suave da funo
densidade numa vizinhana tubular da fronteira. Isso pode ser estimado atravs da
magnitude do gradiente da funo. Quando a magnitude grande, significa que h uma
superfcie bem ntida separando o meio. Quando pequena, significa uma superfcie
difusa sendo, portanto, muito difcil caracterizar o objeto.
Uma das simplificaes mais comuns realizadas no modelo fsico admitir que h
pouco espalhamento da luz quando ela se propaga pelo volume. Nesse caso, o meio pode
20

ser modelado como um gelatina semi-transparente. A luz, ao percorrer o meio, interage


com a gelatina, podendo ser absorvida, emitida ou espalhada (Veja a Figura 4.1). Nesse
caso, como h interao com o meio, o clculo da iluminao tem que realizado
continuamente sendo, portanto, necessrio integrar o efeito da atenuao da luz durante a
sua propagao pelo meio em que se encontra. Uma outra simplificao muito comum
no considerar a atenuao da luz emitida pelas fontes luminosas pelo meio.

Figura 4.1: Propagao da luz no ambiente volumtrico [Paiva e outros, 99].

Todas essas simplificaes reduzem bastante a complexidade dos algoritmos de


visualizao, diminuindo o tempo de gerao das imagens e permitindo a visualizao
exploratria dos dados. Isso, obviamente, causa um pouco de perda na qualidade das
imagens. Porm, para a maioria das aplicaes (principalmente em medicina, onde no
h tanta necessidade de visualizao de imagens reais), o ganho de velocidade justifica a
pequena perda de qualidade.

4.1

Pipeline de Visualizao

Os algoritmos de visualizao volumtrica requerem, em sua maioria, os passos


apresentados na Figura 4.2. O primeiro passo consiste na aquisio do dado volumtrico,
que normalmente realizado atravs do uso de um equipamento de sensoriamento
apropriado. A seguir, o dado volumtrico bruto classificado, normalmente com o
auxlio do usurio. Essa etapa pode ser vista como uma forma de segmentao, pois sua
finalidade principal identificar estruturas internas do volume, atravs do uso adequado
de cores e opacidades. A seguir, o volume classificado iluminado, facilitando sua
21

interpretao pelo usurio, pois a forma tridimensional do volume realada. O ltimo


passo consiste na projeo do volume classificado e iluminado em um plano de
visualizao, gerando assim uma imagem bidimensional que ser visualizada pelo
usurio.
Essas etapas so muito comuns na grande maioria dos algoritmos de visualizao.
Nessa anlise, est sendo considerado que o dado volumtrico apresentado sob a forma
de valores escalares em um reticulado retilnio. Esta etapa j foi previamente realizada
atravs de alguma simulao numrica ou atravs de algum processo de aquisio.
Tipicamente, esses dados podem ser pr-processados, visando reduzir o rudo,
realar algumas caractersticas do objeto em estudo. Em algumas situaes, os dados
precisam ser reconstrudos, visando estimar valores perdidos durante o processo de
aquisio, reamostrar o volume, atravs de interpolao, para adequar sua topologia
(convertendo um reticulado irregular para um reticulado regular, por exemplo), novas
fatias podem ser criadas e outras podem ser descartadas etc.
aquisio
volume bruto
sinal 3D

f(x,y,z)

classificao
cor e opacidade

c(x,y,z), (x,y,z)
iluminao

cor iluminada
e opacidade

c(x,y,z), (x,y,z)
projeo

cp(x,y)

imagem 2D

Figura 4.2: Pipeline de visualizao volumtrica.

22

Pressupondo que o dado volumtrico j esteja armazenado em uma estrutura


adequada, o processo de visualizao volumtrica consiste em, a partir de uma funo
escalar discreta f(xi,yj,z k) que define o volume, gerar uma imagem bidimensional
p(xi,yj) que represente a projeo desse volume em um determinado plano, de acordo

com os parmetros de visualizao.


O interessante ao estudar o pipeline de visualizao perceber que em cada etapa
uma novidade introduzida. Aps a aquisio dos dados, tem-se o volume em seu estado
bruto. Ao separar as estruturas que sero visualizadas, atravs da definio das funes
de transferncias, tem-se o dado classificado. Aps o posicionamento das luzes, tem-se o
dado iluminado. Finalmente, aps o posicionamento da cmera, tem-se o dado projetado
em uma imagem bidimensional. Fica claro, ento, que qualquer alterao nesse processo
necessrio revisitar as etapas seguintes. Por exemplo, se a posio da cmera for
alterada, apenas a etapa de projeo precisa ser executada. Entretanto, se o usurio mudar
uma das funes de transferncia, as etapas de classificao, iluminao e projeo
precisam ser novamente executadas.

4.1.1 Classificao
A classificao do volume etapa mais complexa para o usurio de um sistema de
visualizao volumtrica (por exemplo, um mdico). Normalmente, esse usurio no tem
conhecimentos tcnicos a respeito do processo de visualizao, entretanto o requisito
fundamental para uma boa classificao do volume o conhecimento prvio do objeto
em estudo, i.., o usurio dever reconhecer sua anatomia, as estruturas que podero
eventualmente serem encontradas, em quais posies etc. [Elvins, 92].
O processo de classificao tem a finalidade principal de identificar as estruturas
internas do volume. Com isso, um mdico pode, por exemplo, isolar elementos distintos,
tais como gordura, msculo e osso, em um exame de ressonncia magntica. No caso de
algoritmos de rendering direto, cujos dados so representados por grandezas escalares, a
classificao do volume envolve tipicamente a definio de funes de transferncia de
cor e opacidade.
A funo de transferncia de cor permite mapear valores contidos no volume em
uma cor RGB caracterstica. Por exemplo, em um exame de tomografia
computadorizada, pode-se definir uma faixa de intensidade como sendo gordura e
23

associar a cor amarela. Para uma outra faixa, pode-se definir como sendo msculo e
atribuir a cor vermelha. Osso pode ser representado pela cor branca etc (Veja a Figura
4.3).
cor (R,G,B)
branco (1,1,1)

osso

vermelho (1,0,0)

msculo

amarelo (1,1,0)
preto (0,0,0)

gordura
ar

0.0

1.0

densidade

Figura 4.3: Funo de transferncia de cor

A funo de transferncia de opacidade permite mapear valores contidos em um


volume em uma determinada transparncia, normalmente representada por uma nmero
real no intervalo de 0.0, para totalmente transparente, a 1.0, para totalmente opaco (Veja
a Figura 4.4).

opacidade
osso

1.0
msculo

gordura

0.0
0.0

ar
densidade

1.0

Figura 4.4: Funo de transferncia de opacidade

24

A modificao da funo de transferncia de opacidade permite ao usurio


visualizar determinadas estruturas do volume. Para isso, basta torn-las no transparentes
e deixar as demais transparentes, ou quase transparentes. Tipicamente, quando se trata de
imagens mdicas, as camadas mais externas do volume so colocadas mais transparentes
que as mais internas. Com isso, o usurio (por exemplo, um mdico) pode ter uma
visualizao das partes mais internas do volume. (Veja a Figura 4.5).

(a)

(b)

Figura 4.5: Mudana nas funes de transferncia [Paiva e outros, 99]

Existem algumas tcnicas que permitem a classificao automtica do volume.


Uma delas muito utilizada em exames de tomografia computadorizada e baseia-se em
um modelo de classificao probabilstico [Drebin e outros, 88]. Nesse modelo,
assumido que apenas um ou no mximo dois elementos podem existir em um voxel.
Alm disso, a existncia de dois elementos s possvel na interface que os separam, por
exemplo, a regio entre msculo e osso.
Apesar de existirem outras tcnicas automticas de classificao de volumes, na
maioria dos casos ainda necessria a interferncia do usurio para definir
adequadamente as funes de transferncias. O mtodo utilizado para este fim ainda o
da tentativa e erro. Obviamente, existem ferramentas capazes de auxiliar o usurio nesse
processo. Uma das mais importantes o histograma do volume, onde apresentado a
distribuio dos valores escalares que ocorrem no volume. Com isso, o usurio pode ter
uma idia mais precisa das estruturas ali contidas.
25

4.1.2 Iluminao
Para criar uma iluso de profundidade, realar bordas e caractersticas do volume,
muito comum a utilizao de um modelo de iluminao para a visualizao do volume.
Os algoritmos de visualizao volumtrica tipicamente utilizam aproximaes de
modelos de iluminao de baixo espalhamento, pois so computacionalmente mais
simples e apresentam bons resultados, principalmente com imagens mdicas. A incluso
de modelos de alto espalhamento pode proporcionar maior realismo para a cena, porm,
no caso de dados mdicos, no traz grandes benefcios para sua interpretao. Portanto,
na maioria dos casos, no justifica a utilizao de modelos de alto espalhamento.
A aproximao de um modelo de iluminao de volumes de baixo espalhamento
realizado atravs de um modelo local de iluminao. Os modelos locais consideram
apenas a reflexo da luz na superfcie do objeto. Isso significa que, nesses modelos,
apenas a luz ambiente e as reflexes difusa e especular das fontes de luz existentes na
cena so consideradas no clculo da iluminao.
Entre os modelos locais de iluminao, os mais conhecidos so Gouraud [Gourad,
71] e Phong [Phong, 75]. No mtodo de Gourad, a iluminao calculada nos vrtices da
clula e interpolada em seu interior. J no mtodo de Phong, a normal nos pontos dentro
de uma clula calculada atravs da interpolao das normais nos vrtices da mesma. A
iluminao , portanto, calculada em cada ponto no interior da clula.
No caso de algoritmos de rendering direto, o conceito de superfcie pode no
fazer muito sentido, mas de extrema importncia para o correto clculo da iluminao
dos voxels. Nessa situao, imagina-se que o ponto sendo iluminado pertence a uma
isosuperfcie existente no volume. Efetivamente, os algoritmos procuram fazer uma
estimativa da normal superfcie para efeito de iluminao.
Um dos mtodos mais utilizados para a estimativa da normal em um determinado
ponto do volume utilizando uma aproximao do gradiente do volume. Essa
aproximao calculada atravs de diferenas finitas em uma vizinhana do campo
escalar volumtrico. Utilizando diferenas centrais, a normal N pode ser estimada pela
frmula abaixo: (D[i,j,k] representa o valor escalar na posio (i,j,k) do volume)
Nx = D[i+1,j,k] - D[i-1,j,k]
Ny = D[i,j+1,k] - D[i,j-1,k]
Nz = D[i,j,k+1] - D[i,j,k-1]
26

Essa estimativa da normal bastante simples de ser realizada, porm, por ser
baseada em uma vizinhana muito prxima do volume, muito sensvel a rudos e
descontinuidades do volume. Em algumas situaes, a estimativa no pode ser utilizada.
Para reduzir o efeito da localidade, pode-se estimar o gradiente considerando no apenas
os seis vrtices vizinhos, mas sim os 26 vizinhos (estimativa de segunda ordem). Apesar
de ser um mtodo bastante simples, a estimativa da normal pode consumir muito tempo
de computao, pois deve ser feito em todos os pontos do volume. Por isso, esse clculo
normalmente realizado como uma etapa de pr-processamento do volume.

4.1.3 Projeo
Essa etapa no pipeline de visualizao recebe o volume j iluminado e realiza a projeo
dos voxels sobre o plano da imagem. Tipicamente, a projeo realizada atravs do
lanamento de um raio a partir de cada pixel da tela (plano de projeo), determinando,
atravs da composio da cor iluminada e opacidade dos voxels atingidos pelo raio, a cor
final do pixel.
A projeo pode ser paralela ou em perspectiva. Entretanto, a projeo em
perspectiva possui algumas desvantagens. Uma das mais graves o problema da
divergncia dos raios. A densidade de raios, i.., o nmero de raios lanados por voxel,
diminui a medida que se caminha sobre o raio. Ou seja, a amostragem realizada nos
voxels mais prximos do observador mais detalhada que a realizada nos voxels mais
distantes. Isso significa que pequenos detalhes so perdidos ao serem projetos os voxels
mais distantes. Para resolver este problema, pode-se usar a fora bruta, aumentando o
nmero de raios lanados (oversampling). Obviamente, este mtodo bastante
ineficiente.

Uma outra forma utilizar um algoritmo adaptativo, aumentando-se a

densidade de raios a medida que se afasta do observador [Novins e outros, 90].

4.2

Algoritmos de Visualizao

Essa seo tem o objetivo de apresentar os algoritmos bsicos de rendering direto. Esses
algoritmos tm em comum a no utilizao de nenhuma representao intermediria para
gerar a imagem do volume. Porm, tm a desvantagem de serem, em geral,
computacionalmente mais caros.

27

Como exemplo de algoritmos de rendering direto, pode-se citar Ray Casting


[Levoy, 88], Splatting [Westover, 90] e Shear-Warp [Lacroute, 95], entre outros. Esses
algoritmos realizam a projeo do volume diretamente no plano da imagem e so os mais
indicados para visualizar volumes que representam objetos amorfos.
Pode-se ainda subdividir os algoritmos de rendering direto em duas categorias
principais: espao dos objetos e espao da imagem. Na primeira situao (espao dos
objetos), utilizado o mapeamento direto (forward mapping) do volume sobre o plano da
imagem, ou seja, os voxels so projetados na tela em uma determinada ordem. Como
exemplo, pode-se citar os algoritmos Splatting [Westover, 90] e V-Buffer [Upson e
Keeler, 88]. No outro caso (espao da imagem), utilizado o mapeamento reverso
(backward mapping), onde so lanados raios para cada pixel da imagem em direo ao
volume determinando, assim, a cor final do pixel. Como exemplo, pode-se citar o
algoritmo Ray Casting [Levoy, 88].
A seguir sero apresentadas as principais caractersticas dos algoritmos mais
importantes de rendering direto: o traado de raios (Ray Casting), que opera no espao
da imagem, o Splatting, que opera no espao do objeto e o algoritmo Shear-Warp que
mescla as duas tcnicas.

4.2.1 Ray Casting


O algoritmo Ray Casting [Levoy, 88] permite a gerao de imagens de alta qualidade
atravs de rendering direto, operando no espao da imagem. A idia bsica do algoritmo
lanar raios na direo de viso atravessando cada pixel da tela (plano de visualizao
ou plano de projeo), conforme mostrado na Figura 4.6.

28

Figura 4.6: Algoritmo Ray Casting

Durante a etapa de iluminao do pipeline de visualizao volumtrica, a cor de


cada voxel modificada utilizando algum modelo de iluminao local, tipicamente
Phong. Para isto, o vetor normal em cada voxel calculado atravs de uma estimativa
local do gradiente da funo volumtrica, tipicamente utilizando diferenas finitas. Alm
disto, algumas luzes podem ser posicionadas na cena. A Figura 4.7 ilustra esse processo.

Figura 4.7: Clculo da iluminao em um voxel

Pela figura acima, a luz Cout que sai de um voxel calculada em funo de trs fatores
fundamentais:
luz refletida na direo de viso por todas as fontes de luz presentes na cena;
29

luz Cin filtrada pelo voxel;


qualquer luz emitida pelo voxel.
Tipicamente, a luz emitida pelas fontes de luz presentes na cena no atenuada
pelo volume. Esse efeito usualmente ignorado durante o clculo da iluminao pois,
alm de simplificar bastante o algoritmo (no necessrio calcular uma integral de
linha), muitas vezes at indesejado. Se as fontes de luz fossem atenuadas pelo volume,
reas ao redor de regies muito densas (por exemplo, osso) poderiam ficar totalmente
obscurecidas. Note, entretanto, que o efeito da atenuao da luz ao longo do raio de viso
no pode ser desprezado. Isso levado em considerao durante a etapa de projeo do
pipeline de visualizao.
Para cada raio lanado no volume (Figura 4.6), realizada uma amostragem do
volume em intervalos regulares ao longo do raio. Atravs de interpolao, obtida a cor
e a opacidade em cada ponto amostrado, segundo as funes de transferncias
empregadas durante o processo de classificao. A seguir, todas as contribuies obtidas
(cores e opacidades) so compostas calculando assim a cor final C(R) do pixel (Figura
4.8).
A cor Cout(R,k) e a opacidade out(R,k) do raio aps passar pela amostra k ao
longo do raio calculada em funo da cor Cin(R,k) e a opacidade in(R,k) antes de
passar pelo voxel e pela cor C(R,k) e opacidade (R,k) da amostra:
Cout(R,k) = Cin(R,k) + C(R,k)*(1- in(R,k))
out(R,k) = in(R,k) + (R,k)*(1- in(R,k))

Sendo que,
Cin(R,k) = Cin(R,k)* in(R,k)
Cout(R,k) = Cout(R,k)* out(R,k)

Depois de computar todas as N contribuies de k=1..N, a cor final C(R) do pixel


dada por:
C(R) = Cout(R,N)/ out(R,N)

30

Figura 4.8: Composio de cor e opacidade

Essencialmente, esse clculo pode ser expresso atravs de:


C(R) = C(R,1) +
C(R,2)*(1-(R,1)) +
C(R,3)*(1-(R,1))*(1-(R,2)) +
... +
C(R,N)*(1-(R,1))...(1-(R,N-1))
N
=

k-1

(C(R,k) * (1-(R,i)))
k=1

i=1

Pode-se tambm utilizar o operador over de composio digital [Porter e Duff,


84] para expressar a cor final do pixel:
C(R) = C(R,1) over C(R,2) over C(R,3) ... over C(R,N)

O algoritmo Ray Casting gera imagens de alta qualidade, entretanto seu custo
computacional pode ser muito grande, dependendo da resoluo final da imagem, i.., da
quantidade de raios a serem lanados pelo volume. Uma outra desvantagem que os
raios lanados tipicamente atravessam o volume fora da ordem de armazenamento dos

31

voxels, sendo necessrio, portanto, calcular em que voxel est cada ponto amostrado ao
longo do raio.
Existem vrias formas de acelerao do algoritmo. Quando o processo de
composio do raio realizado de frente para trs, i.., do ponto mais prximo do
observador ao mais distante, pode-se interromper o processo quando a opacidade
acumulada atingir um certo valor limite, fazendo com que os voxels mais afastadas no
contribuam muito para a cor final do pixel. Alm disso, pode-se utilizar octrees para
rapidamente saltar por regies homogneas

do volume (densidade constante),

simplificando bastante o processo de integrao ao longo do raio. Essas otimizaes


podem ser encontradas em [Levoy, 90b; Levoy 90c].
Alm disso, pode-se explorar uma caracterstica bem interessante do algoritmo:
como os raios lanamento so totalmente independentes entre si, pode-se visualizar
progressivamente a construo da imagem (Figura 4.9).

32

Figura 4.9: Refinamento progressivo [Paiva e outros, 99]

4.2.2 Splatting
O algoritmo Splatting [Westover, 90] trabalha no espao dos objetos e procura projetar
cada voxel do volume no plano da imagem. Essa projeo normalmente realizada a
partir dos voxels mais prximos do observador at o mais distante. A idia central
arremessar cada voxel sobre o plano de imagem, o que deixa uma marca
caracterstica do voxel, da o nome do algoritmo.
O primeiro passo do algoritmo determinar em que ordem o volume ser
percorrido. Isto essencial para o correto clculo da visibilidade pois, assim como no
algoritmo Ray Casting, a ordem correta de projeo permite acumular adequadamente as
33

opacidades dos voxels. Para isso, escolhe-se os dois eixos do volume mais paralelos ao
plano da imagem para formar o loop mais interno. Com isso, o plano formado por esses
dois eixos sero rapidamente projetados e o usurio poder perceber mais rapidamente a
formao da imagem final. A projeo realizada fatia por fatia, ou seja, todos os voxels
de uma determinada fatia so projetados antes que a prxima fatia seja processada. Como
ocorre nos demais algoritmos, o valor de densidade de cada voxel classificado de
acordo com as funes de transferncias de cor e opacidade e, a seguir, iluminado
utilizando a tcnica de estimativa da normal atravs do gradiente, conforme apresentado
na seo 4.1.2.
A seguir vem a parte mais importante do algoritmo, onde calculada a
contribuio de cada voxel no plano da imagem. O algoritmo procura reconstruir um sinal
contnuo a partir de um conjunto discreto de dados. Para isto, utiliza-se um filtro de
reconstruo (kernel) para calcular a extenso da projeo do voxel sobre o plano da
imagem. A projeo do kernel chamada de footprint e, no caso de projees
ortogrficas, o footprint o mesmo para todos os voxels. Isto significa que ele pode ser
gerado em uma etapa de pr-processamento. A extenso do footprint est relacionada
com o tamanho do volume e a resoluo da imagem, ou seja, se a resoluo da imagem
for maior que o tamanho do volume, a projeo de um nico voxel pode ocupar vrios
pixels.
A cor e opacidade de cada voxel composto com os pixels j presentes no buffer,
levando em considerao a atenuao provocada pela aplicao do footprint. Na verdade,
o footprint uma tabela que determina como o voxel ser arremessado sobre o plano da
imagem. Isso significa que a contribuio do voxel maior no centro de projeo sobre o
plano da imagem (pixel central) e menor nos pixels mais afastados. Quando um
determinado pixel do plano de projeo acumula opacidade prxima de 1.0, este pixel
no precisa mais ser processado.
O algoritmo Splatting permite gerar imagens de alta qualidade, porm muito
sensvel ao tamanho da tabela de footprint. Tabelas pequenas geram imagens com muitos
artefatos enquanto tabelas grandes suavizam demais o volume. Como a projeo
realizada de frente para atrs, uma vantagem do algoritmo permitir que o usurio
acompanhe o processo de gerao da imagem final. Isso mais eficiente que, por
exemplo, no algoritmo Ray Casting, pois projetada uma fatia do volume de cada vez, e
no um pixel por vez. Alm disso, o algoritmo Splatting facilmente paralelizvel, pois a
34

projeo de cada voxel realizada de modo independente, ou seja, no necessrio


considerar o restante do volume durante a projeo. Entretanto, a ordem correta de
projeo deve ser respeitada.

4.2.3 Shear-Warp
A idia principal do algoritmo Shear-Warp [Lacroute, 95] transformar o volume de
dados de modo a simplificar a etapa de projeo do pipeline de visualizao. Isto obtido
atravs da aplicao de um cisalhamento nas fatias do volume, transformando os dados
para um sistema de coordenadas intermedirio cuja principal caractersica que os raios
de viso so perpendiculares as fatias do volume (Figura 4.10). Isso facilita bastante a
projeo das fatias, pois os dados volumtricos so acessados na ordem de
armazenamento. Note que isso no acontece no algoritmo Ray Casting. O cisalhamento
uma transformao geomtrica afim que simplesmente translada as fatias do volume, no
sendo, portanto, computacionalmente cara.

Figura 4.10: Algoritmo Shear-Warp

A composio e projeo das fatias nesse novo sistema de coordenadas (realizada


atravs do operador over) gera uma imagem intermediria distorcida, que precisa ser
corrigida posteriormente (atravs da transformao de warp). A principal vantagem desse
processo que as dimenses da imagem intermediria dependem apenas do tamanho do
volume de dados e do fator de cisalhamento, no dependendo, portanto, da resoluo
35

final da imagem. Como as dimenses do volume de dados so tipicamente menores que a


resoluo final da imagem, o algoritmo Shear-Warp leva uma grande vantagem em
relao ao algoritmo Ray Casting.
A principal razo para utilizar essa transformao no volume que as scanlines
de voxels em cada fatia ficam paralelas as scanlines de pixels na imagem intermediria,
facilitando bastante a projeo das fatias. Aps a gerao da imagem intermediria
distorcida, esta transformada na imagem final atravs da aplicao do warp. Esta
transformao realizada em 2D e restaura as dimenses verdadeiras da imagem que
ser visualizada pelo usurio.
Como a construo da imagem intermediria realizada scanline a scanline,
pode-se tirar proveito disso para otimizar ainda mais o algoritmo. A implementao
original realizada por Lacroute utiliza estruturas do tipo RLE (run length encoding) para
agilizar o processamento dos voxels nas fatias e pixels na imagem intermediria. Atravs
do uso dessa codificao, gerada em uma etapa de pr-processamento, pode-se
facilmente ignorar os voxels transparentes e os pixels j opacos (muito semelhante ao
trmino precoce de raios utilizado no algoritmo Ray Casting). De uma forma geral, o
ganho de velocidade do algoritmo Shear-Warp pode chegar a ser de 5 a 10 vezes em
relao ao algoritmo Ray Casting.

36

5 VISUALIZAO VOLUMTRICA HBRIDA

Conforme mencionado nos captulos anteriores, diversas aplicaes cientficas


necessitam de visualizao simultnea de representaes volumtricas e geomtricas.
Algumas estratgias foram propostas para combinar essas duas representaes e, de uma
maneira bastante simplificada, elas podem ser classificadas de acordo com o tipo de
problema a ser resolvido. Algumas estratgias esto preocupadas em resolver o problema
da modelagem, enquanto outras procuram resolver o problema da visualizao [Tost e
outros, 93].
A primeira estratgia (modelagem) procura converter uma representao em
outra, conforme apresentado no Captulo 3. Entre as tcnicas mais comuns, pode-se citar
a voxelizao e poligonizao. Esse tipo de soluo tem a vantagem de tratar
representaes diferentes da mesma forma, entretanto a grande desvantagem a
inevitvel perda de informao aps a converso. No caso da poligonizao, pequenos
detalhes so perdidos e objetos amorfos no podem ser representados satisfatoriamente
atravs de superfcies. J os algoritmos de voxelizao tem a desvantagem de discretizar
a geometria, podendo assim, ser introduzido aliasing.
A segunda estratgia (visualizao) procura gerar a imagem final diretamente da
da cena contendo representaes diferentes, sem utilizar nenhum tipo de converso. Essa
soluo tem a vantagem de preservar as representaes originais, ou seja, superfcies so
tratadas como superfcies. Alm disso, a nica capaz de tratar cenas complexas. O
principal objetivo deste captulo descrever algumas das tcnicas mais importantes
utilizadas nos algoritmos verdadeiramente hbridos de visualizao volumtrica.

5.1

Mtodos de Converso

Os mtodos de poligonizao so caracterizados por procurar aproximar iso-superfcies


dentro do volume utilizando primitivas geomtricas, tipicamente superfcies poligonais.
Por isso, so chamados de algoritmos de extrao de superfcies. Um dos algoritmos mais
conhecidos (Marching Cubes) foi apresentado no Captulo 4. Devido a facilidade de
realizar rendering de polgonos (esta capacidade comumente implementada com
eficincia em hardware), os primeiros algoritmos de visualizao volumtrica
37

desenvolvidos foram desse tipo. Entretanto, no adequado considerar os algoritmos de


extrao de superfcies como sendo algoritmos de visualizao volumtrica pois,
essencialmente, o que est sendo visualizado so superfcies e no o volume
propriamente dito.
Uma outra forma de visualizao hbrida converte todos os objetos geomtricos
contidos na cena em voxels. A Figura 5.1 ilustra as etapas principais desse mtodo. A
rasterizao dos objetos gera um conjunto de voxels espacialmente superpostos ao dado
volume. A seguir, todos os voxels so combinados gerando assim um nico conjunto de
dados volumtricos.
Para calcular a cor CC e opacidade C resultante da combinao de dois voxels
cujas cores e opacidades so (CG, G) e (CV, V) respectivamente, pode-se utilizar a
frmula:
CC = (CG G + CV V) / ( G + V)
C = G + V - G V

Aps combinar cor e opacidade provenientes da voxelizao dos polgonos e dos


dados volumtricos, aplica-se um qualquer um dos algoritmos de rendering direto para
gerar a imagem final da cena. Na Figura 5.1 utilizou-se o algoritmo Ray Casting.

38

polgonos

dado
volumtrico

rasterizao 3D / iluminao

classificao / iluminao

opacidade
dos voxels
G( i)

cor dos
voxels
CG(i)

opacidade
dos voxels
V( i)

cor dos
voxels
CV(i)

combinao
opacidade combinada
dos voxels
C( i)

cor combinada
dos voxels
C C(i)

lanamento de raios
reamostragem

lanamento de raios
reamostragem

composio
cor dos
pixels
C( u)

Figura 5.1: Converso em uma representao comum volumtrica [Levoy, 90b]

5.2

Mtodos Hbridos

Muitos dos algoritmos hbridos de visualizao volumtrica so baseados no algoritmo


Ray Casting [Levoy, 90a; Fruhauf, 91; Miyazawa e Koyamada, 92]. Basicamente, estes
algoritmos calculam a interseo dos raios com o volume e polgonos em separado e, a
seguir, combinam as intersees ao longo do raio.
Em [Kaufman e outros, 90] pode-se encontrar um algoritmo que utiliza dois zbuffers independentes, um para o volume e o outro para os objetos geomtricos. Os dois
z-buffers so combinados no final, gerando a imagem completa da cena. Entretanto,

39

como os z-buffers foram calculados de modo independente, este algoritmo no permite


tratar volumes semi-transparentes.
[Tost e outros, 93] apresentam um algoritmo hbrido baseado na projeo dos
voxels (rendering direto no espao dos objetos) no plano de visualizao. Este algoritmo
utiliza uma octree para decompor a geometria, facilitando a paralelizao. Alm disso,
permite que o volume e os objetos geomtricos sejam transparentes.
Finalmente, [Schmidt e outros, 99] propem uma extenso do algoritmo ShearWarp capaz de tratar dados volumtricos e superfcies poligonais. Isto obtido atravs da
combinao do Shear-Warp (para tratar os dados volumtricos) com o Z-buffer (para
tratar as superfcies poligonais).

5.2.1 Ray Casting


O algoritmo clssico de Ray Casting hbrido pode ser encontrado em [Levoy, 90a]. A
descrio geral de seu funcionamento apresentado na Figura 5.2. Raios paralelos so
lanados a partir de cada pixel da tela. Para cada raio, calculado um conjunto de cores e
opacidades atravs da reamostragem do volume em intervalos regulares ao longo do raio,
utilizando interpolao trilinear. Por outro lado, todas as intersees dos raios com os
polgonos so calculadas independentemente e iluminadas utilizando o modelo Phong,
gerando tambm um conjunto de cores e opacidades. Finalmente, todas as amostras so
compostas a partir da mais prxima do observador at a mais distante, obtendo-se assim,
a cor final de cada pixel na tela. Para isto, utiliza-se o mtodo usual apresentado na seo
4.2.1.

40

dado
volumtrico

polgonos

classificao / iluminao

opacidade
dos voxels
V( i)
lanamento de raios
iluminao
opacidade
dos pontos
P(x)

cor dos
voxels
CV(i)

lanamento de raios lanamento de raios


reamostragem
reamostragem

cor dos
pontos
CP(x )

opacidade
das amostras
V( U)

composio

composio

cor dos polgonos


atenuada pelo volume
CP(u)

cor dos
raios
C(u)

cor das
amostras
CV(U)

controle da taxa de amostragem

Figura 5.2: Ray Casting Hbrido [Levoy, 90a]

O problema encontrado neste algoritmo, e em todos baseados em amostragem, a


existncia de aliasing caso no seja tomado alguns cuidados. Para que isto no ocorra, o
autor utiliza uma tcnica de super amostragem adaptativa:
1. O plano de imagem dividido em regies adjacentes e um raio lanado em cada um
dos quatro cantos da regio. Pela Figura 5.2, o algoritmo calcula a cor C final de cada
raio (pixel) aps a composio das cores e opacidades provenientes do volume e
intersees com os polgonos;

41

2. Se a diferena entre as quatro cores resultados for inferior a um certo valor limite
(escolhido pelo usurio), ento no h necessidade de nova subdiviso e os pixels
podem ser acesos na tela;
3. Caso contrrio, um novo conjunto de quatro raios lanado de forma anloga ao
passo 1, entretanto, a cor final C P dos pixels calculada considerando-se apenas as
contribuies dos polgonos, ou seja, a cor volume desprezada (CV=0), porm os
raios so atenuados devido opacidade V do volume;
4. Se, nesse novo conjunto de quatro cores, a diferena no exceder o limite, ento isso
significa que a diferena de cor observada no passo 1 devido ao volume, ento no
h necessidade de nova subdiviso e os pixels podem ser acesos na tela;
5. Caso contrrio, a diferena de cor no passo 1 devido aos polgonos, ento deve-se
subdividir a regio considerada.

Outra questo considerada pelo autor o correto clculo da visibilidade entre os


polgonos e o volume pois, devido a amostragem ao longo dos raios, os resultados podem
ser aproximados. A Figura 5.3 ilustra esse problema. Cada paraleleppedo mostrado na
Figura 5.3a corresponde a um pequeno pedao do volume, cuja largura e altura
correspondem ao espaamento entre raios vizinhos e a profundidade corresponde ao
espaamento entre duas amostras consecutivas ao longo do raio. Os polgonos existentes
na cena interceptam esses paraleleppedos, obscurecendo uma parte do volume do
paraleleppedo e sendo obscurecido por outra parte. Dois casos diferentes so
considerados:
1. O polgono intercepta apenas as faces laterais do paraleleppedo (Figura 5.3b).
Nesse caso, obtem-se a soluo exata (Figura 5.3c), subdividindo-se o
paraleleppedo no ponto de interseo do raio com o polgono. De acordo com
esse ponto, calcula-se a opacidade da parte anterior e posterior do paraleleppedo,
em funo da espessura de cada parte. A seguir, deve-se compor a parte anterior
do paraleleppedo, depois o polgono e, por ltimo a parte posterior do
paraleleppedo. Este procedimento est descrito em [Levoy, 90a];
2. O polgono intercepta a face anterior ou posterior do paraleleppedo (Figura 5.3d).
Nesse caso, o polgono contribuiu em mais de um paraleleppedo, apesar de
interceptar o raio apenas uma vez. A soluo exata para este caso requer um
42

esforo computacional maior e uma possvel aproximao pode ser obtida


subdividindo-se o paraleleppedo (Figura 5.3d) e recaindo-se no caso anterior.

V, C V

(a) subvolume e um raio de viso

CP, P

CP, P

} C ,
V B
C V, F

(b) Polgono intercepta apenas as laterais

(c) Soluo exata de (b)

(c) Polgono intercepta na frente ou atrs

(d) Soluo aproximada de (c)

Figura 5.3: Clculo da visibilidade [Levoy, 90a]

5.2.2 Splatting
Uma boa adaptao do algoritmo de Splatting para tratar superfcies pode ser encontrado
em [Tost e outros, 93]. Uma das motivaes deste trabalho era, na poca, a falta de um
algoritmo de mapeamento direto (espao dos objetos) capaz de visualizar corretamente
volume e superfcies transparentes. Para atingir este objetivo, os autores classificam todas
43

as superfcies dentro do volume atravs da construo de uma octree do modelo de


superfcies.
A octree uma representao hierrquica baseada na decomposio recursiva do
espao tridimensional em cubos (octantes) que podem conter objetos ou partes dos
objetos da cena (Figura 5.4). No caso deste trabalho, a octree armazena uma
decomposio apenas dos objetos geomtricos (superfcies e slidos). A raiz desta
estrutura representa toda a cena que a seguir subdividida em oito cubos idnticos. De
acordo com a presena ou no de objetos geomtricos dentro dos cubos, estes podem
sofrer novas subdivises at um limite pr-estabelecido.

Figura 5.4: Estrutura de dados Octree

Em uma octree clssica, os ns das folhas podem ser de dois tipos diferentes:
contm (tipo PRETO) ou no contm um objeto (tipo BRANCO). Existe tambm os ns
no-terminais (tipo CINZA) que correspondem queles que necessitam de subdiviso.
Entretanto, [Tost e outros, 93] utilizam uma variao desta estrutura, acrescentando mais
um tipo de n, chamado de FACE. Este n cortado por um nico plano slido (Figura
5.5). Os autores acreditam que esta estrutura, chamada de Face Octree, apresenta vrias
vantagens em relao a estrutura clssica. A primeira ser muito mais compacta,
necessitando um nmero muito menor de subdivises, economizando, portanto, memria
e tempo de processamento. A segunda vantagem no voxelizar totalmente os objetos
geomtricos. Alm disso, se a resoluo da octree for compatvel com a resoluo do
44

modelo volumtrico, o erro cometido na aproximao da geometria pode ser comparvel


ao erro cometido na projeo dos voxels, reduzindo, assim, os efeitos da aproximao.

CINZA

BRANCO

PRETO

FACE

Figura 5.5: Estrutura de dados Face Octree

A construo da octree pode ser feita em uma etapa de pr-processamento,


podendo, portanto, ser reutilizada caso a cena seja visualizada a partir de uma nova
posio do observador. Entretanto, provavelmente devido a restries de memria
existentes na poca, a octree era construda e percorrida durante a visualizao da cena.
A idia central do algoritmo percorrer simultanemente a octree a partir de sua
raiz (representando toda a cena) e o volume a partir do ponto mais distante do observador
ao mais prximo (de trs para frente). A cada n visitado, a geometria contida em seu
interior classificada e as seguintes situaes podem ocorrer:
O n contm parcialmente um objeto geomtrico. Neste caso, o n do tipo CINZA e
requer uma nova subdiviso, at que seja encontrado um n do tipo BRANCO,
PRETO ou FACE ou o n atingir um determinado tamanho mnimo (baseado no
nmero de pixels de sua projeo ou tamanho do voxel);
O n no contm nenhum objeto geomtrico. Neste caso, o n do tipo BRANCO e
todos os seus voxels so projetados no plano de imagem (utilizando a tcnica de
Splatting) a partir do voxel mais distante ao mais prximo do observador;

45

O n contm algum objeto geomtrico. Neste caso, o n do tipo PRETO e duas


situaes diferentes podem ocorrer: o objeto geomtrico vazio (s possui a fronteira
definida) ou cheio (contm um slido preenchido). Na primeira situao, a fronteira
do objeto exterior ao n, portanto deve ser tradado como se fosse um n do tipo
BRANCO. Na outra situao, o n projetado de acordo com a cor e transparncia do
objeto;
O n contm uma face de um objeto geomtrico. Nesse caso, o n do tipo FACE e
todos os seus voxels so visitados de trs para frente. Se o voxel estiver do lado de
dentro ou do lado de fora do objeto ele projetado no plano de imagem como se fosse
um n do tipo PRETO ou BRANCO respectivamente. Entretanto, se o voxel estiver na
fronteira do objeto, este cerceado em relao ao voxel e projetado utilizando o
modelo Phong de iluminao local. Observe que, neste caso, o volume prximo a
fronteira do objeto completamente ignorado. Isto pode ser resolvido subdividindo-se
o voxel, muito semelhante ao algoritmo Dividing Cubes [Lorensen e Cline, 87].

5.2.3 Shear-Warp
Em [Schmidt e outros, 99] pode-se encontrar um estudo sobre a integrao do algoritmo
Shear-Warp e Z-Buffer resultando em um algoritmo hbrido. Uma das vantagens desse
algoritmo que a maioria das placas grficas implementam o Z-Buffer em hardware com
eficincia. Este trabalho tem a preocupao de reduzir ao mximo o efeito de aliasing
introduzido durante o processo de amostragem das superfcies. Este problema ocorre
sempre que a resoluo do volume for baixa em comparao com a resoluo da imagem
final visualizada pelo usurio.
A idia principal do algoritmo mostrado na Figura 5.6. Tanto as fatias do
volume como as superfcies poligonais sofrem a transformao de shear, levando a duas
imagem intermedirias independentes que, a seguir, so compostas fatia a fatia. A seguir,
a transformao de warp aplicada na imagem composta levando a imagem final.
Para evitar os problemas de aliasing, as superfcies poligonais devem ser
amostradas em uma resoluo comparvel com a resoluo da imagem final. Para isso, a
transformao de warp deve ser modificada de modo a mapear um pixel da imagem
intermediria em um pixel na imagem final. Isso significa que as dimenses da imagem
intermediria devem ser multiplicadas por dois fatores M e N, o que pode ser
46

interpretado como uma subdiviso de um pixel na imagem intermediria em MxN subpixels. Note, entretanto, que uma das principais vantagens do algoritmo Shear-Warp
realizar a etapa de composio na resoluo da imagem intermediria, que comparvel
s dimenses do dado volumtrico, e no da imagem final que, tipicamente, tem
dimenses maiores.

Figura 5.6: Shear-Warp Hbrido [Schmidt e outros, 99]

Os autores propem trs tipos diferentes de algoritmos para a integrao do Shear-Warp


e Z-Buffer. A diferena bsica est na resoluo utilizada para as imagens intermedirias.
Baixa resoluo significa a resoluo normal da imagem intermediria do algoritmo
Shear-Warp padro. Alta resoluo significa ampliar a imagem intermediria de forma
que um pixel nesta imagem corresponda a um pixel na imagem final. Conforme
comentado anteriormente, isso reduz o efeito de aliasing introduzido na discretizao das
superfcies. Deste modo, os algoritmos propostos podem ser classificados nos seguintes
grupos:
47

Composio em baixa resoluo. Neste caso, a imagem intermediria do volume e das


superfcies so construdas em baixa resoluo, podendo ocasionar alias na imagem
final, caso sua resoluo seja maior que as imagens intermedirias;
Composio em alta resoluo. Neste caso, as duas imagens intermedirias so
construdas em alta resoluo. Esta tcnica pode resultar em um algoritmo ineficiente,
pois no h necessidade de compor toda a cena em alta resoluo quando h
contribuio apenas do volume (no h interferncia de superfcies);
Composio em resoluo dual. Nessa situao, a imagem intermediria das
superfcies construda em alta resoluo, porm a imagem intermediria do volume
pode ser construda em baixa ou alta resoluo, dependendo da influncia de
superfcies. Essa tcnica procura evitar a subdiviso dos pixels quando no h
necessidade.

Com relao ao ltimo tipo de algoritmo (composio dual), os autores utilizam dois
critrios diferentes para avaliar a necessidade de subdiviso dos pixels da imagem
intermediria do volume:
Footprint das superfcies. Nesse caso, todos os pixels sobre a projeo de qualquer
superfcie na imagem intermediria subdividido;
Deteco de regies de alta freqncia. Nesse caso, aplicado um filtro Laplaciano
3x3 sobre a imagem intermediria das superfcies produzindo uma nova imagem onde
as regies de alta freqncia (bordas e partes com iluminao irregular) possuem altas
componentes RGB. Essas regies so detectadas baseadas em um valor escalar
limtrofe fornecido pelo usurio.

Dependendo do tipo de algoritmo utilizado, a etapa de composio pode variar um


pouco. Entretanto, a construo da imagem intermediria das superfcies baseada no
algoritmo Z-Buffer padro, que pode ser realizado por hardware especfico. O resultado
final um buffer de cor e outro de profundidade, com informao da profundidade da
superfcie mais prxima.
A composio propriamente dita feita fatia a fatia, junto com a construo da
imagem intermediria do algoritmo Shear-Warp padro. Isso realizado a partir da fatia
48

mais prxima do observador at a mais distante. Aps processar cada fatia, os algoritmos
contabilizam a contribuio das superfcies, levando em considerao todas as superfcies
existentes entre a fatia corrente e a seguinte. Para isto, uma lista auxiliar construida
ordenando os pixels da imagem intermediria das superfcies por profundidade. Com
isso, no necessrio varrer todo o z-buffer ao ser processada cada fatia do volume.
Uma caracterstica importante da integrao do algoritmo Shear-Warp e Z-Buffer a
dificuldade de implementar transparncia das superfcies. No Z-Buffer padro s h
informao da profundidade da superfcie mais prxima em um determinado pixel. Isso
significa que, durante a etapa de composio, somente a contruibuio de no mximo
uma superfcie pode ser considerada. Para isso, necessrio, alm dos buffers de cor e
profundidade, um buffer de opacidade. Isso pode ser facilmente implementado, porm s
se consegue um nvel de profundidade.
Para que a transparncia das superfcies seja corretamente implementada, pode-se
utilizar a estrutura Zlist-buffer proposta em [Zakaria e Saman, 99]. Nesse trabalho, o zbuffer armazena uma lista de todos os valores de z em cada pixel. Portanto, durante a
etapa de composio, pode-se levar em considerao a contribuio de todas as
superfcies. Entretanto, em muitas aplicao, um nvel de transparncia j pode ser
suficiente. Em [Schmidt e outros, 99] foi implementado um algoritmo que permite at
cinco nveis de transparncia, utilizando uma estrutura semelhante ao Zlist-buffer.

49

6 CONCLUSES

Este trabalho incialmente estuda uma representao matemtica unificada para dados
volumtricos e geomtricos. Conceitualmente, pode-se utilizar o mesmo modelo, baseado
em funes do espao ambiente, para representar esses dados.
A seguir, so estudads algumas tcnicas de converso de representao volumtrica
em geomtrica e vice-versa. A principal motivao para este estudo que em muitas
situaes necessrio extrair superfcies relacionadas com o dado volumtrico. Isto
confirma a necessidade de se utilizar um modelo hbrido, capaz de representar
satisfatoriamente dados heterogneos.
Depois so apresentados os principais conceitos de visualizao volumtrica
tradicional juntamente com os algoritmos bsicos de rendering direto. Finalmente, so
apresentados os problemas relacionados com visualizao de dados heterogneos.
Algumas estratgias de adaptao dos algoritmos bsicos so estudas em mais detalhes,
buscando, assim, analisar as questes mais relevantes dos algoritmos hbridos de
visualizao volumtrica.
A principal motivao para esse estudo , sem dvida, as aplicaes prticas da
visualizao de dados heterogneos. Em muitas situaes os dados volumtricos so
estruturados e isso pode ser muito importante para auxiliar o usurio na visualizao e
interpretao dos dados. Na rea mdica, por exemplo, pode-se tirar partido da estrutura
do dado oferecendo ao usurio ferramentas interativas mais eficientes pois, com uma
representao explcita dos dados, possvel guiar o usurio durante a navegao,
auxiliar o desenvolvimento e implantao de prteses, medir rea e volume de tumores,
auxiliar no planejamento cirrgico etc.
Ainda existem muitos desafios para essa rea. O primeiro deles a caracterstica
exploratria da visualizao volumtrica. Neste ponto, nota-se claramente a diferena
entre fotorealismo, que est preocupado com a imagem final, e a visualizao
volumtrica, que est preocupada com a explorao do dado volumtrico. A visualizao
exploratria requer algoritmos eficientes e computadores bastante rpidos para permitir
interatividade. Alm disso, os dados volumtricos, por serem tipicamente grandes, podem

50

requerer muita memria para serem manipulados, agravando ainda mais o problema da
interatividade.
Um outro importante desafio o desenvolvimento de ferramentas de anlise visando
a identificao automtica de estruturas dentro do volume. Neste caso, muito
importante considerar a existncia de dados heterognos. Uma aplicao prtica o
reconhecimento automtico de tumores em rgos do corpo humano, existncia de
fraturas em ossos etc. Alm disso, a prpria visualizao pode guiar o usurio durante a
anlise, permitindo, por exemplo, focar o estudo de uma fratura em uma pea mecnica
em uma determinada regio definida pelo usurio, baseado nos resultados obtidos durante
a visualizao.

51

7 REFERNCIAS

[Breen e outros, 88] Breen, D., Mauch, S., Whitaker, R., 3D Scan Conversion of CSG
Models Into Distance Volumes, Proceedings of the 1998 Symposium on Volume
Visualization, ACM SIGGRAPH, October 1998, pp. 7-14, <http://waggle.gg.caltech.edu/
~david/Abstracts/3D-scan-conv-abs.html>.
[Drebin e outros, 88] Drebin, R. A., Carpenter, L., Hanrahan, P., Volume Rendering,
Computer Graphics, Volume 22, Number 4, pp. 65-74, 1988.
[Elvis, 92] Elvis, T. Tood, A Survey of Algorithms for Volume Visualization, Computer
Graphics, Volume 26, Number 3, August 1992, pp 194-201.
[Fruhauf, 91] Fruhauf, M., Combining Volume Rendering with Line and Surface
Rendering, Eurographics91, 1991.
[Gerhardt e outros, 98] Gerhardt, A., Paiva, A., Schmidt, A.E., Martha, L.F.; Carvalho,
P.C., Gattass, M., Aspects of 3-D Seismic Data Volume Rendering, Proceedings of the
GOCAD ENSG Conference 3D Modeling of Natural Objects: A Challenge for the
2000s, Nancy, Frana, 04 a 05 de junho de 1998.
[Gomes e Velho, 92] Gomes, J. M., Velho, L., Implicit Objetcts in Computer Graphics,
Monografia de Matemtica no 53, Instituto de Matemtica Pura e Aplicada, 1992.
[Gomes e Velho, 97] Gomes, J. M., Velho, L., Image Processing for Computer Graphics,
Springer-Verlag, 1997.
[Gouraud, 71] Gouraud, H., Continuos Shading of Curved Surfaces, IEEE Transactions
of Computers, Vol. 20, No. 6, pp. 623-629, 1971.
[Kaufman, 87] Kaufman, A. E., Efficient algorithms for 3D scan-conversion of
parametric curves, surfaces and volumes, Computer Graphics (SIGGRAPH87 Proc)
21(4), 171-179, 1987.
[Kaufman e outros, 90] Kaufman, A., Yagel, R., Cohen. D., Intermixing Surface and
Volume RenderingI, 3D Imaging in Medicine: Algoritms, Systems and Applications,
K.H. Hohne, H. Fuchs, S.M. Pizer, Springer-Verlag, 217-228, 1990.

52

[Kaufman e Sobierajski, 94] Kaufman, A. E., Sobierajski, L. M., Continuum Volume


Display. Computer Visualization: Graphics Techniques for Scientific and Engineering
Analysis, Chapter 6, Edited by Richard S. Gallagher, pp171-202, 1994.
[Kaufman, 97] Kaufman, A. E., Volume Visualization: Principles and Advances.
SIGGRAPH97 Course Notes, 1997.
[Lacroute, 95] Lacroute, P., Fast Volume Rendering Using a Shear-Warp Factorization
of theViewing Transformation, Ph.D. Thesis, Stanford University, 1995.
[Levoy, 88] Levoy, M., Display of Surfaces from Volume Data, IEEE Computer
Graphics and Applications, Vol. 5, No. 3, pp 29-37, 1988.
[Levoy, 90a] Levoy, M., A Hybrid Ray Tracer for Rendering Polygon and Volume Data,
IEEE Computer Graphics and Applications, Vol. 10, No. 2, March, 1990, pp. 33-40.
[Levoy, 90b] Levoy, M., Ray Tracing of Volume Data, SIGGRAPH90 Course Notes,
Volume Visualization Algorithms and Archtectures, August, 1990, pp. 120-147.
[Levoy, 90c] Levoy, M., Efficient Ray Tracing of Volume Data, Computer Graphics
(Proceedings of SIGGRAPH90), pp. 157-167, 1990.
[Lorensen e Cline, 87] Lorensen, W. E., Cline, H. E., Marching Cubes: A High
Resolution 3D Surface Construction Algorithm, Computer Graphics (Proceedings of
SIGGRAPH87), Vol. 21, No. 4, pp 163-169, 1987.
[Miyazawa e Koyamada, 92] Miyazawa, T., Koyamada, K., A High-speed Integrated
Renderer for Interpreting Multiple 3D Volume Data, The Journal of Visualization and
Computer Animation, 3, 65-83, 1992.
[Novins e outros, 90] Novins, K. L., Sillion, F., Greenberg, D. P., An efficient method for
volume rendering using perspective projection. Computer Graphics, Vol. 24, No. 5, pp
95-102.
[Paiva e outros, 99] Paiva, A. C., Seixas, R. B., Gattass, M., Introduo Visualizao
Cientifica, Monografia em Cincia da Computao, no 3/99, Departamento de
Informtica, PUC-Rio, 1999.
[Pavlidis, 78] Pavilidis, T., Filling algorithms for raster graphics, Computer Graphics
(SIGGRAPG78 Proc.) 12(3), 161-166, 1978.

53

[Phong, 75] Phong, B. T., Illumination

for

Computer

Generated

Pictures,

Communications of ACM, Vol. 18, No. 6, pp. 311-317, 1975.


[Porter e Duff, 84] Porter, T., Duff, T., Compositing Digital Images,

Computer

Graphics, Vol. 18, No. 3., July, 1984.


[Robb e outros, 99] Robb, R. A., Camp, J. J., Hanson, D. P., Computer Aided Surgery
and Treatmeny Planning at the Mayo Clinic, Biomedical Imaging Resource, Mayo
Foundation/Clinic, Rochester, MN, 1999, http://www.mayo.edu/bir/reprints/CAS.html.
[Schmidth e outros, 99] Schmidth, A. E., Gattass, M., Carvalho, P. C., Combined 3D
Visualization of Volume Data and Polygonal Surfaces Using a Shear-Warp Algoritm,
Monografia em Cincia da Computao, no 5/99, Departamento de Informtica, PUCRio, 1999.
[Speray e outros, 90] Speray, D., Kennon, S., Volume Probes: Interactive Data
Exploration on Arbitrary Grids, Computer Graphics, Vol. 24, No. 5, pp 1-12, 1990.
[Tost e outros, 93] Tosti, Dani, Puig, A., Navazo, I., Visualization of mixed scenes based
on volume and surfaces. Fourth Eurographics Workshop on Rendering, pp. 281-293,
1993.
[Upson e Keeler, 88] Upson, C., Keeler, M., V-Buffer Visible Volume Rendering,
Computer Graphics, Vol. 22, No. 4, August, 1988.
[Velho e outros, 95] Velho, L., Terzopoulos, D., Gomes, J., Constructing Implict Shape
Models from Boundary Data, Computer Vision and Image Processing, Vol. 57, No. 3,
pp. 220-234, May, 1995.
[Wang e Kaufman, 93] Wang, S., Kaufman, A., Volume Sampled Voxelization of
Geometric Primitives, Visualization 93 Proceedings, pp 78-84, San Jose, CA, October,
1993.
[Westover, 90] Westover, L., Footprint Evaluation for Volume Rendering, Computer
Graphics (Proc. SIGGRAPH), 24 (4), pp. 144-153, August, 1990.
[Zakaria e Saman, 99] Zakaria, M. N., Saman, M. Y., Hybrid Shear-Warp Rendering,
Proceedings of the ICVC, Goa, India (1999).

54

Você também pode gostar