Vous êtes sur la page 1sur 215

1

Universidade Federal de So Carlos


Centro de Cincias Exatas e de Tecnologia
Programa de Ps-Graduao em Cincia da Computao

Anlise de Imagens Tomogrficas da Cincia


do Solo em Ambiente de Realidade Virtual

LEONARDO CASTRO BOTEGA

So Carlos
Agosto/2008

Ficha catalogrfica elaborada pelo DePT da


Biblioteca Comunitria da UFSCar

B748ai

Botega, Leonardo Castro.


Anlise de imagens tomogrficas da Cincia do Solo em
ambiente de realidade virtual / Leonardo Castro Botega. -So Carlos : UFSCar, 2009.
213 f.
Dissertao (Mestrado) -- Universidade Federal de So
Carlos, 2008.
1. Processamento de imagens. 2. Realidade virtual. 3.
Tomografia computadorizada. 4. Porosidade do solo. I.
Ttulo.
CDD: 006.6 (20a)

AGRADECIMENTOS
Primeiramente a Deus pelo dom da vida e sustentao de minhas foras.
Aos meus pais Joo Luiz Botega e Salete Piemonte de Castro Botega, os quais
depositaram grande confiana e apoio em minha formao acadmica.
A minha irm Mariana de Castro Botega, cujos conselhos contriburam imensamente
para a continuidade do presente trabalho.
Ao meu orientador Dr. Paulo Estevo Cruvinel pela excelente orientao, pacincia e
sbios conselhos.
Ao Dr. lvaro Macedo da Silva pelo apoio e colaborao cientfica em cesso das
imagens tomogrficas de resoluo micromtrica utilizadas neste trabalho.
A minha companheira Claudia Cristina da Silveira Campos pela pacincia, ateno e
cuidado.
Aos amigos da Universidade Federal de So Carlos: Ricardo Rios, Marcio Campos,
Reginaldo Gotardo, Alexandre Melo, Vincius Durelli, Tatiane Nogueira, Cristiane
Santana, Simone Borges, Talita Perciano, Dbora Correa, Alexandre Levada e Eliane
Pereira pelo companheirismo e constante troca de experincias e conhecimento.
Aos amigos da Embrapa Instrumentao Agropecuria: Maurcio F. L. Pereira e
Marcos A. M. Laia pela amizade e auxlio em dvidas diversas.

RESUMO
Este trabalho apresenta um ambiente de Realidade Virtual dedicado anlise de
imagens tomogrficas da Cincia do Solo. Sua arquitetura utiliza modelos
provenientes de um algoritmo de reconstruo volumtrica (3-D) adicionado a
diversos processos grficos de manipulao e visualizao, de tal forma a possibilitar
imerso e interao do usurio com a cena virtual. Sua validao foi realizada com
base em um estudo de caso envolvendo anlise de porosidade de amostras de solos
agrcolas, os quais apresentam caminhos preferenciais para o fluxo de gua e solutos
(fingering). Resultados ilustram a verificao consistente dos caminhos preferenciais
das amostras de solos agrcolas, analisadas com base no ambiente desenvolvido.
PALAVRAS-CHAVE: Processamento de Imagem, Realidade Virtual, Tomografia
Computadorizada, Porosidade de Solos Agrcolas.

ABSTRACT
This work presents a Virtual Reality environment dedicated to the analysis of
tomographic images of Soil Science. Its architecture uses models proceeding from a
volumetric (3-D) reconstruction algorithm, summed with several graphics processes
of manipulation and visualization, in a way to provide immersion and interaction of
the user with the virtual scene. Its validation was performed based on a case study
involving the analysis of the porosity of the agricultural soil samples, which presents
preferential paths for the water and solute flow (fingering). Results illustrate the
consistent verification of the preferential paths of the agricultural soil samples,
analyzed based on the developed environment.
KEYWORDS: Image Processing, Virtual Reality, Computerized Tomography,
Porosity of Soil Samples.

SUMRIO
Introduo ....................................................................................................................12
Captulo I - Realidade Virtual......................................................................................14
1.1. Sistemas de RV .............................................................................................17
1.2. Imerso, Interao e Envolvimento ..............................................................21
1.3. Modelagem de Ambientes Virtuais ..............................................................22
1.4. Os Dispositivos de Realidade Virtual ...........................................................47
Captulo II - Tomografia Computadorizada e sua Aplicao na Cincia de Solos .....64
2.1. Histrico da Tomografia Computadorizada..................................................64
2.2. Procedimentos de Tomografia Computadorizada.........................................66
2.3. Algoritmos de Reconstruo.........................................................................68
Captulo III - Introduo API Java3D em Contextualizao ao Desenvolvimento de
Sistemas de Realidade Virtual .....................................................................................86
3.1. Universos Virtuais ........................................................................................87
3.2. Grafos de Cena..............................................................................................87
3.3. Principais Classes da API Java 3D ...............................................................88
3.4. Geometrias ....................................................................................................90
3.5. Representao de Objetos .............................................................................91
3.6. Aparncia e Material.....................................................................................93
3.7. Iluminao.....................................................................................................94
3.8. Textura ..........................................................................................................94
3.9. Interao........................................................................................................96
Captulo IV - Estruturao Conceitual e Metodolgica...............................................98
4.1. Objetivo.........................................................................................................98
4.2. Metodologia ..................................................................................................99
4.3. Dispositivos no convencionais empregados..............................................136
Captulo V - Resultados .............................................................................................141
5.1. Reconstruo...............................................................................................141
5.2. Ambiente de RV .........................................................................................145
5.3. Transformaes Fsicas Lineares ...............................................................147
5.4. Transparncia .............................................................................................150
5.5. Polgonos.................................................................................................... 155
5.6. Threshold ....................................................................................................160
5.7 Extrao de atributos...................................................................................165
5.8 Iluminao...................................................................................................172
5.9. Colorizao .................................................................................................178
5.10. Manipulao Convencional de Cena e de Modelo ...................................180
5.11. Manipulao No Convencional de Cena e de Modelo............................181
5.12. Visualizao..............................................................................................185
5.13. Estudo de Caso..........................................................................................188
5.14. Validao do Ambiente ............................................................................195
Captulo VI - Concluses.......................................................................................... 196
Referncias Bibliogrficas .........................................................................................200
ANEXO I ...................................................................................................................210

LISTA DE FIGURAS
Figura 1 - Representao do processo de reconhecimento dos marcadores e o
posicionamento de modelos virtuais . ........................................................20
Figura 2 - Representao da utilizao de janelas de seleo em modelos
bidimensionais. ..........................................................................................23
Figura 3 - Foto area de monumento em dois instantes diferentes...............................40
Figura 4 - Representao de deslocamentos devido s diferentes distncias entre dois
pontos .........................................................................................................40
Figura 5 - Relacionamento entre as paralaxes de um ponto A .....................................45
Figura 6 - Representao do funcionamento de um CRT .............................................50
Figura 7 - HMD CRT de 2 telas desenvolvido na NASA...............................................50
Figura 8 - Esquema dos componentes formadores dos monitores LCD.......................52
Figura 9 - Exemplo de HMD com duas telas LCD e dois headphones.........................52
Figura 10 - Representao da movimentao das cargas positivas e negativas para a
formao da luz..........................................................................................53
Figura 11 - Representao de HMD OLED com duas telas e dois headphones ...........53
Figura 12 - Representao de uma Responsive Workbench..........................................56
Figura 13 - Representao do funcionamento de uma CAVE.......................................57
Figura 14 - 5DTGlove com sensores magnticos ........................................................60
Figura 15 - Impulse Glove com rastreamento ptico ...................................................60
Figura 16 - Representao da luva digital com sensores mecnicos ............................61
Figura 17 - Luva digital com rastreamento acstico.....................................................62
Figura 18 - Representao de uma CyberGlove com sensores inerciais ......................62
Figura 19 - Ilustrao da tomografia de transmisso ....................................................68
Figura 20 - Representao dos feixes paralelos incidindo sobre f(x, y)........................69
Figura 21 - Projeo paralela de f(x,y) para a Transformada de Radon........................70
Figura 22 - Teorema das seces de Fourier ................................................................73
Figura 23 - Procedimento de varredura de um plano de um objeto tridimensional, no
mtodo da retroprojeo filtrada ................................................................76
Figura 24 - Projeo bidimensional a partir de aquisio tomogrfica tridimensional.79
Figura 25 - Ilustrao do Teorema das seces de tridimensionais de Fourier ...........80
Figura 26 - Tcnica de sobreposio e interpolao de planos na reconstruo ..............
tridimensional. ............................................................................................80
Figura 27 - Exemplo de interpolao e aproximao por B-Wavelets......................... 82
Figura 28 - Representao da estrutura hierrquica de um Grafo de Cena .................88
Figura 29 - Representao das principais classes da API Java3D................................90
Figura 30 - Representao de trecho de cdigo que denota um Loader Wavefront ....92
Figura 31 - Modelos de representao de objetos ........................................................92
Figura 32 - Representao de trecho de cdigo que demonstra a declarao de
mtodos da classe Appearance .................................................................95
Figura 33 - Representao de trecho de cdigo que demonstra o uso de mtodos da
classe Material............................................................................................96
Figura 34 - Representao de trecho de cdigo que ilustra o uso de iluminao....... ..97
Figura 35 - Representao de trecho de cdigo que ilustra mtodos de interao, onde
um objeto OrbitBehavior ...........................................................................98
Figura 36 - Viso geral do sistema de Realidade Virtual dedicado inspeo de
amostras tomogrficas de solos agrcolas ..................................................99

Figura 37 - Diagrama das classes que compem o trabalho e suas relaes. .............100
Figura 38 - Minitomgrafo da Embrapa Instrumentao Agropecuria.....................101
Figura 39 - Representao do processo de reconstruo tridimensional, desde
obteno das fatias bidimensionais e a formao de matrizes
tridimensionais, at a fase de interpolao utilizando-se de B-Splines (BWavelets)..................................................................................................103
Figura 40 - Viso geral do ambiente de Realidade Virtual, onde o modelo 3-D
reconstrudo tratado sob diversas tcnicas imersivas e interativas .......107
Figura 41 - Representao da Manipulao Convencional ................................................. 116
Figura 42 - Representao da Manipulao No Convencional ........................................ 121
Figura 43 - Representao do fluxo dos dados durante o processo de importao de
arquivos Wavefront na classe Loader.......................................................136
Figura 44 - Luva de dados P5Glove da EssentialReality............................................138
Figura 45 - Webcam Clone 11090 ..............................................................................139
Figura 46 - Head Mounted Display Innovatek V-490 ................................................140
Figura 47 - Imagens das amostras reconstrudas em 2-D com o algoritmo de
Retroprojeo Filtrada e adotadas para o desenvolvimento do presente
trabalho.....................................................................................................142
Figura 48 - Imagens filtradas com o algoritmo adaptativo atravs da Transformada
Wavelet Daubechies com uma janela de 72 coeficientes.........................143
Figura 49 - Imagens das amostras reconstrudas em 2-D com o algoritmo de
Retroprojeo Filtrada e adotadas para o desenvolvimento do presente
trabalho.....................................................................................................144
Figura 50 - Imagens das amostras reconstrudas em 3-D com o algoritmo de BWavelets adotadas para o desenvolvimento do presente trabalho............145
Figura 51 - Representao da interface de RV ...........................................................146
Figura 52 - Resultado da aplicao de translao como transformao fsica sob os
parmetros: x=2, y=0 e z=0. ....................................................................147
Figura 53 - Resultado da aplicao de rotao como transformao fsica sob os
parmetros: x=1, y=0, z=0 e ngulo=30. ................................................148
Figura 54 - Resultado da aplicao de escala como resultado de transformao fsica
sob os parmetros: x=2, y=2 e z=2. .........................................................148
Figura 55 - Resultado da aplicao de espelhamento como transformao fsica,
atravs de operao de escala, sob os parmetros: x=-1, y=1 e z=1. .......149
Figura 56 - Resultado da aplicao de alongamento como transformao linear
atravs de operao de escala, sob os parmetros: x=2, y=1 e z=1. ........149
Figura 57 - Resultado da aplicao de Transparncia na amostra de adubo sob o
coeficiente Suave (0,2).............................................................................150
Figura 58 - Resultado da aplicao de Transparncia na amostra de adubo sob o
coeficiente Translcido (0,5). ..................................................................151
Figura 59 - Resultado da aplicao de Transparncia na amostra de adubo sob o
coeficiente Transparente (0,9)..................................................................151
Figura 60 - Resultado da aplicao de Transparncia na amostra de argila sob o
coeficiente Suave (0,2).............................................................................152
Figura 61 - Resultado da aplicao de Transparncia na amostra de argila sob o
coeficiente Translcido (0,5). ..................................................................152
Figura 62 - Resultado da aplicao de Transparncia na amostra de argila sob o
coeficiente Transparente (0,9)..................................................................153

Figura 63 - Resultado da aplicao de Transparncia na amostra de argila sob o


coeficiente Suave (0,2).............................................................................153
Figura 64 - Resultado da aplicao de Transparncia na amostra de argila sob o
coeficiente Translcido (0,5). ..................................................................154
Figura 65 - Resultado da aplicao de Transparncia na amostra de argila sob o
coeficiente Transparente (0,9)..................................................................154
Figura 66 - Resultado da aplicao da classe Polgonos sobre uma amostra de
cimento sob exibio de faces (coeficiente POLYGON_FACES)..........155
Figura 67 - Resultado da aplicao da classe Polgonos sobre uma amostra de
cimento sob exibio de arestas (coeficiente POLYGON_LINES). .......156
Figura 68 - Resultado da aplicao da classe Polgonos sobre uma amostra de
cimento sob exibio de nuvem de pontos (coeficiente
POLYGON_POINTS). ............................................................................156
Figura 69 - Resultado da aplicao da classe Polgonos sobre uma amostra de cimento
sob exibio de faces (coeficiente POLYGON_FACES)........................157
Figura 70 - Resultado da aplicao da classe Polgonos sobre uma amostra de cimento
sob exibio de arestas (coeficiente POLYGON_LINES). .....................157
Figura 71 - Resultado da aplicao da classe Polgonos sobre uma amostra decimento
sob exibio de nuvem de pontos (coeficiente POLYGON_POINTS). ..158
Figura 72 - Resultado da aplicao da classe Polgonos sobre uma amostra de solo
degradado sob exibio de faces (coeficiente POLYGON_FACES). .....158
Figura 73 - Resultado da aplicao da classe Polgonos sobre uma amostra de solo
degradado sob exibio de arestas (coeficiente POLYGON_LINES).....159
Figura 74 - Resultado da aplicao da classe Polgonos sobre uma amostra de solo
degradado sob exibio de nuvem de pontos (coeficiente
POLYGON_POINTS). ............................................................................159
Figura 75 - Resultado da aplicao do limiar de 200-255 da classe Threshold sobre
a imagem tomogrfica da amostra de areia..............................................160
Figura 76 - Resultado da aplicao do limiar 100-199 da classe Threshold sobre a
imagem tomogrfica da amostra de areia. ...............................................161
Figura 77 - Resultado da aplicao do limiar 10-99 da classe Threshold sobre a
imagem tomogrfica da amostra de areia. ...............................................161
Figura 78 - Resultado da aplicao do limiar 200-255 da classe Threshold sobre a
imagem tomogrfica da amostra de solo degradado................................162
Figura 79 - Resultado da aplicao do limiar 100-199 da classe Threshold sobre a
imagem tomogr ........................................................................................162
Figura 80 - Resultado da aplicao do limiar 10-99 da classe Threshold sobre a
imagem tomogrfica da amostra de solo degradado................................163
Figura 81 - Resultado da aplicao do limiar 200-255 da classe Threshold sobre a
imagem tomogrfica da amostra de cimento. ..........................................163
Figura 82 - Resultado da aplicao do limiar 100-199 da classe Threshold sobre a
imagem tomogrfica da amostra de cimento. ..........................................164
Figura 83 - Resultado da aplicao do limiar 10-99 da classe Threshold sobre a
imagem tomogrfica da amostra de cimento. ..........................................164
Figura 84 - Resultado da obteno de dados da amostra de adubo: (a) Amostra (b)
Dados obtidos...........................................................................................166
Figura 85 - Resultado da obteno de dados da amostra de argila: (a) Amostra (b)
Dados obtidos...........................................................................................166

Figura 86 - Resultado da obteno de dados da amostra de areia: (a) Amostra (b)


Dados obtidos...........................................................................................167
Figura 87 - Resultado da obteno de dados da amostra de argila: (a) Amostra (b)
Dados obtidos...........................................................................................167
Figura 88 - Resultado da obteno de dados da amostra de cimento: (a) Amostra,
(b) Dados obtidos .....................................................................................168
Figura 89 - Resultado da obteno de dados da amostra de solo degradado: (a)
Amostra, (b) Dados obtidos .....................................................................168
Figura 90 - Resultado da obteno de dados da amostra de solo degradado: (a)
Amostra, (b) Dados obtidos. ....................................................................169
Figura 91 - Resultado da obteno de dados da amostra de cimento: (a) Amostra,
(b) Da .......................................................................................................169
Figura 92 - Resultado da obteno de dados da amostra de solo degradado: (a)
Amostra, (b) Dados obtidos. ....................................................................170
Figura 93 - Resultado da obteno de dados da amostra de solo (a) Amost .............170
Figura 94 - Resultado da obteno de dados da amostra de solo degradado: (a)
Amostra, (b) Dados obtidos .....................................................................171
Figura 95 - Resultado da obteno de dados da amostra de vidro..............................171
Figura 96 - Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de
solo degradado com os parmetros: Fronteiras=(10,10,10); Raio=90 .....172
Figura 97 - Resultado da aplicao de fonte de luz Direcional sobre uma amostra de
solo degradado com os parmetros: Fronteiras=(10,10,10); Raio=90;
Direo da luz = (0, 0, -44). .....................................................................173
Figura 98 - Resultado da aplicao de fonte de luz Pontual sobre uma amostra de solo
degradado com os parmetros: Fronteiras = (10, 10, 10); Raio = 90;
Posio = (10, 10, 0); Constante de atenuao = 1. .................................173
Figura 99 - Resultado da aplicao de fonte de luz Angular sobre uma amostra de solo
degradado com os parmetros: Fronteiras = (10, 10, 10); Raio = 90;
Direo = (-20, 0, 0); Concentrao = 4; Angulo de espalhamento = 60;
Posio = (20, 0, 0); Constante de atenuao = 1. ...................................174
Figura 100 - Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de
cimento com os parmetros: Fronteiras = (10 ,10 ,10); Raio = 90. .........174
Figura 101 - Resultado da aplicao de fonte de luz Direcional sobre uma amostra de
cimento com os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo
= (0, 0, -50). .............................................................................................175
Figura 102 - Resultado da aplicao de fonte de luz Pontual sobre uma amostra de
cimento com os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Posio
= (0, ..........................................................................................................175
Figura 103 - Resultado da aplicao de fonte de luz Angular sobre uma amostra de
solo degradado com os parmetros: Fronteiras =(10, 10, 10); Raio = 90;
Direo = (0, -20, -10); Concentrao = 1; ngulo de espalhamento = 45;
Posio = (10, 20, -10); ...........................................................................176
Figura 104 - Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de
solo com os parmetros: Fronteiras = (10, 10, 10); Raio = 90.................176
Figura 105 - Resultado da aplicao de fonte de luz Direcional sobre uma amostra de
solo com os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo =
(0, 0, -10)..................................................................................................177

10

Figura 106 - Resultado da aplicao de fonte de luz Pontual sobre uma amostra de
solo com os parmetros: Fronteiras = (10, 10, 10); Raio = 10; Posio =
(10, 0, 0); Atenuao Linear = 1. .............................................................177
Figura 107 - Resultado da aplicao de fonte de luz Angular sobre uma amostra de
solo com os parmetros: Fronteiras=(10,10,10); Raio=90; Direo=(10,0,-10); Concentrao=1; ngulo de espalhamento=90; Posio=(10, 0,
10); Atenuao constante=1.....................................................................178
Figura 108 - Resultado da aplicao da classe Colorizao sobre amostra de solo
degradado sob os coeficientes RGB = (147, 59, 41), aplicados em sua
totalidade..................................................................................................179
Figura 109 - Resultados da aplicao da classe Colorizao sobre amostra de solo
degradado sob os coeficientes RGB = (92, 113, 59), aplicados em sua
totalidade .................................................................................................179
Figura 110 - Resultado da aplicao da classe Colorizao sob os coeficientes
RGB = (248, 6, 6), sobre apenas uma determinada regio da amostra
de solo degradado ....................................................................................180
Figura 111 - Representao da rotao descrita em torno do eixo pontilhado
definido pela coordenada da LED=(-1.0,1.0,0.0) passando pela origem
dos eixo ....................................................................................................183
Figura 112 - Representao da rotao descrita em torno do eixo pontilhado
definido pela coordenada da LED=(1.0,1.0,0.0) passando pela origem
dos eixos...................................................................................................184
Figura 113 - Representao da rotao descrita em torno do eixo pontilhado
definido pela coordenada da LED = (0.0, 1.0, 0.0) passando pela origem
dos eixos...................................................................................................185
Figura 114 - Visualizao por Anaglifo de uma imagem de amostra de adubo, onde a
imagem final composta pelas vises do olho esquerdo (vermelho) e
olho direito (azul).....................................................................................186
Figura 115 - Resultado da aplicao de Realidade Aumentada da classe Visualizao
sobre uma imagem tomogrfica de amostra de vidro ..............................186
Figura 116 - Simulao do efeito provocado pelo uso do HMD para a visualizao de
amostras tridimensionais..........................................................................187
Figura 117 - Resultado do estudo de caso em uma imagem de solo degradado ........191
Figura 118 - Resultado do estudo de caso em uma nova imagem de solo degradado.193
Figura 119 - Representao visual dos mapas de caminhos preferenciais do fluxo de
gua e solutos, aps a recuperao dos dados armazenados no arquivoo.194

11

LISTA DE TABELAS
Tabela 1 Representao das amostras de valores lidos pelo dispositivo, mdia dos
mesmos, varincia e novos valores adotados para cada eixo de cada um
dos oito LEDs da P5Glove .....................................................................182
Tabela 2 - Resultado de uma rotao de 180, considerando a posio inicial da
LED = (-1,0, 1,0, 0,0), sendo a origem dos eixos (0, 0, 0) e a posio
inicial da amostra em um ponto especfico = (0, 0, 0).............................183
Tabela 3 - Resultado de uma rotao de 180, considerando a posio inicial da
LED = (1,0, 1,0, 0,0), sendo a origem dos eixos (0, 0, 0) e a posio
inicial da amostra em um ponto especfico = (0, 0, 0)..............................184
Tabela 4 - Resultado de uma rotao de 180, considerando a posio inicial da
LED = (0,0, 1,0, 0,0), sendo a origem dos eixos (0, 0, 0) e a posio
inicial da amostra em um ponto especfico = (0, 0, 0)..............................185

12

Introduo

A anlise de imagens tomogrficas para inspeo do interior de um corpo ou


objeto de forma no destrutiva, tornou-se uma prtica altamente difundida na rea de
visualizao cientfica. Tal prtica passou a ser de grande importncia em muitas
aplicaes. Entretanto, tem-se constatado que, efetivamente, o uso de imagens
bidimensionais muitas vezes no suficiente para uma anlise completa dos dados,
sendo necessria a utilizao de imagens tridimensionais.
Paralelamente, no Brasil, tem-se visto poucas unidades de pesquisa com o
desenvolvimento de projetos utilizando Realidade Virtual, destinados a potencializar e
complementar as tcnicas de analise requeridas em diagnsticos no invasivos. Parte
desta limitao se deve s dificuldades tcnicas e ao seu alto custo. Porm, tem sido
observada neste cenrio de realidades, a interao envolvendo diferentes reas do
conhecimento, com o propsito de aperfeioar e democratizar o uso desses recursos
no processo ensino-treinamento-aprendizagem.
A literatura registra um conjunto de trabalhos que envolvem, em seu contedo,
o desenvolvimento de ambientes de Realidade Virtual e Tomografia Reconstrutiva.
Esses trabalhos envolvem reconstruo de imagens tomogrficas, bidimensionais ou
tridimensionais, e foram desenvolvidos em diversas instituies nacionais e
internacionais. Sistemas como descrito por Perdigo e colaboradores, no qual modelos
tridimensionais so gerados a partir de imagens mdicas (Perdigo et al, 2005),

13

algoritmos de interpolao (Prado e Traina, 1996), reconstruo de mandbula


(Villamil et al, 2005), implementao de interface grfica em Java para reconstruo
tomogrfica em medicina nuclear (Silva e Andrade, 2004), ambiente virtual para
planejamento de hepatectomia (Benes e Bueno, 2003) e prototipagem a partir de
imagens reconstrudas (Bazan, 2004) (Souza et al, 2001), dentre outros.
O presente trabalho apresenta como objetivo a organizao e implementao
de um ambiente sinttico, que possibilite a visualizao, anlise e manipulao de
amostras produzidas por um algoritmo de reconstruo tridimensional de imagens
tomogrficas de raios-x, atravs de ferramentas grficas computacionais e dispositivos
no convencionais de Realidade Virtual, visando imerso e interao do usurio com
as entidades da cena e possibilitando a anlise no invasiva de amostras de solos
agrcolas. Assim, o presente trabalho organizado da seguinte forma:
No Captulo 1 realizada uma reviso bibliogrfica sobre Realidade Virtual,
abordando seu histrico, conceitos, sistemas, dispositivos e implementaes, desde
seu surgimento em meados dos anos 70 at os dias atuais.
O Captulo 2 traz uma descrio terica detalhada das tcnicas de Tomografia
Computadorizada de raios-x e sua aplicao em Cincia de Solos, abordando desde a
aquisio de projees, at a reconstruo bidimensional e tridimensional de imagens
de amostras agrcolas.
O Captulo 3 realiza uma descrio da interface de programao utilizada para
a implementao do ambiente de anlise de amostras tridimensionais, demonstrando
sua aplicabilidade no desenvolvimento de sistemas de Realidade Virtual.
J o Captulo 4 apresenta a Estruturao Conceitual e Metodolgica do
presente trabalho, descrevendo em detalhes todos os processos implementados,
exemplificados sob pseudocdigos.
No Captulo 5 so demonstrados e comentados os Resultados obtidos aps o
desenvolvimento dos processos descritos no captulo anterior. Um estudo de caso
tambm apresentado para a validao do sistema, considerando aplicaes em Cincia
de Solos.
Finalmente, no Captulo 6 so apresentadas as concluses obtidas, levando em
considerao cada etapa do desenvolvimento e a sua aplicabilidade em processos de
anlise de amostras de solos agrcolas, alm da apresentao de temas para trabalhos
futuros.

14

Captulo I
Realidade Virtual

A Realidade Virtual configura-se como uma interface avanada de terceira


gerao para aplicaes computacionais, na qual o usurio pode interagir, em tempo
real, a partir de um ambiente tridimensional sinttico, utilizando dispositivos
multisensoriais (Kirner et al, 1995).
A tecnologia surgiu com o pesquisador Ivan E. Sutherland, o qual desenvolveu
o primeiro sistema grfico interativo, o qual interpreta desenhos como dados de
entrada e realiza associaes com topologias conhecidas, gerando novos desenhos
(Sutherland, 1963). J o termo Realidade Virtual (RV) surgiu em meados dos anos 70,
onde pesquisadores sentiram a necessidade de uma definio para diferenciar as
simulaes computacionais tradicionais dos mundos digitais que comeavam a ser
criados. Nasciam ento as interfaces de terceira gerao, onde interaes eram
produzidas sobre as situaes geradas, utilizando-se de comandos no convencionais,
diferenciando-se das interfaces dotadas apenas de reproduo multimdia, mantidas
at ento por interfaces bidimensionais de primeira e segunda gerao (Krueger,
1977) (Bolt,1980) (Lanier, 1984). O termo bastante abrangente, e logo, acadmicos,
desenvolvedores de software e pesquisadores procuram definir Realidade Virtual
baseados em suas prprias experincias. Pimentel define Realidade Virtual como
sendo o uso de tecnologia para convencer o usurio de que ele est em outra

15

realidade. Em geral, Realidade Virtual refere-se a uma experincia interativa e


imersiva baseada em imagens grficas tridimensionais geradas em tempo real por
computador (Pimentel, 1995).
Machover afirma que a qualidade dessa experincia em Realidade Virtual
essencial, pois deve estimular ao mximo, de forma criativa e produtiva, o usurio. Os
sistemas de Realidade Virtual tambm precisam fornecer uma reao de forma
coerente aos movimentos do participante, tornando a experincia consistente
(Machover, 1994). O principal objetivo desta nova tecnologia fazer com que o
participante desfrute de uma sensao de presena no mundo virtual (Jacobson, 1994).
Para propiciar esta sensao de presena os sistemas de RV integram sofisticados
dispositivos, os quais podem ser aplicados em ferramentas das mais diversas reas,
contribuindo para a anlise e manipulao de representaes virtuais. Estes
dispositivos podem ser luvas de dados (Sun, 2007) (Immersion, 2007) e capacetes
imersivos (Head Mounted Displays) (Sensics, 2007) (Darpa, 2007)(VRealities, 2007).
Na prtica, a RV permite que o usurio navegue e observe um mundo tridimensional
sob seis graus de liberdade (6 DOF)1. Isso exige a capacidade do software de definir, e
do hardware de reconhecer, seis tipos de movimento: para frente/para trs,
acima/abaixo, esquerda/direita, inclinao para cima/para baixo, angulao
esquerda/ direita e rotao esquerda/ direita. Na essncia, a RV um espelho da
realidade fsica, na qual o indivduo existe em trs dimenses, tem a sensao de estar
imerso no ambiente e tem a capacidade de interagir com o mundo ao seu redor. Os
dispositivos de RV simulam essas condies, chegando ao ponto em que o usurio
pode tocar virtualmente os objetos de um mundo virtual e fazer com que eles
respondam, ou mudem, de acordo com suas aes (Von Schweber, 1995).
No final de 1986 uma equipe da NASA j possua um ambiente virtual que
permitia aos usurios ordenar comandos pela voz, escutar fala sintetizada e som 3-D,
e manipular objetos virtuais diretamente atravs do movimento das mos. O mais
importante que atravs desse trabalho verificou-se a possibilidade de
comercializao de um conjunto de novas tecnologias, com o custo de aquisio e
desenvolvimento cada vez mais acessvel (Pimentel, 1995).
1

DOF (Degrees of freedom): Graus de liberdade, relativo aos movimentos de translao e rotao do
dispositivo de RV.

16

A conscientizao de que os empreendimentos da NASA tornavam-se


tecnologias comercializveis deu incio a inmeras pesquisas em RV no mundo
inteiro. Organizaes variando de empresas de software at grandes corporaes de
informtica comearam a desenvolver e vender produtos e servios ligados
Realidade Virtual. Em 1987, a VPL Research Inc. comeou a vender capacetes e
luvas digitais e em 1989 a AutoDesk apresentava o primeiro sistema de RV baseado
num computador pessoal (PC) (Jacobson, 1994).
Apesar da RV ter sido inventada h mais de 30 anos ela tem a cada ano
evoludo substancialmente. Seu custo permaneceu alto durante muito tempo devido
aos equipamentos de alta tecnologia envolvidos. Entretanto, a evoluo das indstrias
de computadores e o grande avano tecnolgico possibilitaram a utilizao da RV a
um preo acessvel, cerca de metade dos custos de dez anos atrs, fazendo com que
deixasse de ser exclusividade de instituies de pesquisa ou governamentais
(Machado, 1995).
No Brasil, um dos primeiros grupos de pesquisa em Realidade Virtual (RV)
foi organizado no Departamento de Computao da Universidade Federal de So
Carlos (DC/UFSCar), criado em outubro de 1995 (Kirner, 1995). Seu principal
projeto, denominado AVVIC-PROTEM-CC, baseou-se na criao de um ambiente e
aplicaes de pesquisa de RV distribuda, provendo melhorias nas condies de
visualizao interativa e compartilhada em ambiente colaborativo. Neste mbito,
encontram-se na literatura da rea trabalhos desenvolvidos que contriburam para a
popularizao das tcnicas e dispositivos de RV no Pas, tais como: Modelagem
dinmica de mundos virtuais (Schneider, 1997), deteco de coliso (Peruzza, 1997),
ambiente virtual interativo tridimensional (Ipolito, 1997), suporte virtual para ensino a
distncia (Kubo, 1997), suporte para aplicaes de RV e visualizao (Santos, 1998).
Ainda neste perodo, junto Escola Politcnica da Universidade de So Paulo
(EPUSP), outro trabalho relevante desenvolvido neste segmento foi a especificao e
anlise de um sistema distribudo de Realidade Virtual, a primeira tese de doutorado
no pas abordando RV (Arajo, 1996).
Atualmente, alm do DC/UFSCar encontram-se no Pas outros grupos que
desenvolvem estudos de RV (aproximadamente 30), onde segundo dados da
Sociedade Brasileira de Computao (http://www.sbc.org), os principais esto
localizados nas seguintes instituies: SVVR/LNCC, TecGraf/PUC, Interlab/USP,

17

LSI/USP, GRV/UNESP, GRVa/UFRJ, GRV/UFU, GMRV/UNIMEP, GRV/UFPE e


LApIS/UNIVEM. Dentre os principais trabalhos desenvolvidos encontram-se: sistema
de reconstruo de mandbula (Villamil et al, 2005), ambiente virtual para
planejamento de hepatectomia (Benes e Bueno, 2003), prototipagem a partir de
imagens reconstrudas (Bazan, 2004) (Souza et al, 2001), ferramentas estereoscpicas
para treinamento mdico (Botega e Nunes, 2005), sistemas de gerao de modelos
tridimensionais a partir de imagens mdicas (Perdigo et al, 2005), Frameworks de
simulao de procedimentos mdicos (Oliveira, 2006), simuladores de segmentao
de imagens (Delfino, 2006), sistema de anlise de amostras agrcolas tridimensionais
(Botega e Cruvinel, 2007), framework de Realidade Aumentada baseado em FPGA
(Lima et al, 2007), gerador de jogos utilizando Realidade Aumentada (Tsuda et al,
2007), integrao de Realidade Aumentada em interao entre robs (Calife et al,
2007), iluminao realstica (Pessoa et al, 2008), gerador de aplicaes multimdia
com RV (Malfatti et al, 2008), estimador de profundidade em ambientes de RV
(Sanches et al, 2008), incorporao de comandos de voz em ambientes de RV
(Pizzolato et al, 2008) e sistema de rastreamento virtual (Teixeira et al, 2008).

1.1. Sistemas de RV
Os sistemas de RV diferem entre si de acordo com os nveis de imerso e de
interatividade proporcionado ao usurio. Esses nveis so alcanados pelos diversos
tipos de dispositivos de entrada e sada de dados do sistema, alm da performance do
computador que o hospeda. Existem algumas formas de classificao dos sistemas de
RV. Shepherd (1993), identifica duas grandes classes: tele-presena, em que um
ambiente sinttico comum compartilhado entre vrias pessoas como uma extenso
ao conceito de trabalho cooperativo suportado por computador, e tele-operao, onde
robs agem sobre um elemento, seja ele um corpo humano ou um produto sendo
manufaturado. Entretanto, esses termos sofreram vrios desdobramentos e mesmo
inverses.
Segundo Arajo (1996), as aplicaes de RV, em geral, so classificadas da
seguinte forma: tele-colaborao, tele-presena e visualizao cientfica 3-D. Sistemas
de tele-colaborao implementados permitem aos usurios compartilhar um mesmo

18

espao e manipular objetos, sentindo o peso dos mesmos por meio de dispositivos de
feedback. Um sistema de tele-presena, ou tele-existncia, estende as capacidades
sensoriais de um usurio humano, bem como a suas habilidades de soluo de
problemas, para um ambiente remoto. Na tele-presena, tambm conhecida como teleoperao ou tele-robtica, o rob executa as tarefas fisicamente separadas de seu
operador humano. As aes executadas pelo operador so traduzidas em aes
executadas pelo rob em seu ambiente remoto, ao mesmo tempo em que emitido
feedback sensorial ao operador humano, que se sente como se estivesse realmente
presente no ambiente remoto. A tele-presena pode ser mais claramente vista como
uma tcnica de viso computacional que reala a funo intermediria entre o
participante e o ambiente (Latta, 1994).
J a Visualizao Cientfica permite que grandes quantidades de dados
gerados por simulaes computacionais sejam traduzidas em representaes visuais
tridimensionais. Dados podem ser renderizados como pontos, linhas, curvas,
superfcies, volumes, cores, e mesmo como sons. Tambm permite a manipulao dos
modelos sob vrios ngulos e posies, permitindo uma ampla explorao de
propriedades matemticas intrnsecas (Upson et al, 1989) (Hultquist et al, 1992)
(Spencer, 2001).
Jacobson (1994) e Pimentel (1995) consideram que sistemas ou estilos de RV
podem ser classificados como RV de Simulao, RV de Projeo, Realidade
Aumentada ou Realada (Augmented Reality), Tele-presena, Displays Visualmente
Acoplados (Visually Coupled Displays) e RV de Mesa.
A RV de Simulao trata-se do estilo mais antigo, originado com os
simuladores de vo desenvolvidos pelos militares americanos aps a Segunda Guerra
Mundial. Um sistema desse tipo basicamente imita o interior de um carro, avio ou
jato, colocando o participante dentro de uma cabine onde se encontram monitores que
apresentam um mundo virtual que reage aos comandos do usurio. Um sistema de RV
de Simulao no processa imagens em estreo, as imagens so geradas de forma
bastante rpida. Em alguns sistemas as cabines so montadas sobre plataformas
mveis, e os controles oferecem feedback ttil e auditivo (Burdea et al, 1994).
A RV de Projeo, tambm conhecida como Realidade Artificial, foi criada
nos anos 70 por Myron Krueger (Krueger, 1977). Na RV de Projeo o usurio est
fora do mundo virtual, mas pode se comunicar com os personagens virtuais. O sistema

19

VIDEOPLACE, criado por Krueger naquela poca, capturava a imagem do usurio e


projetava-a em uma grande tela que representava um mundo virtual nas quais os
usurios podiam interagir uns com os outros ou com os modelos virtuais. Krueger
usou o termo Realidade Artificial para descrever o tipo de ambiente criado pelo seu
sistema, o qual no exigia que o participante vestisse ou usasse dispositivos de
entrada.
J a Realidade Aumentada (Augmented Reality) utiliza os dispositivos no
convencionais de mais baixo custo para promover a imerso e interao do usurio
com modelos 3-D. Utilizando-se de cmeras, marcadores de papel e tcnicas de viso
computacional, esta modalidade de RV captura a cena real onde se encontram os
marcadores, reconhece a estrutura constante nos mesmos e insere o modelo virtual
correspondente na cena real, a qual pode ser visualizada por monitores, HMDs ou
algum sistema de projeo (Kirner et al, 2007). A Figura 1 demonstra o processo de
reconhecimento dos marcadores e o posicionamento dos modelos virtuais na cena
real.
Em sistemas de Realidade Aumentada (RA) mais custosos, utilizam-se
dispositivos visuais transparentes, por onde o usurio pode ver dados, diagramas,
animaes e grficos tridimensionais sem deixar de enxergar o mundo real, obtendo
informaes geradas por computador sobrepostas ao mundo real. Esses displays
transparentes so chamados heads-up-displays (HUDs). O usurio pode, por
exemplo, estar consertando algo e visualizando nos culos os dados necessrios a esta
operao.
A RA visa aprimorar a percepo sensorial e pode ser entendida como uma
forma de interface homem mquina de quarta gerao que no tem um nico foco de
ateno, sendo que a interao se d com o meio de forma global e ampliada. So
caractersticas bsicas de sistemas de RA: o processamento em tempo real, a
combinao de elementos virtuais com o ambiente real e o uso de elementos virtuais
concebidos em 3-D.
Por outro lado, a Tele-presena, utiliza cmeras de vdeo e microfones remotos
para envolver e imergir o usurio profundamente no mundo virtual. Controle de robs
e explorao planetria so exemplos de pesquisas de Tele-presena em
desenvolvimento. Contudo, existe tambm um grande campo em aplicaes mdicas,
onde so utilizadas cmeras de vdeo e cabos de fibra ptica em intervenes

20

cirrgicas para auxiliar a visualizao dos corpos de seus pacientes. Atravs da RV


eles podem, literalmente, entrar no paciente, diretamente no ponto de interesse
(Heeter, 1992) (Steuer, 1992).

Figura 1 Representao do processo de reconhecimento dos marcadores e o posicionamento de


modelos virtuais (traduzido de Kato et al, 2000).

Os Displays Visualmente Acoplados (Visually Coupled Displays ou Head


Mounted Displays) correspondem a uma classe de sistemas na qual imagens so
exibidas diretamente ao usurio, que est olhando em um dispositivo que deve
acompanhar os movimentos de sua cabea. Esses dispositivos geralmente permitem
imagens e sons em estreo e deteco de movimentos da cabea do usurio, usando
essa informao para realimentao da imagem exibida (Azuma et al, 1994)
(Romano, 2004).
A RV de Mesa (Desktop VR) um subconjunto dos sistemas tradicionais de
RV em que, ao invs de Head Mounted Displays (HMD), so utilizados grandes
monitores ou algum sistema de projeo para apresentao do mundo virtual. Alguns
sistemas permitem ao usurio ver imagens tridimensionais no monitor com culos
obturadores, polarizadores ou filtros coloridos. Outros ainda utilizam-se de espelhos e
displays horizontais, onde a imagem retroprojetada em uma mesa translcida, cujo
resultado se assemelha com os hologramas (Cruz-Neira et al, 1993) (Burdea et al,
1994).

21

1.2. Imerso, Interao e Envolvimento


A RV tambm pode ser caracterizada pela coexistncia integrada de trs idias
bsicas: imerso, interao e envolvimento (Morie, 1994). A idia de imerso est
intimamente ligada ao sentimento de fazer parte do ambiente. Normalmente, um
sistema imersivo obtido com o uso de capacete de visualizao, cavernas e
projees das cenas nas paredes, teto e piso (Cruz-Neira, 1992). Alm do fator visual,
dispositivos ligados aos demais sentidos tambm so importantes para o sentimento
de imerso, principalmente o som (Begault, 1994; Gradecki, 1994), alm do
posicionamento do usurio e dos movimentos da cabea. A visualizao de uma cena
3D em um monitor considerada no imersiva. Dessa forma, tem-se a conceituao
de RV imersiva e no imersiva (Leston, 1996).
De modo geral, do ponto de vista da visualizao a RV imersiva utiliza
capacete ou cavernas, enquanto a RV no imersiva utiliza monitores. Entretanto,
dispositivos baseados nos demais sentidos podem introduzir algum grau de imerso
RV que usa monitores (Robertson, 1993). Ainda assim, os monitores ainda
apresentam alguns pontos positivos, como o baixo custo e a facilidade de uso,
evitando as limitaes tcnicas e problemas decorrentes do uso do capacete. Todavia,
a tendncia deve ser a utilizao da RV imersiva, considerando que a imerso, aliada
interao, justificam-se como os grandes propsitos das aplicaes em RV.
A interao est ligada capacidade do computador detectar as entradas do
usurio e modificar instantaneamente o mundo virtual em funo das aes efetuadas
sobre ele (capacidade reativa ou feedback). As pessoas sempre procuram uma boa
simulao em um sistema de RV, onde que as cenas mudam em resposta aos seus
comandos, que a caracterstica mais marcante dos vdeo games. Para que um sistema
de RV parea mais realista, o ambiente virtual deve ser interativo (Arajo, 1996).
A idia de envolvimento, por sua vez, est ligada ao grau de motivao para o
engajamento de uma pessoa em determinada atividade. O envolvimento pode ser
passivo, como ler um livro ou assistir televiso, ou ativo, como participar de um jogo
com algum parceiro. A RV tem potencial para os dois tipos de envolvimento ao
permitir a explorao de um ambiente virtual e propiciar a interao do usurio com o
mundo virtual dinmico.

22

1.3. Modelagem de Ambientes Virtuais

1.3.1. Modelagem Interativa

1.3.1.1. Seleo de objetos


A seleo de objetos usada para destacar partes da cena virtual a serem
transformadas ou editadas de alguma forma (Hearn e Baker, 1997).
Os dispositivos utilizados para a seleo de objetos so os mesmos utilizados
para a seleo em menu, ou seja, aqueles baseados em posicionamento de cursor. Com
um mouse, joystick ou luva digital, pode-se posicionar o cursor sobre as primitivas de
uma representao exibida e pressionar um boto de seleo. Assim, o
posicionamento ento registrado aps uma pesquisa sobre diversos nveis na cena
para localizar um determinado objeto a ser selecionado.
Primeiramente, a posio do cursor comparada com as extenses das
coordenadas das vrias estruturas dentro da cena. Se o retngulo que delimita as
fronteiras da estrutura contiver as coordenadas do cursor, a estrutura escolhida ser
identificada. Entretanto, se duas ou mais reas de estruturas possurem as coordenadas
do cursor, outras checagens sero necessrias. As coordenadas das extenses de cada
aresta das estruturas podem tambm ser identificadas individualmente, considerando
que o cursor esteja sobre as coordenadas de uma nica linha. Do contrrio, checagens
adicionais seriam necessrias para se identificar a aresta mais prxima.
Uma maneira de se identificar a aresta mais prxima posio do cursor
calcular a distncia quadrtica das coordenadas do cursor (x, y) para cada segmento de
linha dentro do retngulo delimitador que contm tais coordenadas. Para uma aresta
com pontos finais ( x1 , y1 ) e ( x2 , y2 ) , a distncia quadrtica de (x, y) at a aresta
calculada como:
[x( y y1 ) y ( x x 1 )]2
d =
x 2 + y 2
2

onde x = x2 x1 , y = y2 y1 e x 2 + y 2 0 .

(1.1)

23

Outro mtodo para se encontrar a aresta mais prxima posio do cursor a


especificao das dimenses de uma janela de seleo (Clipping planes). As
coordenadas do cursor so ento centradas nesta janela e as arestas candidatas so
atreladas janela de seleo. Atravs da reduo do tamanho da janela, a um tamanho
suficientemente pequeno, pode-se assegurar que uma nica aresta atravessar a janela.
possvel eliminar os clculos de distncia ou a utilizao de janelas no processo de
seleo de objetos na cena, destacando-se as estruturas sobrepostas pelo cursor.
Entretanto, cabe ao usurio o discernimento a respeito da ambigidade de seleo. A
utilizao de janelas de seleo bidimensional ilustrada pela Figura 2.

1.3.1.2. Transformaes
Mtodos para transformaes e modelagens geomtricas em trs dimenses
so estendidos de mtodos bidimensionais somados incluso de consideraes a
respeito da coordenada Z. Como no caso bidimensional, as transformaes
geomtricas so expressas sob a forma de uma matriz de transformao. Qualquer
seqncia de transformaes ento representada como uma nica matriz, formada
pela concatenao de matrizes de transformao individuais em seqncia.

Figura 2- Representao da utilizao de janelas de seleo em modelos bidimensionais, onde o plano


especificado delimita a rea de seleo de arestas atravs de alteraes de sua dimenso.

24

1.3.1.2.1. Translao
Supondo que se tenha estabelecido um sistema de coordenadas 3-D C
consistindo de uma origem e trs eixos, na qual um ponto P tem as coordenadas (x, y,
z). Os valores dessas coordenadas podem ser interpretados como as distncias que as
mesmas devem viajar ao longo dos eixos partindo da origem at alcanar o ponto P.
Supondo agora a introduo de um segundo sistema de coordenadas C, no qual suas
coordenadas (x, y, z) podem ser expressas como funes lineares das coordenadas
(x, y, z) em C. Assim, pode-se notar que:
x( x, y, z ) = U1 x + V1 y + W1 z + T1

(1.2)

y( x, y, z ) = U 2 x + V2 y + W2 z + T2

(1.3)

z( x, y, z ) = U 3 x + V3 y + W3 z + T3

(1.4)

onde o vetor T representa a translao a partir da origem e os vetores U, V e W


representam como a orientao dos eixos de coordenadas alterada quando
transformada de C para C.
Em uma representao de coordenadas homogneas tridimensionais aplicadas
sobre suas matrizes identidade, um ponto transladado da posio C = (x, y, z) para a
posio C = (x, y, z) com a matriz de operao:
x 1
y 0
=
z 0

1 0

0
1
0
0

0 tx x
0 t y y

1 tz z

0 1 1

(1.5)

Assumindo-se que as transformaes so inversveis, tem-se que:

x 1
y 0
=
z 0

1 0

0
1
0
0

0 t x x
0 t y y

1 t z z

0 1 1

(1.6)

25

ou:
P = T . P

(1.7)

Os parmetros t x , t y e t z especificam as distncias de translao para as


direes das coordenadas x, y e z, registradas como nmeros reais. A representao
matricial da equao (1.5) equivalente s trs equaes:

x= x + t x

(1.8)

y= y + t y

(1.9)

z= z + t z

(1.10)

Um objeto transladado em trs dimenses pela transformao de cada ponto


definido no objeto. Para um objeto representado por um conjunto de superfcies
poligonais, cada vrtice de cada superfcie transladado e redesenhado em sua nova
posio.
A inversa da matriz de transformao pode ser obtida pela negao das
distncias de translao t x , t y e t z . Isto produz uma translao na direo oposta, e o
produto entre a matriz de translao e sua inversa produz a matriz identidade.

1.3.1.2.2. Rotao

Para gerar a transformao de rotao de um objeto, deve-se designar um eixo


de rotao (sob qual o objeto ser rotacionado) e o valor angular de rotao.
Diferentemente de aplicaes bidimensionais, onde todas as transformaes baseiamse no plano x-y, uma rotao tridimensional pode ser especificada em torno de
qualquer linha no espao. Os eixos de rotao mais fceis de tratar so aqueles
paralelos aos eixos de coordenadas cartesianas. Paralelamente, podem ser utilizadas
combinaes de rotaes e translaes para se definir uma transformao final. Por
conveno, rotaes de ngulos positivos produzem rotaes em sentido anti-horrio

26

sobre o eixo de coordenadas especificado, concordando com as operaes de rotao


bidimensionais.
A rotao tridimensional da coordenada z demonstrada como exemplo
partir das equaes:
x= x cos y sin

(1.11)

y= x sin + y cos

(1.12)

z= z

(1.13)

O parmetro especifica o ngulo de rotao. Em forma de coordenadas


homogneas, a rotao tridimensional do eixo z expressa pela equao:
x cos
y sin
=
z 0

1 0

sin
cos
0
0

0
0
1
0

0 x
0 y

0 z

1 1

(1.14)

ou
P= Rz ( ).P

(1.15)

As equaes de transformao para rotaes sobre os dois outros eixos de


coordenadas podem ser obtidas com uma permutao cclica das coordenadas dos
parmetros x, y e z atravs das substituies:
x
y
z
x

(1.16)

Substituindo as permutaes da equao (1.16) nas equaes (1.11), (1.12) e


(1.13), pode-se obter as equaes de rotao para o eixo x:
y= y cos z sin

(1.17)

z= y sin + z cos

(1.18)

x= x

(1.19)

27

por coordenadas homogneas:


0
x 1
y 0 cos
=
z 0 sin

0
1 0

0
sin
cos
0

0 x
0 y

0 z

1 1

(1.20)

Ou
P= R x ( ).P

(1.21)

Ciclicamente, permutando as coordenadas das equaes (1.17), (1.18) e (1.19), podese obter as equaes de rotao sobre o eixo y
z= z cos x sin

(1.22)

x= z sin + x cos

(1.23)

y= y

(1.24)

A representao matricial para a rotao do eixo y dada por:


x cos
y 0
=
z sin

1 0

0 sin
1
0
0 cos
0
0

0 x
0 y

0 z

1 1

(1.25)

ou
P= Ry ( ).P

(1.26)

Uma matriz de rotao inversa formada pela substituio do ngulo de


rotao por - . Valores negativos para ngulos de rotao geram rotaes em
sentido horrio, assim, a matriz identidade produzida quando a matriz de rotao
multiplicada pela sua inversa. Considerando-se que apenas os valores da funo seno
so afetados pela inverso de sinal do ngulo de rotao, a matriz inversa tambm
pode ser obtida intercalando-se linhas e colunas, ou seja, pode-se calcular a inversa de
qualquer matriz R de rotao pela sua transposta ( R 1 = RT ).

28

1.3.1.2.2.1. ngulos de Euler

At agora, viu-se que a forma mais intuitiva e pratica de se representar


orientaes em modelos tridimensionais fornecer suas orientaes baseadas nos
eixos x, y e z sobre um ngulo determinado, compondo os parmetros da chamada
rotao por ngulos de Euler.

A priori, o uso de ngulos de Euler parece resolver todo o contexto, entretanto,


h uma srie de problemas (Gattass et al, 2002).

1.3.1.2.2.2. Rotaes no comutativas.

Primeiramente necessrio destacar que as rotaes, ao contrario das


translaes, no comutam. Em outras palavras, possvel representar um
deslocamento de um modelo como sendo o resultado de somas de vrios outros
deslocamentos. J para representar rotaes, tal abordagem torna-se errnea, pois
ordem em que as rotaes so aplicadas sobre os nossos modelos influencia
diretamente o resultado final das orientaes.
Aparentemente, o uso de ngulos de Euler parece no causar problemas, uma
vez que parece razovel pensar que ao estabelecer uma ordem fixa de rotaes
resolveria o problema. Realmente, se este fosse o nico objetivo de um sistema de RV
controlado por dispositivos no convencionais, o uso de orientaes fixas
provavelmente resolveria a questo, entretanto, o problema encontra-se nas
orientaes mutveis.
Em diversas ocasies, no desejamos saltar de uma orientao para outra, e
sim alterar pouco a pouco a representao para executar de forma suave uma operao
de rotao maior. Sob este novo paradigma, os ngulos de Euler apresentam dois
problemas principais.

1.3.1.2.2.3. Gimbal Lock

Existe um fenmeno no muito intuitivo com o qual desenvolvedores de RV


se defrontam constantemente ao representar suas entidades e suas respectivas

29

orientaes utilizando ngulos de Euler, no qual graus de liberdade so perdidos ao se


executar determinadas combinaes de rotaes. Tal efeito chamado Gimbal Lock.
Por exemplo, deseja-se realizar a seguinte combinao de rotaes: 90 graus
no eixo leste/oeste e outros 90 no eixo norte/sul. Entretanto, a conveno de ngulos
de Euler nos diz que rotaes no eixo norte/sul so realizadas primeiro.
Desta maneira, ao se executar uma rotao de 90 sobre o eixo leste/oeste, no
h qualquer mudana nos outros eixos que possa nos levar a alteraes no eixo
norte/sul. Isso significa que a posio desejada jamais poder ser alcanada utilizando
ngulos de Euler, assim, enquanto o ngulo de rotao do eixo leste/oeste permanecer
em 90, um grau de liberdade perdido e algumas orientaes no podero ser
alcanadas.
Uma soluo para o problema seria simplesmente representar a orientao
atravs de uma matriz de rotao com relao posio inicial e simplesmente
multiplica-la por cada nova rotao aplicada ao modelo representado. Tal abordagem
seria falha, pois como so utilizadas matrizes 3x3 para representar trs graus de
liberdade, dados redundantes so armazenados, assim, sucessivas multiplicaes
acumulam erros, fazendo com que o resultado final seja errneo, deixando at mesmo
de ser uma rotao. Tal problema poderia ser resolvido normalizando-se as matrizes a
cada final de ciclo, entretanto, isso acarretaria mais custo computacional e
imprecises.
Uma outra abordagem recalcular os trs ngulos de Euler a cada pequena
rotao. Contudo, esses novos ngulos no se associam com os ngulos antes da
rotao, uma vez que para girar em torno de um eixo, em algumas situaes
necessrio executar uma rotao prvia sobre outro eixo. Desta maneira, prximos aos
pontos de Gimbal Lock haveria saltos imprevistos.
Finalmente, a soluo definitiva encontra-se em um sistema de representao
em que as operaes de rotao possam ser executadas de forma natural sob eixos
aleatrios.

1.3.1.2.2.4. Interpolao de orientaes

Outro grande problema do uso de ngulos de Euler encontra-se na interpolao


de orientaes, quando desejado produzir uma seqncia de valores intermedirios

30

entre duas outras rotaes dadas. Mesmo que o Gimbal Lock no ocorra, no nada
intuitivo fazer com que um modelo execute um determinado caminho suave entre
duas orientaes.
Ao trabalhar com ngulos de Euler, a interpolao aplicada a cada um dos
ngulos de rotao produzir rotaes independentes em torno desses eixos, ao invs
de um movimento suave.
No caso do Gimbal Lock no ocorrer, o produto final poder at ser o correto,
entretanto, as orientaes intermedirias no so devidas se o sistema adotado for a
interpolao linear, produzindo movimentos estranhos e imprevisveis.
Dadas duas posies no espao tridimensional, existe uma infinidade de curvas
que as ligam. O modelo 3-D poderia ento traar um caminho aleatrio at chegar ao
destino, entretanto, no caso de transio entre duas orientaes, indesejvel que tal
fenmeno acontea.
A soluo para este caso configura-se atravs de rotao simples ao redor de
um nico eixo, ou seja, dadas duas orientaes, executa-se uma interpolao linear
simples no ngulo de rotao em torno de um eixo adotado. Tal eixo no
necessariamente existe e a parametrizao de Euler no realiza de forma alguma,
rotaes sobre eixos arbitrrios. O ideal realizar rotaes sobre eixos adequados e
no seguindo caminhos arbitrrios.

r
Algebricamente, seja um ponto no 3 representado por um vetor r = (rx , ry , rz )

e seja ,nr uma rotao anti-horria de um ngulo em torno de um eixo que


r
intercepta a origem definido por um vetor unitrio n = (nx , n y , nz ) . Deseja-se
r
determinar uma expresso para (r ) , ou seja, para o vetor que representa o ponto
r
obtido aps aplicar em r a rotao .
r
O problema pode ser resolvido decompondo r em suas componentes normal
r
r
r
r
r paralela ao vetor n , basta realizar o produto escalar entre n e r . Assim obtm-se
que:
r r
r
r = r + rP
r
r r r
r P = (n r )n

(1.27)
(1.28)

31

r
r r r r r r
r = r r P = r (n r )n

(1.29)

r
r
r
onde r um vetor tridimensional a ser rotacionado, r a componente normal, r P a
r
componente paralela e n um vetor unitrio sobre o qual ocorre a rotao.
r
A componente r P , naturalmente permanece inalterada por uma rotao em
r
torno do eixo definido por n , de forma que:
r

( r P) = r P

(1.30)

r
onde a rotao e r P a componente paralela.
r
O problema restante determinar qual resultado da rotao de r . Sabe-se
r
r
que, por definio, esta rotao ocorre num plano paralelo a r , e perpendicular a n .
r
Logo, define-se o vetor v como:

r r r
r r r
r r r r r r
v = n r = n ( r r P) = n r n r P = n r

(1.31)

r r r
r
r
tem-se que n , r , v formam um triedo direto, e em particular que r e v so
r
perpendiculares e esto no plano onde ocorre a rotao. Alm disso, como n
r
r
unitrio, v ter a mesma norma que r . Portanto, imediato verificar que:

(r ) = (cos )r + ( sen )v

(1.32)

Somando os componentes temos que:


r

r r r

r r

(r ) = (r P + r ) = (cos )r + (1 cos )(n r )n + ( sen )(n r )

(1.33)

r
Assim conclui-se que o ponto resultante da realizao de uma rotao ( , n)
r
em um ponto r :

32

r r r

r r

(r ) = (cos )r + (1 cos )(n r )n + ( sen )(n r )

(1.34)

1.3.1.2.2.5. Quatrnios

Um quatrnio definido por um conjunto de quatro nmeros reais usualmente


chamados de a, b, c e d. De forma similar representao dos nmeros complexos, os
quatrnios possuem uma parte real e uma imaginria. Entretanto, os mesmos
apresentam trs componentes diferentes que formam a parte imaginaria (i, j e k).
Assim, um quatrnio um conjunto da forma q = (a,b,c,d) ou,

q = a + bi + cj + dk

(1.35)

Pode-se tambm expressar um quatrnio de forma condensada:


r
q = ( s, v)

(1.36)

r
onde s um escalar que representa a parte real e v = (vx , v y , vz ) um valor de trs
componentes que representam a parte imaginria.
Anlogo s propriedades de i nos nmeros complexos, os valores de i, j e k
constituem-se como generalizaes. Assim temos que:

i 2 = j 2 = j 2 = 1

(1.37)

e ao multiplicar imaginrios de natureza diferente temos que:

ij = k

(1.38)

ji = k

(1.39)

Nota-se que as multiplicaes de dois quatrnios, ao contrrio dos


complexos, no so comutativas, j que se trata de rotaes tridimensionais.

33

A relevncia da utilizao de quatrnios para aplicar rotaes em modelos


tridimensionais reside nas operaes de multiplicao, onde pode-se notar que o
produto de dois quatrnios q1 e q2 representado por:

q1q2 = a1a2 (b1b2 + c1c2 + d1d 2 ) + a1 (b2i + c2 j + d 2 k )


+ a2 (b1i + c1 j + d1k ) + (c1d 2 d1c2 )i + (d1b2 b1d 2 ) j + (b1c2 c1b2 )k

(1.40)

e de forma escalar:
ur
uur
ur uur uur
ur ur uur
q1q2 = ( s1 , v1 )( s2 , v2 ) = ( s1s2 v1 v2 , s1 v2 + s2 v1 + v1 v2 )

(1.41)

1.3.1.2.2.6. Representando Rotaes utilizando Quatrnios

r
O ponto r = (rx , ry , rz ) sobre o qual aplicada uma rotao representado
r
pelo quatrnio p = (0, r ) tendo a parte real nula e a rotao aplicada sobre o ponto
r
r
r representado por um quatrnio q = ( s, v) .
Desta maneira, a rotao de p por q pode ser expressa da forma:
Rq ( p ) = qpq 1

(1.42)

Rq ( p) = qpq

(1.43)

ou

sendo que q unitrio e seu inverso igual a seu conjugado. Assim temos que:
r
r
r
r r r r
r r r
r r
qpq = ( s, v)(0, r )( s, v) = (0, s 2 r (v v)r + 2(v r )r + 2 sv r )

(1.44)

Onde
r
r
a (b a ) = 0
r r
r r
a b = b a

(1.45)
(1.46)

34

r r r
r r r r r r
a (b c) = (a c)b (a b)c

(1.47)

r
r2
Como q = ( s, v) unitrio, temos que s 2 + v = 1 , ou seja, sempre existe
r
um ngulo tal que s = cos e v = sen . Assim temos que:
r
r
q = ( s, v) = (cos , sen n),

r
n =1

(1.48)

e
r r r r
r r r
r r
qpq = (0, s 2 r (v v)r + 2(v r )r + 2sv r ) =
r
r r r
r r
= (0, (cos 2 )r + (1 cos 2 )(n r )n + ( sen 2 )n r )

(1.49)

onde
r r r2
aa = a

(1.50)

cos 2 sen 2 = cos 2

(1.51)

2sen 2 = (1 cos 2 )

(1.52)

2 cos sen = sen 2

(1.53)

Desta maneira, para compor uma combinao de duas rotaes


representadas por q1 e q2 aplica-se:

Rq 2 ( Rq1 ( p )) = Rq 2 (q1 pq1 ) = q2 q1 pq1 q 2 = q3 pq4

(1.54)

q4 = q 3 q3 pq4 = q3 pq 3 = Rq 3 ( p)

(1.55)

ou ento:

Assim, pode-se concluir que a composio de rotaes pode ser realizada


de maneira natural pela simples lgebra dos quatrnios, ou seja, com dois

35

quatrnios unitrioe e seus respectivos ngulos e eixos distintos, pode-se


representar uma rotao multiplicando-se os quatrnios.
Aplicando-se os conceitos rotao anteriormente descrita, temos que a
primeira rotao :
q1 = (cos(90 / 2), sen(90 / 2)(0,1, 0)
= ( 2 / 2, ( 2 / 2)(0,1, 0))

(1.56)

= ( 2 / 2, (0, 2 / 2), 0))

e a segunda:
q2 = (cos(90 / 2), sen(90 / 2)(1, 0, 0)
= ( 2 / 2, ( 2 / 2)(1, 0, 0))

(1.57)

= ( 2 / 2, ( 2 / 2), 0, 0))

e finalmente:
q3 = q1q2 = ( 1 , ( 1 , 1 , 1 ))
2
2 2 2

(1.58)

que correspondente a uma rotao anti-horria de = 2 arccos( 1 ) = 120 em


2
torno do eixo definido por ( 1 , 1 , 1 ) .
2 2 2

1.3.1.2.3. Escala

A matriz de expresso para as transformaes de escala de uma posio P=(x,


y,z) relativa s coordenadas de origem pode ser descrita como:
x sx
y 0
=
z 0

1 0

0
sy
0
0

0
0
sz
0

0 x
0 y

0 z

1 1

(1.59)

36

ou:
P= S P

(1.60)

Onde os parmetros de escala sx , s y e sz recebem qualquer valor positivo. Expresses


explcitas para transformaes de escala relativas origem so:
x= x sx

(1.61)

y= y s y

(1.62)

z= z sz

(1.63)

Transformaes de escala a partir da matriz (1.27) alteram o tamanho de um


objeto e reposiciona o mesmo relativo origem das coordenadas, preservando a
geometria oriinal do objeto, atravs de escala uniforme ( sx = s y = sz ). Paralelamente,
se os parmetros de escala no forem iguais, dimenses relativas do objeto sero
alteradas.
Para mudanas de escala relativas a um ponto fixo da cena virtual ( x f , y f ,
z f ), utilizada a seguinte seqncia de transformaes: 1) Transladar o ponto fixo
para a origem; 2) Escalar o objeto relativo s coordenadas de origem utilizando a
equao (1.27) e 3) Transladar o ponto fixo de volta posio original.
A matriz de transformao de mudana de escala em relao a um ponto fixo
pode ser definida por:
sx
0
T ( x f , y f , z f ) S ( sx , s y , sz ) T ( x f , y f , z f ) =
0

0
sy
0
0

0
0
sz
0

(1 sx ) x f
(1 s y ) y f
(1 sz ) z f

(1.64)

1.3.1.2.4. Reflexo

Uma reflexo tridimensional pode ser processada em relao a um


determinado eixo de reflexo ou em relao a um plano de reflexo especfico.

37

Similarmente s reflexes bidimensionais, as reflexes relativas a um determinado


eixo de coordenadas so equivalentes a rotaes de 180 graus sobre o eixo. Reflexes
sobre determinados ngulos so equivalentes a rotaes de 180 graus em espao de
quatro dimenses (4-D).
Quando o plano de reflexo um plano de coordenadas (xy, xz ou yz), a
transformao dita como converso entre as regras da mo direita e mo
esquerda. Esta transformao altera o sinal das coordenadas z, deixando as
coordenadas x e y com os valores originais. A matriz que representa a operao de
reflexo do plano xy dada por:
1
0
RFz =
0

0 0
1 0
0 1
0 0

0
0
0

(1.65)

Matrizes de transformao para inverso de valores de x e y so definidas


similarmente como reflexes relativas aos planos yz e xz, respectivamente. Reflexes
sobre outros planos podem ser implementadas sob combinaes de rotaes e
reflexes.

1.3.1.2.5. Alongamento e Encurtamento

Transformaes de alongamento/encurtamento so utilizadas para modificar a


geometria dos objetos. So tambm utilizadas na visualizao tridimensional para
simular

transformaes

de

projees.

Como

exemplo

da

operao

de

alongamento/encurtamento tridimensional, representa-se o efeito da mesma sob o eixo


z atravs da matriz:
1
0
SH z =
0

0
1
0
0

a
b
1
0

0
0
0

(1.66)

38

Onde a e b so representados por nmeros reais. O efeito desta matriz de


transformao alterar os valores das coordenadas de x e y por um montante
proporcional ao valor de z, enquanto o mesmo permanece com o valor original.
Fronteiras de planos perpendiculares ao plano z so ento deslocadas mediante valores
proporcionais ao mesmo.

1.3.1.2.6. Matrizes Ortogonais

Matrizes de transformao no campo de aplicaes de Computao Grfica e


Realidade Virtual utilizam, em sua grande maioria, possuem dados ortogonais, onde a
transposta da matriz de transformao igual sua inversa:
M 1 = M T

(1.67)

Matrizes ortogonais possuem a propriedade de preservar comprimentos e


ngulos quando so usadas como vetores de transformao. A matriz M preserva seu
comprimento se para cada vetor P tem-se que:
MP = P

(1.68)

Para que o ngulo seja tambm preservado, necessrio que, para dois vetores
P1 e P2 , tem-se que:

( MP1 ) ( MP2 ) = P1 P2

(1.69)

1.3.2. Modelagem Imersiva

1.3.2.1. Estereoscopia

A percepo de profundidade um processo mental sofisticado, que combina


indicadores fisiolgicos e psicolgicos (Vester e Toutin, 1997).

39

Na estereoscopia, duas cenas de uma mesma rea so adquiridas sob diferentes


perspectivas, atravs de variaes de pontos de vista e/ou incidncias, de modo a
permitir a sensao de imerso medida que as perspectivas se fundem no crebro.
Atravs da correlao entre as duas cenas, so obtidas as chamadas paralaxes
(Paradella et al, 2003).
A estereoscopia depende de dois principais princpios: (a) a paralaxe
estereoscpica, que se relaciona com a aparente mudana da posio dos objetos na
cena quando vistos de diferentes pontos, e (b) o ngulo de interseco estereoscpica,
medido entre as linhas formadas pelos pontos de vista adotados, relativas s vises do
olho esquerdo e direito, sobre um determinado ponto na cena. Quanto maior for o
ngulo de interseco, mais prximos de ns os objetos parecem estar (Brito e
Coelho, 2002).
Um exemplo simples que pode ser considerado a observao de diferentes
objetos atravs da janela de um avio. Os objetos que esto distantes aparentam
mover-se muito pouco em relao ao referencial, enquanto que os mais prximos da
janela aparentam mover-se em distncias muito maiores, como demonstradas pela
Figura 2.
A Figura 3 mostra duas tomadas distintas de um mesmo ponto, onde nota-se a
presena de superfcies mais elevadas do que o nvel do solo. Assim, possvel
observar diferentes distncias entre picos e bases. A Figura 4 descreve, para dois
pontos de uma elevao no terreno, o efeito posicional em duas cenas diferentes.
Medindo as coordenadas dos pontos a e b nas duas imagens, paralelamente
linha de vo, pode-se estabelecer uma relao, definida pela primeira equao da
paralaxe, denominada paralaxe absoluta:
pa = xa x ' a

(1.70)

onde os deslocamentos ocorrem paralelamente linha de vo (no caso, eixo x).


Para um par estereoscpico, a figura ser uma linha, materializada por quatro
vrtices (dois pontos principais e dois conjugados).

40

Figura 3 - Foto area de monumento em dois instantes diferentes, onde pode-se notar a paralaxe lateral
relativa s diferenas de posicionamento dos objetos nas imagens.

Figura 4 - Representao de deslocamentos devido s diferentes distncias entre dois pontos,


caracterizando a paralaxe (Lillesand e Kiefer, 2000)

41

A formulao expressa a seguir resume os princpios bsicos da medio de


paralaxe. A Figura 5(a) mostra a utilidade da paralaxe para a determinao da
distncia em um ponto. Sabendo-se a altitude da estao H, a base area, ou B, que a
distncia entre as estaes no sentido da linha de vo, a distncia focal f da cmara
utilizada e a paralaxe do ponto a, pode-se facilmente calcular a altitude de A, hA. A
Figura 5(b) resultante da superposio de dos tringulos L e L de modo a mostrar
graficamente a paralaxe pa.
Por semelhana de tringulos tem-se:

pa
B
=
f
H hA

(1.71)

H hA =

Bf
pa

(1.72)

hA = H

Bf
pa

(1.73)

onde f 0 e H hA 0

e, consequentemente:

onde Pa 0 .
Tambm por semelhana de tringulos pode-se escrever:

x
XA
= a
H hA
f

X A = xa

H hA
f

(1.74)

(1.75)

42

onde f 0 e H hA 0 .
Substituindo-se de (1.42) a (1.43), tem-se:

XA = B

xa
pa

(1.76)

Analogamente:

YA = B

ya
pa

(1.77)

onde Pa 0 .
As equaes (1.44) e (1.45), descritas anteriormente, so comumente
conhecidas como as equaes da paralaxe. Em algumas aplicaes, entretanto, desejase apenas saber a distncia entre dois pontos. Para esses casos, utiliza-se a expresso:

h = pH 2 / pa

(1.78)

onde h a diferena em elevao entre dois pontos cuja diferena de paralaxe p,

H a altura de vo sobre o ponto de menor altitude e pa a paralaxe do ponto mais


alto, com Pa 0 .
Anlogo ao processo de fotografias areas, o funcionamento dos HMDs
(Head Mounted Displays) baseia-se nos princpios da estereoscopia, uma vez que os
mesmos exibem a cena sob duas telas independentes, representando as vises do olho
esquerdo e direito.
Como um par estereoscpico de imagens, as cenas exibidas nas telas de LCD
podem ser interpretadas como bidimensionais estticas, possibilitando a insero de
conceitos imersivos aplicveis s imagens 2-D, como a imerso sob a fuso das
perspectivas, baseadas em paralaxe.

Figura 5 - Relacionamento entre as paralaxes de um ponto A: (a) Utilizao da paralaxe para a determinao da distncia de um ponto e (b) Resultado da superposio dos
tringulos L e L (Lillesand e Keifer, 2000)

43

44

1.3.2.2. Iluminao, Reflexo e Atenuao

A iluminao das cenas sintticas tridimensionais, bem como a capacidade de


reflexo e atenuao das luzes pelos diversos materiais, trata-se de um fator
fundamental no processo de percepo de profundidade dos objetos do ambiente. Sem
os recursos de iluminao, os modelos apresentariam a mesma tonalidade sobre todos
os pixels, provocando o efeito de bidimensionalidade. Assim, torna-se necessria a
utilizao de diversas fontes de luz, sob diversos parmetros, para destacar os
verdadeiros formatos das geometrias apresentadas na cena, ressaltando relevos e
bordas, contribuindo para o efeito de profundidade.

1.3.2.2.1. Fontes de luz Ambiente

O termo luz ambiente refere-se luz que foi refletida tantas vezes, sobre tantos
objetos, que sua direo original no pode ser determinada. Assim, pode-se dizer que
a luz ambiente no direcional e ilumina igualmente todos os modelos da cena, com
um mnimo nvel de luz incidente. Pode-se expressar a luz ambiente como uma
simples constante global para toda a cena:

I refletida = I ambiente

(1.79)

multiplicando-se pelo fator escalar de Material

I refletida = I ambiente kambiente

(1.80)

1.3.2.2.2. Fontes de luz Direcional

Luzes direcionais so utilizadas para representar fontes de luz como o sol,


onde os raios so considerados paralelos. Considerando-se que tal fonte no tem
posio no espao, as mesmas tm alcance infinito e sua intensidade no diminui com
a distncia. Desta maneira pode-se representar a incidncia direcional por:

45

I direcional = I 0

(1.81)

onde I 0 a intensidade da luz em candelas (cd).

1.3.2.2.3. Fontes de luz Pontuais

As fontes pontuais de iluminao so aquelas que emitem luz em todas as


direes a partir de um nico ponto no espao. Todas as bibliotecas grficas
implementam tal funcionalidade e permitem controlar a intensidade da luz emitida
pela fonte atravs da recproca dos polinmios quadrticos. Supondo que a fonte de
luz seja um ponto P, a intensidade C atingindo um ponto no espao Q, dada por:

C=

1
C0
k c + kl d + k q d 2

(1.82)

onde C0 a cor da luz, d a distancia entre a fonte P e o ponto Q, e as constantes

k c , kl e k q

so os coeficientes de ateuao constante, linear e quadrtica,

respectivamente, com kc + kl d + kq d 2 0 .

1.3.2.2.4. Fontes de luz Spot

Anlogo ao processo de iluminao pontual, as fontes Spot tm sua


intensidade de luz atenuada pela distncia, diferindo apenas na presena do chamado
efeito spot:

C=

max{ R.L, 0} p
C0
k c + kl d + k q d 2

(1.83)

onde C0 a cor da luz, d a distancia entre a fonte P e o ponto Q, R a direo da


luz spot, p controla a concentrao da luz spot, as constantes kc , kl e kq so os
coeficientes de ateuao, com kc + kl d + kq d 2 0 , e L a unidade de medida para a
direo dos raios de luz, onde:

46

L=

P Q
P Q

(1.84)

onde P Q 0 .

1.3.2.2.5. Reflexo Difusa

Pode-se denotar a reflexo difusa K como a cor da luz emitida pelo objeto, ou
seja, a luz refletida ao observador a partir de um ponto Q na superfcie. A frmula de
reflexo difusa escrita em funo da intensidade Ci de cada uma das n luzes que
iluminam o ponto Q. A luz refletida, em todas as direes, modularizada pela cor de
reflexo difusa D da superfcie. Adicionando as contribuies de n fontes de luz e
considerando a intensidade do ambiente A, pode-se expressar o componente de
difuso como:
n

K difusa = DA + D Ci max{N Li , 0}

(1.85)

i =1

onde o vetor unitrio Li , reflete por Q a i-sima fonte de luz.

1.3.2.2.6. Reflexo Especular

Em adio reflexo difusa uniforme, as superfcies tendem a refletir a luz


fortemente, em uma nica direo, ao longo do trajeto dado pela reflexo dos raios
incidentes em seus vetores normais.
Para calcular a contribuio especular com uma nica fonte de luz, utiliza-se:
K especular = SC max{R V , 0}m com ( N L > 0)

(1.86)

onde S a cor de reflexo especular da superfcie, V o vetor do observador, R


vetor de reflexo direta, C a intensidade da luz incidente, N o vetor normal, L o
vetor de direo da luz e m chamado de expoente especular, responsvel por

47

controlar a atenuao da luminosidade especular. A expresso ( N Li > 0) garante que


faces distantes no tenham reflexo especular.
Para uma segunda formulao do ndice de reflexo especular, utiliza-se de
um vetor H, posicionado exatamente entre o vetor de visualizao V e o vetor de
direo da luz L. Os pontos especulares mais luminosos ocorrem quando H aponta
para a direo do vetor normal N. Desta maneira, o ndice de reflexo especular
denotado por:
n

K especular = S Ci max{N H i , 0}m


i =1

com

( N Li > 0)

(1.87)

onde H, sob incidncia da i-sima fonte de luz, denotado por:

Hi =

Li + V
Li + V

(1.88)

onde Li + V 0 .

1.4. Os Dispositivos de Realidade Virtual

A interface em RV envolve um controle tridimensional altamente interativo de


processos computacionais. O usurio entra no espao virtual das aplicaes e
visualiza, manipula e explorar os dados da aplicao em tempo real, usando seus
sentidos, particularmente os movimentos naturais tridimensionais do corpo. A grande
vantagem que o conhecimento intuitivo do usurio sobre o mundo fsico pode ser
transportado para o mundo virtual.
Como conseqncia do advento da RV, surgiu a necessidade de se redefinir o
paradigma de interface homem-computador. O sistema tradicional mouse-tecladomonitor foi substitudo por dispositivos no-convencionais, que permitem maior
imerso do usurio no ambiente sinttico e o manuseio de todas as potencialidades
dessa nova tecnologia (Kirner, 1995).

48

1.5.1. Dispositivos de sada de dados

A maioria das aplicaes de RV baseada no isolamento dos sentidos,


principalmente a viso. Assim, cabe ao hardware de RV de sada de dados estimular
tais sentidos. A sada dos sistemas de RV, seja ele imersivo (HMDs) ou parcialmente
imersivo (monitores), tem como preocupao principal a estereoscopia, seja ela
passiva, como a polarizao, anaglifos e difrao de luz, ou ativa, como os culos
obturadores (Gattas et al, 2004).

1.5.1.1. Dispositivos convencionais de sada de dados

Os dispositivos de convencionais de sada de dados so perifricos de comum


utilizao, destinados visualizao e anlise de sistemas de propsito geral. So eles:
monitor de vdeo, impressoras, auto-falantes, etc. Envolvendo sistemas de Realidade
Virtual, os dispositivos convencionais de sada de dados podem contribuir para o
desenvolvimento de ambientes interativos e semi-imersivos, porm, no so capazes
de prover realismo e o envolvimento tal qual fornecidos por sistemas virtuais dotados
de dispositivos no-convencionais, os quais sero amplamente utilizados no presente
projeto e descritos minuciosamente na seo a seguir.

1.5.1.2. Dispositivos no-convencionais de sada de dados

Os dispositivos no-convencionais de sada de dados so responsveis em


fornecer grande parte do efeito imersivo ao sistema de RV. Assim, tais dispositivos,
implementados sob interfaces intuitivas, so capazes de transpor o usurio cena
sinttica, tornando real sua experincia.

1.5.1.2.1. Head Mounted Displays

O vdeo-capacete (Head-Mounted Display, HMD) um dos dispositivos de


interface para RV mais populares, por tratar-se do dispositivo no-convencional de
sada de dados que mais isola o usurio do mundo real. Este dispositivo constitudo
basicamente de uma ou duas minsculas telas e um conjunto de lentes especiais. Com

49

duas telas, a tecnologia pode ser utilizada para exibir imagens estereoscpicas,
apresentando os respectivos pontos de vista de cada olho para cada tela, contribuindo
para o efeito imersivo.
As lentes ajudam a focalizar imagens que esto a alguns milmetros dos olhos
do usurio, ajudando tambm a ampliar o campo de viso do vdeo. Os HMDs
funcionam tambm como um dispositivo de entrada de dados, porque contm
sensores de rastreamento que medem a posio e orientao da cabea, transmitindo
esses dados para o computador. Consequentemente, o computador gera uma
seqncia de imagens por quadro correspondente s aes e perspectivas do usurio
(Gradescki, 1994).
Os HMDs so construdos, normalmente, usando trs tipos de telas: os
monitores de TV (CRT), os monitores de cristal lquido (LCD), os mais usados
atualmente, e os de diodo emissores de luz orgnicos (OLED).

1.5.1.2.1.1. Displays CRT

Os monitores de TV, em funo da avanada tecnologia disponvel nesta rea,


podem exibir imagens de alta resoluo (1280x1024 pixels) com uma qualidade de
cor excelente, mesmo em pequenas dimenses, sob campo de viso horizontal de at
127 graus. Entretanto, so relativamente pesados, volumosos e colocam altas
voltagens muito prximas cabea do usurio (> 100v) (Kalawski, 1993). O
funcionamento bsico de um monitor CRT baseia-se na emisso de um raio de
eltrons (raios catdicos) por um canho de eltrons. O raio passa por um sistema de
ajuste de foco (anodo) e deflexo, que direciona o raio para posies especficas de
uma tela fosforecente. O fsforo ento emite um pequeno ponto de luz em cada
posio atingida pelo raio catdico. Devido ao rpido enfraquecimento da luz, a
maioria dos HMDs CRT possuem um sistema de refresh, responsveis por
redesenhar a imagem repetidas vezes na tela. As cores na tela podem ser
representadas atravs de duas maneiras: por uma dupla camada de fsforo, vermelha e
verde, onde as cores exibidas na tela dependem de quanto os raios catdicos penetram
nestas camadas e atravs de mscaras coloridas, posicionadas no caminho do raio.
Tais mscaras possuem trs pontos de cor em cada posio de pixel (verde, vermelho
e azul) e trs canhes de eltrons, cada um para um ponto de cor. Quando os raios

50

atravessam a mscara, eles ativam o tringulo de cores, o qual aparece em um


pequeno ponto na tela. Cada cor especfica pode ser alcanada por emisses
especificas de raios catdicos (Hearn e Baker, 1997).
Os HMDs CRT usam dois Monitores de Raios Catdicos (CRT) que so
posicionados nas laterais do HMD. Refletores de imagens so usados para dirigir a
cena para o olho do usurio (Lane, 1993) A Figura 6 demonstra a emisso de raios
catdicos e a Figura 7 demonstra um HMD com display CRT.

Figura 6 Representao do funcionamento de um CRT, partindo da emisso de raios catdicos,


passando por sistemas de focalizao, deflexo e controle, at atingir a tela fosforecente (Mano, 1998)
Telas fosforescentes
Canho de eltrons

Figura 7 - HMD CRT de 2 telas desenvolvido na NASA, onde o canho de eltrons posicionado nas
laterais do dispositivo, expondo o usurio a altas voltagens prximas da cabea (Kalawski, 1993).

51

1.5.1.2.1.2. Displays LCD

Os HMDs LCDs, por sua vez, so leves e podem ser usados com pequenas
voltagens (entre 20 e 100v). Sua resoluo espacial em monitores pequenos pode
variar desde extremamente baixa VGA (640x480 pixels) (Darpa, 1996), at uma
amostragem satisfatria SXGA (1280x1024 pixels) (Vrlogic, 2007) com baixo ngulo
de viso no campo horizontal (60 graus). Este tipo de HMD usa tecnologia LCD para
exibir a cena, atravs da emisso de luz polarizada por um material de cristal lquido.
O termo cristal lquido atribudo a tal material refere-se ao fato de que os
componentes do mesmo possuem uma disposio cristalina de molculas, fluindo
como lquido. O display construdo com cristal lquido nemtico, duas superfcies de
vidro, contendo polarizadores de luz e separadas pelo cristal lquido. Uma camada
horizontal e outra vertical de condutores transparentes so atreladas s superfcies de
vidro e a interseo dos condutores define a posio de um pixel. Quando uma luz
polarizada ultrapassa todo o material, ela rotacionada para que ultrapasse a outra
superfcie polarizadora e ative os pixels. Quando os pixels de cristal lquido so
ativados, bloqueiam a passagem de luz. Milhares desses pixels so localizados em
duas matrizes para cada exibio. Depois que o cristal lquido bloqueia a passagem de
luz para exibir a cena, a luz deve ser refletida da matriz LCD para os olhos, provendo
brilho para a cena. As cores podem ser obtidas em processo semelhante ao CRT, onde
so utilizadas mscaras com as cores: vermelho, verde e azul, responsveis por filtrar
as posies especficas de cada pixel. A Figura 8 demonstra o esquema dos
componentes dos monitores LCD (Hearn e Baker, 1997) e a Figura 9 demonstra um
HMD com display LCD.

1.5.1.2.1.3. Displays OLED

J os monitores dos HMDs OLED, os mais recentes do mercado, trabalham


de maneira semelhante aos LCDs, entretanto, so baseados em diodos orgnicos
emissores de luz e no necessitam de luz traseira para funcionar, acarretando um
menor consumo de energia baixa voltagem. Esta tecnologia possui telas planas
muito mais finas, leves e baratas que as atuais telas de LCD. A idia usar diodos
orgnicos, compostos por molculas que emitem luz ao receberem uma carga eltrica

52

atravs de filamentos metlicos que conduzem os impulsos eltricos a cada clula.


Quando uma voltagem aplicada aos eletrodos, a carga comea a se mover no
dispositivo sob influncia do campo eltrico, assim, os eltrons deixam o catodo e as
cargas positivas deixam o anodo em direes opostas. A combinao das cargas, na
camada emissora, leva criao de um fton de molculas emissoras, que sob energia
eltrica gera a luz.

Figura 8- Esquema dos componentes formadores dos monitores LCD, onde a luz polarizada
rotacionada para ativar os pixels e assim bloquear a passagem de luz. Posteriormente, a luz deve ser
refletida da matriz LCD para os olhos, provendo brilho para a cena (GeorgiaTech, 2006)

Telas LCD

Headphones

Figura 9 Exemplo de HMD com duas telas LCD e dois headphones (Darpa, 1996)

53

A vantagem que ao contrrio dos diodos tradicionais, estas molculas podem


ser diretamente aplicadas sobre a superfcie da tela. Como desvantagens apresentam
uma rpida degradao do material que compe as telas, no suportam resoluo
maior que 800x600 pixels e tm baixo ngulo de viso horizontal (42 graus)
(Daeyang, 2005). A Figura 10 demonstra a movimentao de cargas para a formao
da luz e a Figura 11 mostra um HMD com display OLED.

Figura 10 Representao da movimentao das cargas positivas e negativas para a formao da luz,
aplicada sobre a superfcie da tela (Nieto, 2006)
Telas OLED

Headphones

Figura 11 Representao de HMD OLED com duas telas e dois headphones (Vrealities, 2007)

O correto funcionamento de um HMD baseia-se em duas principais diretivas:


o posicionamento do plano de imagem e a disparidade focal (VResources, 2007).

54

Para entender o processo, faz-se necessria compreenso da teoria do stress


biolgico humano, a qual diz que notamos a presena de um plano de imagem
localizado a alguns metros dos olhos do observador. O valor 2 metros representa o
melhor ponto de operao pelas seguintes razes. Esta distncia utilizada para
minimizar o stress muscular causado pela grande variao entre a distncia do plano
da imagem e a distncia do objeto virtual.
Com o plano da imagem a 2 metros, possvel exibir um objeto a 1 metro de
distncia e ter 5% de variaes do esforo necessrio. Alm disso, todos os objetos
exibidos atrs do plano de imagem ainda estaro prximos do foco necessrio desde
que a variao do esforo a partir de 2 metros at o infinito seja sempre inferior a 5%.
Em modelos mais recentes, o esforo muscular absoluto nunca ultrapassa 10%, sob
qualquer circunstancia, no importando a posio do objeto virtual.
Assim, os 2 metros de distncia do plano de imagem permitem a visualizao
de uma imagem relativamente clara, sob uma escala de 1 metro at o infinito, mesmo
com um foco ptico fixo, como na maioria dos HMDs encontrados no mercado.
Evidente que mesmo com um esforo mnimo, ainda no o ideal. Assim,
pesquisadores da rea buscam desenvolver um sistema ptico adaptativo, capaz de
alterar a distncia do plano da image dinamicamente.
O Segundo principal ponto relativo aos HMDs trata-se do campo de viso
(FOV), e a sua relao com a mnima distncia onde o objeto se apresenta,
considerando que as aes devem ocorrer de forma com que a magnitude do campo
de viso e os limites humanos devem trabalhar em conjunto.
Dependendo do campo de viso e da distncia entre o plano de imagem e o
observador, o mnimo ponto de apario de um objeto virtual ser, geometricamente
falando, varivel. Se o objetivo do uso de HMDs na aplicao for um nvel de
imerso razovel, deve assegura-se que o campo de viso seja suficiente, levando em
conta a distncia do plano de imagem, para permitir a gerao de imagens dentro dos
limites fisiolgicos do ser humano.
Geralmente, pode-se afirmar que o campo de viso de um HMD no consta
como fator limitante, considerando a distncia mnima de apario de um objeto
virtual na cena. Assim, o limite imposto pelo mximo stress suportado pelo usurio.
Desta maneira, 1 metro ocorrer no pior caso.

55

1.5.1.2.2. Projetores

Os projetores desempenham um papel crucial nos sistemas de RV imersivos


ou parcialmente imersivos. O brilho e a alta resoluo so fatores que melhoram a
qualidade da imagem, assim aumentam a sensao de imerso. Alguns projetores
possuem a capacidade de gerar imagens para estereoscopia ativa e outros, atravs da
combinao com outro projetor, so capazes de fornecer estereoscopia passiva.
Atualmente existem trs tipos de projetores: CRT, LCD e DLP (Gattass et al, 2004).
Os projetores CRT, os mais antigos, possuem trs canhes de eltrons,
responsveis pela gerao das trs componentes de cores primarias. A imagem ento
formada, semelhante ao mtodo descrito na seo anterior, e depois projetada com o
auxlio de lentes na tela de projeo.
Os projetores baseados em sistemas LCD tambm baseiam-se no processo
descrito anteriormente, com a diferena de sempre possurem matriz ativa, a qual
permite que uma determinada linha e coluna da tela de cristal lquido seja endereada
e receba uma carga capaz de ser mantida at o prximo ciclo de atualizao da tela.
Com esta carga possvel controlar a intensidade da luz que ir passar por
determinado pixel. Ao fazer isso em pequenos incremento, possvel criar uma escala
de cinza.
J os projetores DLPs utilizam semicondutores ticos para a manipulao
digital da luz, dividida em trs fases: semicondutor, onde o processo de acender um
pixel ocorre pela movimentao de micro-espelhos posicionados em uma malha
retangular; imagem cinza, obtida pela freqncia de movimentao dos microespelhos ao serem atingidos pela luz, onde quanto maior a freqncia, mais claro ser
o pixel, dentre 1024 nveis; e adio de cor, obtida pela utilizao de mscaras,
semelhante aos LCDs. A combinao da freqncia de cada micro-espelho com as
componentes da mscara pode produzir 16.7 milhes de cores diferentes.

1.5.1.2.3. Workbenchs e CAVEs

Com o emprego de projetores, mltiplas telas de projeo e espelhos,


possvel criar as mais variadas configuraes de ambientes de visualizao para RV,
como as Responsive Workbenchs e CAVEs, de maneira que, a projeo de imagens

56

sobre tais espelho, permite o direcionamento dos raios para superfcies especficas,
como telas translcidas (Gattass et al, 2004).
A Workbench um espao interativo e tridimensional, onde imagens
estereoscpicas so projetadas em um topo de mesa horizontal, utilizada como
superfcie de visualizao. A projeo ocorre por um sistema de projetores e espelhos,
onde os raios projetados atravessam a superfcie translcida da mesa e so
visualizados por meio de culos 3-D estro-ativos (culos oburadores). O movimento
da cabea do usurio acompanhado utilizando um sistema de rastreamento com seis
graus de liberdade (6DOF). Desta maneira, o usurio pode ver o ambiente virtual
atravs do ponto de vista correto, entretanto restrito a apenas uma pessoa. A Figura 12
apresenta um exemplo de Responsive Workbench.
J a CAVE trata-se de uma sala cujas paredes, teto e cho so superfcies de
projeo, ou seja, sobre cada superfcie semitransparente da sala existe um sistema de
cmeras e espelhos responsveis por transmitir determinada poro da cena virtual. A
fuso das partes de cada cmera forma a cena completa e prov ao usurio a sensao
de imerso no ambiente.

Este dispositivo requer que as projees estejam

sincronizadas e as bordas das imagens sejam combinadas, para que uma juno seja
imperceptvel. A gerao de uma perspectiva do usurio em uma CAVE no um
problema simples e deve ser calculada com base na posio do usurio, a rotao sua
cabea e a tela de projeo. A Figura 13 ilustra o funcionamento de uma CAVE.

Projetor
Superfcie
translcida
Espelho

Figura 12 - Representao de uma Responsive Workbench, onde as imagens so projetadas sobre um


espelho abaixo da mesa e incididas em sua superfcie translcida (Scgl, 2006)

57

Espelhos

Projetores

Figura 13 - Representao do funcionamento de uma CAVE, onde o usurio sente-se imerso atravs
das diversas projees a sua volta, cada qual retratando uma parte da cena
(Buxton e Fitzmaurice, 1998)

1.5.2. Dispositivos de entrada de dados

O usurio de um sistema de RV pode sentir-se dentro do ambiente sinttico


por intermdio dos dispositivos de sada de dados. J os dispositivos de entrada, por
outro lado, permitem o envolvimento do usurio e sua interao com tal ambiente.
Sem um dispositivo de entrada de dados adequado o usurio participa da experincia
de RV de forma passiva.
Pimentel (1995), divide os dispositivos de entrada em duas categorias:
dispositivos de interao e dispositivos de trajetria. Os dispositivos de interao
permitem ao usurio a movimentao e manipulao de objetos no mundo virtual
(mouse, teclado, joysticks). Os dispositivos de trajetria, por sua vez, monitoram
partes do corpo do usurio, detectando seus movimentos e criando a sensao de
presena no mundo virtual (dispositivos de rastreamento).

58

1.5.2.1. Dispositivos de convencionais de entrada de dados

Os dispositivos de convencionais de entrada so perifricos de usabilidade


comum, destinados a usurios comuns e sistemas de propsito geral. So eles:
teclado, mouse, trackballs, digitalizadores de mesa (scanners), canetas digitais e
microfones. No mbito de sistemas de Realidade Virtual, os dispositivos noconvencionais de entrada de dados podem contribuir para o desenvolvimento de
ambientes interativos e semi-imersivos, porm, no provem o realismo e o
envolvimento tal qual fornecidos por sistemas virtuais dotados de dispositivos noconvencionais, descritos na prxima sesso e utilizados no presente trabalho.

1.5.2.2. Dispositivos no-convencionais de entrada de dados: Rastreadores


e Luvas Digitais

Os dispositivos de rastreamento tratam-se de perifricos no-convencionais de


entrada de dados destinados a sistemas de RV. Graas a estes dispositivos, o usurio
pode interagir com os objetos da cena virtual atravs de comportamentos interativos
de manipulao direta (behaviors), contextualizando-se com a idia original bsica de
um sistema de RV, onde se busca a interao natural do usurio com o ambiente
virtual (VResources, 2007). O modo como os participantes interagem com o sistema
de RV influencia enormemente suas experincias, afetando a facilidade de uso do
sistema, a sensao de imerso do usurio e a variedade de aes que podem que o
usurio pode tomar dentro do ambiente de RV (Gattass et al, 2004).
J as luvas digitais comportam-se como dispositivos de entrada, devido
principalmente a uma caracterstica em comum: seus dispositivos de rastreamento.
Assim, as luvas digitais funcionam como suporte aos vrios sensores, mecnicos,
ticos, acsticos, inerciais e magnticos, utilizados para capturar dados fsicos como a
posio e a orientao espacial de um objeto, com complexidade varivel.

1.5.2.2.1. Rastreamento por campo magntico

Este modo de deteco permite o rastreamento no espao atravs de 6 graus de


liberdade (6DOF). O princpio consiste em emitir trs impulsos de rdio utilizando

59

antenas e bobinas, orientadas segundo os eixos de coordenadas cartesianas, as quais,


sob corrente eltrica, geram um campo magntico. O usurio tem a mesma
configurao de antenas como o emissor, para que possa captar cada onda de radio e
assim determinar a intensidade do sinal sob cada eixo. A forca global das trs antenas
do receptor dar a distncia relativa da fonte emissora. A presena de objetos
metlicos na rea provoca interferncias na transmisso, configurando-se um
inconveniente ao mtodo. Alm disso, o sistema restrito a pequenos espaos, devido
ao alcance do campo magntico de no mximo 3 metros, sem canal de comunicao
desobstrudo.
Os movimentos so ento interpretados por software, que podem acompanhar
o dispositivo ou ser programado manualmente. Alguns modelos podem ainda fornecer
feedback, provendo a sensao de tato e categorizando as luvas de dados tambm

como um dispositivo de sada.


Estes dispositivos so bastante precisos, cerca de 1 a 2 mm para posio e 0.1
para orientao, sendo que sua velocidade de captura varia de 100 a 200 leituras por
segundo.A Figura 14 apresenta uma luva digital 5DTGlove com sensores magnticos.

1.5.2.2.2. Rastreamento por correlao ptica

Este mtodo utiliza-se de anlise estereoscpica, correlacionando pixels


comuns a duas imagens, vistas por 2 cmeras offset. Como na transmisso magntica,
esta tcnica requer uma desobstruo do canal de comunicao, para que as cmeras
possam ver os pontos a serem triangularizados (correlao de pixels entre as imagens)
em posies tridimensionais, representados por diversos LEDs posicionados no
dispositivo. Entretanto, este dispositivo de rastreamento livre de interferncias.
Sua velocidade depende muito do sensor empregado, limitado a amostragem
no caso de uma cmera padro NTSC, a qual consegue capturar imagens a 30 quadros
por segundo. J sua preciso, usualmente suficiente, depende de tcnicas de
calibrao das cmeras e extrao de informao da imagem, em geral empregadas
sob algoritmos de viso computacional. A Figura 15 apresenta uma Impulse Glove
com emissores para correlao ptica.

60

1.5.2.2.3. Rastreamento Mecnico

Este dispositivo baseia-se no princpio de medio de ngulos e distancias


entre juntas, onde dada uma posio conhecida, todas as outras podem ser
determinadas pela relao entre as juntas. Os rastreadores podem estar presos ao cho
ou mesmo anexos ao corpo do usurio, na forma de exoesqueleto. Rotaes e
distncias podem ser medidas por engrenagens, potencimetros ou sensores de dobra.
Suas vantagens encontram-se na facilidade de implementao de feedback de fora,
aplicando uma fora contrria ao movimento do usurio. Possui alta preciso (0.1
para orientao) e baixo tempo de resposta (200ms). A Figura 16 apresenta uma luva
com sensores mecnicos e suas engrenagens.

Sensores
Magnticos

Vestimenta de
nylon

Figura 14 5DTGlove com sensores magnticos, onde o receptor detecta a intensidade do sinal sob os
trs eixos, caracterizando o movimento (Dayeang, 2007)

Vestimenta
de nylon

LEDs
emissores
para
correlao

Figura 15 Impulse Glove com rastreamento ptico, que determina a posio por correlao de
posies sob diversos emissores LEDs (PhaseSpace, 2008)

61

Vestimenta
de nylon

Sensores de
dobra

Figura 16 - Representao da luva digital com sensores mecnicos, os quais mapeiam os movimentos
na cena atravs de deslocamentos fsicos do exoesqueleto (Marcus, 1991)

1.5.2.2.4. Rastreamento Acstico

Utilizam ondas sonoras ultra-snicas para medir distncia, baseando-se em


tempo de vo e coerncia de fase, tendo como objetivo transformar tempo de resposta
em

distncia.

Neste

mtodo

de

rastreamento,

utiliza-se

apenas

um par

emissor/receptor, o qual fornece a distancia de um objeto em relao a um ponto fixo


e trs pares fornecem a posio exata do perifrico.
Quanto preciso, o rastreador acstico prov um atraso devido espera do
sinal, dependente da baixa velocidade da velocidade do som. Paralelamente, o
desempenho do dispositivo degradado em ambiente ruidoso e sob caminho
obstrudo entre os autofalantes e microfones.

Devido a estas restries de

interferncia, a distancia entre receptor e transmissor no deve ultrapassar 15 metros.


A Figura 17 demonstra uma luva digital com rastreamento acstico Logitech Tracker.

1.5.2.2.5. Rastreamento Inercial

Os dispositivos de rastreamento inerciais tm seu princpio de funcionamento


baseados na segunda lei de Newton onde, F = ma e M = I , sendo assim, o sistema
deve integrar a leitura para obter a velocidade e a posio (Gattass et al, 2004). Possui
trs variantes de sensores: os magnetmetros passivos, que medem o campo

62

magntico do ambiente e fornece medidas angulares, os girmetros, que fornecem


apenas medidas angulares e os acelermetros, que fornecem medidas lineares.
Este mtodo de rastreamento apresenta grande preciso, sendo capaz de
alcanar uma resoluo angular de at 0.2 em alguns casos. Tambm livre de
interferncias, pois o sistema autocontido, no havendo a necessidade de um ponto
externo para a obteno de dados, e livre de restries fsicas, limitado apenas pela
conexo entre o dispositivo e o computador. Um exemplo de perifrico noconvencional que utiliza esse tipo de sensor a CyberGlove (Immersion, 2007),
representada na Figura 18.

Vestimenta
de nylon

Sensores
acsticos

Figura 17 - Luva digital com rastreamento acstico, onde a mesma pode ser localizada no espao
atravs do tempo de resposta da onda sonora do trs receptores, relativos aos trs eixos tridimensionais
(VRDepot, 2007)

Sensor de
inrcia

Vestimenta de
nylon ou couro

Figura 18 - Representao de uma CyberGlove com sensores inerciais, os quais registram os


deslocamentos a partir de uma posio de origem definida pelo sistema (Immersion, 2007).

63

A seguir, no Captulo II so apresentados os principais aspectos que envolvem


a Tomografia Computadorizada e a Cincia de Solos, contextualizando a rea de
aplicao do presente trabalho e a origem dos modelos tridimensionais utilizados.

64

Captulo II
Tomografia Computadorizada e sua Aplicao na
Cincia de Solos

2.1. Histrico da Tomografia Computadorizada

Em 1917, o matemtico austraco Radon foi o primeiro a apresentar uma


soluo matemtica das equaes de reconstruo de corpos a partir de projees,
determinando a funo de distribuio de densidade da regio estudada atravs de
suas projees, no campo da gravitao (Radon, 1917).
O embrio da tomografia computadorizada (TC) de raios-x pode ser
encontrado nos trabalhos de Takahashi, onde planos indesejveis foram eliminados no
processo de aquisio, colocando a fonte de raios-x e o filme em um mesmo plano
(Takahashi, 1957). Posteriormente em 1961, Oldendorf desenvolveu um primeiro
aparato rstico para obter imagens atravs da transmisso de raios , promovendo a
evoluo dos instrumentos para a TC (Oldendorf, 1961).
O desejo de separar estruturas superpostas tambm levou ao desenvolvimento
de uma variedade de tcnicas tomogrficas analgicas, especialmente a tomografia
axial (seces transversais), porm geravam maus resultados. Pesquisadores

65

reconheceram, ento, que um computador seria necessrio para realizar o refinamento


das imagens.
Nos anos 70, Hounsfield e sua equipe da EMI Corporation desenvolveram o
primeiro

tomgrafo

computadorizado,

dedicado

aplicaes

mdicas,

comercialmente vivel, baseado em uma fonte de Americium (Am) e um detector de


NaI (TI), onde a fonte e o detector foram posicionados em sentidos opostos na mesma

direo sobre uma mesa motorizada que possibilitava sua rotao e translao
(Hounsfield, 1973). Este tomgrafo permitiu pela primeira vez a visualizao de
estruturas internas do corpo atravs de seces transversais, e ainda, gerar dados
substanciais para reconstruir at mesmo objetos no simtricos, trabalho pelo qual os
pesquisadores receberem o prmio Nobel de Medicina em 1979. Hounsfield dividiu o
premio com Allan Cormack, professor de Fsica da Universidade de Carpe Town,
que, paralelamente, desenvolveu uma srie de algoritmos de reconstruo de imagens,
baseados nos mtodos matemticos previstos por Radon (Cormack, 1973).
Com base em experimentos e observaes, Cormack formulou uma matriz de
coeficientes para cortes seccionais, que poderia ser obtida pela medida da transmisso
de raios-X em vrios ngulos atravs de um corpo (Cormack, 1973).
Aplicaes da tomografia computadorizada destinada agricultura foram
discutidas inicialmente em 1981 por fsicos e engenheiros eletrnicos da Fundao
Educacional de Barretos (FEB), Universidade de Campinas (Unicamp) e
Universidade de So Paulo (USP), de onde se originou um projeto multidisciplinar
para o desenvolvimento de mtodos e equipamentos.
O uso de TC em fsica do solo tambm foi discutido por Petrovic
(Petrovic,1982),

Hainswoth

Aymores

(Hainsworth,

1983)

Crestana

(Crestana,1986). Petrovic demonstrou a possibilidade de usar um tomgrafo


computadorizado de raios X para medir a densidade de volumes de solos, enquanto
que Crestana demonstrou que a TC pode solucionar problemas ligados ao estudo da
umidade dos solos.
Em 1984, foi criado o Centro Nacional de Pesquisa e Desenvolvimento de
Instrumentao Agropecuria (CNPDIA), da Empresa Brasileira de Pesquisa
Agropecuria (EMBRAPA), instalada em So Carlos-SP. Assim, tornou-se possvel o
avano do desenvolvimento de tcnicas de tomografia de raios-x e no estudo de
solos.

66

Em 1985 foi criado no Brasil um tomgrafo de raios X e raios automatizado


e de baixo custo, projetado e desenvolvido inteiramente no Brasil pela mesma equipe
de pesquisadores com o objetivo de aplicaes multidisciplinares, especialmente na
agricultura.
Em

1987,

Cruvinel

colaboradores,

desenvolveram

na

Embrapa

Instrumentao Agropecuria, um minitomgrafo, baseado em fontes de raios-x e


raios , destinado ao estudo de amostras de solo e plantas. O minitomgrafo tambm
possibilitou experincias com diversas fontes de radiao em diversas energias
(Cruvinel, 1987) (Cruvinel, 1990) (Cruvinel, 1996). O desenvolvimento deste
minitomgrafo tem influenciado vrios projetos com o propsito de melhoramento da
visualizao e manipulao das imagens adquiridas e dos algoritmos de reconstruo,
bem como o aperfeioamento do hardware do minitomgrafo (Venturini, 1995)
(Minatel, 1997) (Granato, 1998) (Cruvinel, 2000) (Pereira, 2001) (Pedrotti et al,
2003), (Cruvinel, 2006), (Pereira, 2007), (Pereira et al, 2007), (Laia, 2007), (Laia et
al, 2007) e (Laia et al, 2008). A parceria com a Universidade Federal de So Carlos

tem contribudo de forma importante para o desenvolvimento em nvel computacional


do minitomgrafo.
Para fornecer suporte adequado aos diversos sistemas de aquisio, em
especial a Tomografia Computadorizada (TC), surgiram diversos algoritmos de
reconstruo sob complexas tcnicas computacionais que so capazes de reconstruir
uma imagem a partir de projees tomogrficas devidamente filtradas, de forma a
amenizar rudos provenientes de vrias fontes, como do prprio tomgrafo (Minatel,
1997) (Pereira, 2001) (Pereira, 2007).

2.2. Procedimentos de Tomografia Computadorizada

Em radiologia, uma Tomografia Computadorizada (TC) uma imagem


resultante do tratamento informatizado dos dados obtidos numa srie de projees
angulares de raios-x, representando uma seco transversal, ou fatia, do corpo ou
objeto em estudo. A TC, tal como a radiologia convencional, baseia-se na atenuao
dos feixes de raios-x, parcialmente absorvidos pelos diversos materiais. Materiais

67

como plstico e gua so facilmente atravessados pelos raios-x, ao contrrio dos


metais (Kak e Slaney, 1988).
O objeto tomografado ento atingido pela radiao e os feixes saem mais
fracos do que entraram. Assume-se que os mesmos so to finos que podem ser
tratados matematicamente como linhas retas (unidimensionais sem rea).
H dois fatores que reduzem a intensidade dos feixes: a densidade do material
e o comprimento da interseco do feixe com o material. Supe-se que cada poro
do objeto tenha uma determinada densidade, no sentido de ter maior ou menor
capacidade de atenuar os feixes. Essa capacidade de atenuar os feixes que medida,
com base na intensidade emitida pela fonte de raios-X e na intensidade captada por
um detector na outra extremidade da reta de propagao. Assim, pode-se determinar o
peso da atenuao do objeto, dado essencial para o processo de reconstruo, o qual
possibilita deter um mapa de coeficientes lineares da seco transversal do objeto.
Este mapa de coeficientes representado atravs de pixels, cujos valores so
chamados nmeros CT (Computer Tomography). Esses nmeros so normalizados em
funo do coeficiente de atenuao da gua (zero). Em outras palavras, definem-se os
nmeros CT por:

NmeroCT =

H O
1000
H O

(2.1)

onde o coeficiente de atenuao do corpo analisado. Com esse numero possvel


a obteno de um mapa de coeficientes de atenuao, o que permite uma analise mais
detalhada do corpo em estudo.
Basicamente, uma TC indica a quantidade de radiao absorvida, com o valor
do sinal expresso em unidades Hounsfield, por cada poro da seco analisada. Tal
valor traduzido em uma escala de cinza e produz uma imagem. Como a capacidade
de absoro de raios-x de um material est intimamente relacionada com sua
densidade,

zonas

com

diferentes

densidades

tero

diferentes

intensidades

monocromticas. A principal vantagem da TC permitir o estudo de seces


transversais de matrias sem intruso, uma melhoria sem paralelo em relao s

68

outras tcnicas de anlise do solo, que, em geral, so invasivas e podem destruir


caractersticas importantes a serem observadas.
Imagens de alta qualidade, provenientes de processos de TC previnem que
materiais encontrados no solo no sejam interpretados de maneira errnea. A busca
dessa qualidade alcanada quando a imagem processada corresponde ao material
encontrado por uma busca manual intrusiva.

2.3. Algoritmos de Reconstruo

O objetivo do processo de reconstruo de imagens tomogrficas , a partir de


um objeto tridimensional f(x, y, z), obter uma fatia representada por f(x, y, 0), de
forma no destrutiva e no invasiva, a partir de suas projees tomogrficas.
Os dados necessrios para a reconstruo de f(x, y, 0) consistem em um
conjunto de integrais ao longo dos raios que atravessam o objeto. Assim, a linha
tracejada, conforme demonstra a Figura 19, parte da fonte para o detector, atravessa o
objeto e, medida que eles se propagam atravs dos eixos L e L, formam com eixo x
um ngulo . Obtm-se ento a projeo no ngulo , representada por P(t).

Figura 19 - Ilustrao da tomografia de transmisso

A posio do detector representada pela varivel t. Com isso a funo de


integrao do objeto ao longo do raio uma integral de linha. Cada integral de linha

69

dos feixes paralelos linha entre a fonte e o detector forma uma projeo paralela.
Com as projees com variando no intervalo 0 < , teremos a Transformada de
Radon do objeto e, consequentemente, atravs da Transformada Inversa de Radon,
possvel reconstruir o modelo tomografado. A Figura 20 demonstra a incidncia de
feixes paralelos sobre o objeto.
Os algoritmos de reconstruo conhecidos tm como entrada os coeficientes
de atenuao obtidos pela projeo da radiao sobre o objeto e produzem como sada
uma matriz de tons de cinza da imagem estimada, baseando-se nos dados disponveis.
A estimativa da imagem varia de mtodo para mtodo. Contudo a qualidade dos
resultados depende de como os dados foram coletados e do objeto que est sendo
inspecionado.
Tais algoritmos, do ponto de vista matemtico e computacional, determinam
como reconstruir um objeto f (x, y), a partir dos dados de suas projees em diversas
direes. Entretanto, as dificuldades matemticas e computacionais na reconstruo
so aumentadas pela presena de rudos diversos, causados por falhas no ajuste das
direes das projees e posicionamento dos feixes.

Figura 20 Representao dos feixes paralelos incidindo sobre f(x, y).

70

Se uma fonte de raios x usada, a integral de linha AB, equivalente integral


de linha que possibilita obter os coeficientes de atenuao do objeto, permitindo ao
algoritmo de reconstruo, atuar sobre os mesmos, como mostra a Figura 21,
esquematizando o procedimento para a reconstruo a partir da Transformada de
Radon.
O raio AB da Figura 20 no plano z=0 pode ser expresso matematicamente por:
t1 = x cos + y sen

(2.2)

onde t1 a distancia perpendicular da origem at a linha. Com o uso desta equao do


raio, a integral do raio dada por:

P (t1 ) =

raioAB

f ( x, y, 0)dxdy =

ym xm

ym xm

f ( x, y, 0) (x cos + y sen t1 )dxdy

(2.3)

Figura 21 Projeo paralela de f(x,y) para a Transformada de Radon

Rotacionando-se o eixo das coordenadas x sobre o eixo z por um ngulo , o


eixo t e a projeo pode ser escrita por:

P (t1 ) =

sm

sm

onde:

f (t1 , s, 0)ds

(2.4)

71

t1 = x cos + y sen e s = x sen + y cos

(2.5)

Com Pi (t ) sendo uma funo de t representando a projeo paralela com


ngulo

i .

Para contnuo, a funo Pi (t ) a Transformada de Radon de f (x, y, 0),

com as projees obtidas paralelamente rotao no eixo x nomeadas por t.


No caso tridimensional, um raio pode ser descrito pela interseco de dois
planos, ou seja, uma vez que t1 = x cos + y sen , nas coordenadas (t, s', r) tem-se:
r1 = ( x sen + y cos ) sen + z cos

(2.6)

Tal sistema de coordenadas obtido por duas rotaes dos eixos (x, y, z). A
primeira rotao, anlogo ao caso bidimensional, utilizando-se o ngulo com o eixo
z, resultando no eixo (t, s, r). A segunda rotao ocorre sob o ngulo com o novo
eixo t, resultando em (t, s', r). Em formato matricial, as equaes podem ser
representadas por:
0
t 1
s ' = 0 cos

r 0 sen

0 cos
sen = sen
cos 0

sen 0 x
cos 0 y
0 1 z

(2.7)

Sendo uma projeo paralela tridimensional representada por:

P (t1 , r1 ) =

sm

sm

f (t1 , s ', 0)ds '

(2.8)

A projeo resultante agora bidimensional e obtida pela integrao das


linhas paralelas no eixo s. Assim a integral de linha pode ser matematicamente
expressa na forma apresentada.

2.3.1. Reconstruo Bidimensional

A funo imagem descreve a distribuio dos coeficientes de atenuao na


rea da seco transversal em estudo. Aps a varredura tomogrfica, montada a

72

matriz de nveis de cinza (matriz de contagem). A partir dessa matriz possvel


reconstruir a imagem tomogrfica utilizando um dos mtodos de reconstruo que so
descritos a seguir.

2.3.1.1. Mtodo Algbrico - ART

ART um mtodo iterativo, no qual a reconstruo da imagem estimada a


partir de aproximaes sucessivas, at que as projees calculadas se aproximem de
determinadas medidas dentro de uma determinada margem de erro. A metodologia
utilizada para verificar a correo da imagem, calcula as integrais de linha e comparaas com tais medidas, utilizadas como referncia para melhorar a estimativa da
reconstruo (Ribeiro, 1994).
Este mtodo, utilizado por Hounsfield no desenvolvimento do primeiro
tomgrafo computadorizado, apresenta como vantagem a no necessidade do
conhecimento do conjunto complexo dos dados das projees. Este fato permite
minimizar o tempo de varredura e torna possvel reconstruir uma amostra que
apresenta em seu interior um material opaco, inerente radiao emitida. Como
desvantagens, o mtodo apresenta baixa preciso e maior tempo de processamento em
relao aos mtodos por transformadas (Brooks, 1976).

2.3.1.2. Teorema das Seces Bidimensionais de Fourier

O Teorema das Seces de Fourier para projees tomogrficas base para a


maioria dos algoritmos de reconstruo. Tal teorema diz que a Transformada de
Fourier de uma projeo paralela de uma imagem g(x, y) sob um ngulo
equivalente a uma fatia de uma transformada bidimensional de g(x, y), representada
por G(x, y). Em outras palavras, a Transformada de Fourier de Pi (t ) fornece os
valores de G(1, 2) sobre a linha BB' mostrada na Figura 22.
Neste teorema a Transformada de Fourier unidimensional da funo g(x, y)
matematicamente relacionada com sua Transformada de Fourier bidimensional.

73

Figura 22 Teorema das seces de Fourier

O teorema diz que se diferentes projees so armazenadas em diferentes


posies ao redor do objeto, a Transformada de Fourier pode obtida. Se todas as
projees forem armazenadas o objeto pode ser reconstrudo diretamente pela
inverso da Transformada de Fourier.
O Teorema das seces de Fourier para a seco tomogrfica pode ser
representado de forma que G(1, 2) seja a Transformada de Fourier da imagem g(x,
y), podendo ser implementada por:

G (1 , 2 ) =

g ( x, y )e j 2 (1x +2 y ) dxdy

(2.9)

e sua inversa por:

g ( x, y ) =

G (1 , 2 )e j 2 (1x +2 y ) d1d 2

(2.10)

Em seguida, consideram-se os valores de G (1 , 2 ) , com a linha 2 =0 no plano


( 1 , 2 ). Da equao (2.9), G( 1 ,0) denota-se como:

j1 x
g ( x, y )dy e j1x dx
=
g
(
x
,
y
)
e
dxdy

G (1 , 0) =

= P (t )e

j1t

dt = S (1 )

(2.11)

74

A equao acima resultante de P (t ) =

g ( x, y )dy

) com =0 e t = x.

Pode-se observar que S ( ) a transformada de Fourier da projeo P (t ) . O


resultado G( 1 , 0) = S0 ( ) implica que a transformada de Fourier da projeo
calculada perpendicular ao eixo y, S0 (1 ) , igual a transformada de Fourier do
objeto sobre o eixo 1 . Resultado este que pode ser expandido para obter um
resultado similar para diferente de zero, rotacionando-se os eixos de coordenadas
(x, y) por um ngulo para formar o eixo t e s, por intermdio da equao 2.12.
x cos
y = sen

sen t
=
cos s

(2.12)

Transcrevendo para as coordenadas (x, y):

S ( ) =

g ( x, y )dse j ( x cos + y sen ) dxdy = G ( cos + sen )

(2.13)

Por intermdio de coordenadas polares ( , ) , pode-se obter G ( , ) :


G ( , ) = S ( )

(2.14)

A Transformada de Fourier da projeo P (t ) corresponde aos valores, no


domnio da freqncia, de G (1 , 2 ) sobre a linha BB com ngulo .

2.3.1.3. Algoritmo de Retroprojeo Filtrada

Um dos principais algoritmos de reconstruo, baseado em transformadas, o


algoritmo da retroprojeo filtrada, amplamente utilizados em aplicaes que
baseiam-se em fontes no difrativas. Vrios fatores contribuem para a ampla
divulgao desse algoritmo, dentre os quais a eficincia, preciso e baixo custo
computacional, alm de utilizar um hardware simples, o que se torna vantagem sobre
outros algoritmos de reconstruo.

75

Contudo, a preciso do mtodo limitada e a qualidade da imagem


reconstruda e freqentemente degradada pela presena de diferenas substanciais nos
coeficientes de atenuao de regies externas rea de interesse. Com o propsito de
se evitar tal problema, introduziu-se a varredura de sees transversais (transverse
section scanning), mostrado na Figura 23 com as respectivas projees geradas, onde
apenas as regies de interesse contribuem no resultado final. Neste tipo de varredura o
detector recebe as projees de uma estrutura em vrias direes e em um nico plano
transversal (Herman, 1973). O princpio desta tcnica o mesmo que o de qualquer
outra em tomografia: o coeficiente de atenuao (ou densidade) estimado pela soma
do total das densidades, isto a soma de todos os raios que atravessam o ponto.
O algoritmo descrito nesta seo trata-se, na realidade, de uma derivao do
teorema das seces de Fourier e sua implementao diferente do que o teorema
bsico sugere. Para iniciar a derivao faz-se necessrio o uso de coordenadas polares,
(1, ) no plano (1, ,2 ), como descrito a seguir:

g ( x, y ) =

G ( , )e j ( x cos + ysen ) d d =

G ( , )e j ( x cos + ysen ) d d

G ( , + 180) e j ( x cos( +180 ) + ysen ( +180 )) d d

(2.15)

Usando G ( , + 180) = G ( , ) e t = x cos + y sen , pode-se escrever


g(x,y) com a ajuda do teorema de seces de Fourier e a expresso para t em termos
de x e y, como escrito na equao (2.10) ou seja:

g ( x, y ) =

G ( , ) e jt d d = S ( ) e jt d d
0

(2.16)

Para construir a equao (2.16) sob a forma de retroprojeo filtrada,


necessrio separar a equao em duas partes distintas. A primeira trata-se da filtragem
dos dados de projeo para cada ngulo , como se segue:

Q (t ) = S ( ) e jt d

(2.17)

76

Depois as projees filtradas so retroprojetadas sob a forma:

g ( x, y ) = Q ( x cos + y sen ) d

(2.18)

Para que a filtragem descrita na equao (2.17) tenha o efeito desejado, faz-se
necessrio que as projees sejam limitadas em banda com a mxima freqncia de W
radianos/segundo. Assim, dada a propriedade do teorema de Nyquist, o valor de W
ser utilizado como freqncia deforma que s como:
2W s = 2 /

(2.19)

Se os dados de projeo descritos na equao (2.19) so amostrados com um


intervalo de amostragem t, os mesmos no sofreriam por erros de aliasing. Por meio
da limitao por banda, a equao acima expressa como o uso de funes de
transferncias de filtros H ( ) , como se segue:

Detector
Fonte

(a)

(b)

Figura 23 - Procedimento de varredura de um plano de um objeto tridimensional, no mtodo da


retroprojeo filtrada (a) Varredura do plano com = 0 ; (b) Varredura do plano com = 45; (c)
Varredura com = 90; (d) Varredura com = 35 (Pereira, 2001)

,
H ( ) =
0,

<W
outros

(2.20)

77

A substituio de H ( ) em (2.17) fornece

Q (t ) = S ( ) H ( )e jt d

(2.21)

A resposta impulsiva h(t) obtida pela Transformada Inversa de Fourier,


H ( ) :

h(t ) = H ( )e jt d =

1
2 2

sen(2 t / 2 ) 1
2 t / 2 4 2

sen( t / 2 )
t / 2

(2.22)

A verso amostrada do impulso resposta, o qual se conhece por filtragem


digital de dados amostrados de projees, dada por:
2
n = par
1/ 4 ,

h(n ) = 0,
n = par
1/ n 2 2 2 , n = mpar

(2.23)

Pelo teorema da convoluo, a equao (2.21) pode ser escrita como:

Q (t ) = P ( )h(t )d

(2.24)

a qual pode ser discretizada na forma:

Q (n ) =

k =

h(n k ) P (k )

(2.25)

Em aplicaes reais, a implementao cada projeo finita, fornecendo uma


verso truncada da equao (2.25):
N 1

Q (n ) = h(n k ) P (k )
k =0

n = 0,1, 2...N 1

(2.26)

78

onde P (k ) =0 para k<0 e k>N-1. Tal tipo de filtragem de dados de projeo pode ser
efetuada pela convoluo discreta no domnio do tempo ou como uma multiplicao
no domnio da freqncia, como a seguir:
Q (n ) = IFFT { FFT [ P ( n ) com ZP

] FFT [

h( n ) com ZP

] } (2.27)

onde FFT e IFFT so as Transformadas Rpidas de Fourier e sua Inversa,


respectivamente, e ZP o preenchimento por zero, o que contribui para a suavizao
do efeito aliasing. O passo seguinte da reconstruo a retroprojeo das projees
filtradas que tem sua aproximao discretizada por:

g ( x, y ) =
K

Q ( x cos
i =1

+ y sen i )

(2.28)

onde K ngulos i so os valores discretos de para cada P (t ) conhecido.


Cada ponto (x,y) no processo de retroprojeo que estejam sobre plano de
reconstruo na linha t possui o valor Qi(t). A adio de cada valor de Qi (t) no
ponto (x,y) com i variando de 1 at K constitui o valor do ponto em uma escala de
/K. O valor de Qi (t ) uma constante sobre a linha LM e cada ponto no plano de

reconstruo que tem o valor de Qi (t ) a ele adicionado. Em outras palavras, a


imagem da reconstruo gerada pela soma de todos os valores t de Qi (t ) , para cada
valor i , projetados e multiplicados por /K. Quando o valor de t calculado no
corresponde a algum dos valores de t na funo discretizada Qi (t ) , h a necessidade
de interpolao. Uma interpolao linear , em muitos casos, suficiente.

2.3.2. Reconstruo Tridimensional

O grande desafio da reconstruo tridimensional de imagens reconstituir um


corpo a partir simples projees bidimensionais, estimando dados internos de voxels2
faltantes. Entretanto, os problemas na reconstruo de corpos por meio de projees
2

Voxel: Menor unidade representativa de volume em espao tridimensional.

79

bidimensionais vm sendo solucionados atravs de diferentes algoritmos e


plataformas computacionais. Seus principais beneficirios vo desde medicina,
passando pelo estudo de solo at a microscopia eletrnica.
A principal diferena entre a aquisio de dados tomogrficos tridimensionais
e a aquisio de dados bidimensionais a redundncia de dados e a varincia espacial.
A Figura 24 mostra o processo de aquisio tridimensional.
O vetor unitrio zr ( , ) perpendicular ao plano de projeo e descreve a
orientao do plano. Considerando que xr z = 0 , as projees em formao,
oriundas do processo de aquisio, vm de uma funo tridimensional f (x, y, z), para
uma funo 4D p ( xr , yr , , ) .

yr

zr

zr

xr

y
x

p( x r , y r , , )
f ( x, y, z)

Figura 24 Projeo bidimensional a partir de aquisio tomogrfica tridimensional.

2.3.2.1. Teorema das Seces Tridimensionais de Fourier

Anlogo ao teorema das seces bidimensionais de Fourier, a Transformada


de Fourier bidimensional das projees equivalente aos valores do plano que passa
atravs da origem da Transformada de Fourier tridimensional do objeto no seu ngulo
apropriado como ilustra a Figura 25.
A Transformada de Fourier de projees para = 0 amostra completamente a
Transformada de Fourier do objeto. Isso significa que a Transformada de Fourier de
uma nica projeo adicional para > 0 acrescenta informaes redundantes quando
ela atravessa a Transforma de Fourier do objeto. Na prtica, com a discretizao de

80

um conjunto de projees existem mais dados com > 0 do que com = 0, gerando
um alto grau de redundncia, efeito que pode ser til ao processo de reconstruo, j
que contribui para a reduo de rudos estatsticos.
yr

zr

xr

FT 2D

z
vyr

vzr

vxr

FT 3D

Figura 25 Ilustrao do Teorema das seces de tridimensionais de Fourier

2.3.2.2. Sobreposio de fatias interpoladas

Quando disponvel apenas o mtodo de aquisio bidimensional de fatias


tomogrficas, a reconstruo tridimensional pode ser feita tambm a partir da
sobreposio das mesmas. Tal tcnica consiste em montar os planos gerados pelas
funes f(x ,y, zi) para i = 0, ..., n-1, onde n o nmero de planos reconstrudos.
Conseqentemente, dados especficos das fatias bidimensionais podem ser
interpolados de forma a reconstituir os espaos deixados entre estes planos
sobrepostos, reconstrudos bidimensionalmente. O menor elemento formado pela
reconstruo tridimensional comumente chamado de voxel. A Figura 26 ilustra a
sobreposio dos planos originais e os planos interpolados.

Voxel

Planos
Interpolados

Pixel

Planos
Reconstrudos

Figura 26 - Tcnica de sobreposio e interpolao de planos na reconstruo tridimensional.

81

2.3.2.3. Interpolao por B-Splines (B-Wavelets)

Existe uma relao direta entre a funes wavelet H e a funo B-Spline de


primeira ordem representada por N1 . Esta relao mostrada na Equao 2.29.

H ( x) = N1 ( 2 x) N1 ( 2 x 1)

(2.29)

e tem a relao com B-Spline de segunda ordem N 2 dada por:

H ( x) = N 2 ( 2 x)

(2.30)

melhor dizendo, o valor de N m pode ser dado pela Equao:

N 2 ( k ) = k ,1 k

Nm(k ) =
n k +1
k
N n ( k 1) k = 1,..., n
N n+1 ( k ) = n N n ( k ) +
n

(2.31)

Toma-se agora funo B-Spline L2 dada por L2 ( x ) = N 2 ( x + 1) onde L


definida pela Equao (2.32), na ordem m e com a seqncia de coeficientes ck
como:

Lm ( x ) =

k =

ck( m) N m x + k

(2.32)

Pode-se definir uma wavelet bsica como:

H ( x ) = L2 (2 x 1)

(2.33)

82

Seguindo esse desenvolvimento, pode-se conseguir Wavelets-Splines de


ordens superiores, ou melhor dizendo, pode-se gerar espaos de ordens superiores
pela relao:
V j(+m1) = V2(mm) Wj( m) , j .

(2.34)

{ }

Onde simboliza uma soma ortogonal, V pertence a seqncia V jm gerada


pela anlise de multiresoluo gerada pela B-Spline de m-sima ordem e W pertence a

{W } que a seqncia de espaos wavelets ortogonais complementares.


m
j

Na literatura encontra-se o teorema: Seja m um nmero inteiro positivo e


esima
definindo I ,m ( x ) = L(2mm) (2 x 1) onde L2 m a spline fundamental de ( 2m)
ordem.

Ento I ,m gera os espaos complementares Wjm , j da seguinte forma:


Wjm = fechoL2 ( ) 2 j / 2 I ,m ( 2 j x k ): k , j

(2.35)

2.3.2.3.1. Algoritmo de interpolao por B-wavelets

A interpolao por B-wavelets determina os valores intermedirios entre uma


seqncia de pontos conhecida. Diferentemente da aproximao, a interpolao no
apenas desloca a curva gerada sob a influncia dos pontos conhecidos, como tambm
faz com que essa curva passe por esses pontos. A Figura 27 ilustra essa diferena:

pontos conhecidos
pontos aproximados por B-wavelets
pontos interpolados por B-wavelets

Figura 27 Exemplo de interpolao e aproximao por B-Wavelets.

83

Para descrever a interpolao faz-se necessria uma discusso sobre o mtodo


de aproximao, seus problemas e suas solues computacionais.
Seja f uma funo de aproximao Spline de ordem m e com passo

= 2 j 0 dada por:
f ( ) =

a B( N i)
i

(2.36)

i =0

onde N o nmero de pontos conhecidos.


De forma a otimizar o processo de clculo, implementa-se a funo B( x) ,
tambm chamada de funo de blending, da seguinte maneira:

6
B(x ) = 1
6

1
(2 + x )3
6

(4 6 x 2 2 x 3 )
(4 6 x 2 + 2 x 3 )
1
(2 x )3
6
0

2 x 1
1 x 0
0 x 1

(2.37)

1 x 2
2 x

A implementao direta desta somatria fornece os valores intermedirios da


aproximao. No entanto, para os pontos inicial e final para m=4 , por exemplo, temse os valores:
f (0) =

2
1
a0 + a1 a0
3
6

(2.38)

f (1) =

2
1
a N + a N 1 a N
3
6

(2.39)

Para solucionar esse problema, adota-se o uso dos chamados pontos


fantasmas. Essa tcnica consiste em considerar um ou mais valores antes do ponto
inicial e depois do final.
So adicionados dois pontos fantasmas no incio e dois no final da seqncia

84

conhecida. Esses valores so ajustados de forma dinmica para que a curva a ser
gerada pela funo B-wavelet passasse pelos pontos inicial e final.
Esses pontos tm seus valores obedecendo a regra: a1 = 2a0 a1 e
a2 = 2a1 a0 para os pontos iniciais e a N +1 = 2a N a N 1 e a N +2 = 2a N +1 a N

para

os pontos finais.
A funo mostrada na Equao 2.36 fica da seguinte forma:

f ( ) =

N +2

a B( N i )

(2.40)

i = 2

Para a implementao da interpolao, ao invs da simples aproximao, usase uma funo muito prxima da funo de aproximao. Essa funo dada por:

f () =

N +2

A N ( N i )
i

(2.41)

i =2

A idia bsica usar a seqncia de pontos Ai no lugar de ai . Essa seqncia


dada pela multiplicao das matrizes A = M 1a , onde A o vetor (seqncia) a ser
encontrado, v o conjunto de pontos conhecidos com os pontos fantasmas e M uma
matriz N+3 x N+3 dada por:
N
2
1

0
M =

2
3
1
6

N
2
1
6
2
3

1
6

1
6

2
3
1
6
N

1
6
2
3
0

1
6
N

(2.42)

85

No Captulo III apresentado uma sntese da API Java3D, em sua mais


recente distribuio, com o propsito de contextualizao e justificativa da aplicao
da mesma no desenvolvimento de ambientes virtuais interativos e imersivos,
demonstrando a implementao de recursos computacionais grficos includos no
presente trabalho.

86

Captulo III
Introduo API Java3D em Contextualizao ao
Desenvolvimento de Sistemas de Realidade Virtual

Segundo Manssour (2003), a API Java 3D trata-se de um pacote com classes


e mtodos hierrquicos ideais para a construo de sistemas grficos tridimensionais.
Tal conjunto de classes possui construtores de alto nvel que viabilizam a criao e
manipulao de geometrias e importao de objetos, modelados sob diversas
ferramentas e formatos, definidos sobre um universo virtual. A API Java 3D tambm
possibilita a criao de ambientes sintticos com uma grande flexibilidade e
portabilidade, onde as cenas so representadas por grafos, seus atributos agrupados e
suas transformaes efetivadas. Desta maneira, a implementao de um programa
Java 3D se resume na modelagem, ou importao de modelos, e na sua atribuio a
grafos de cena, organizados em nodos hierrquicos. Os grafos de cena so
responsveis pela especificao do contedo do universo virtual e pela forma como
este visualizado.
Java3D foi desenvolvida pela Sun Microsystems, em conjunto com a Apple,
Intel e Silicon Graphics, e teve seu cdigo disponvel a partir de 1998. Com o intuito
de fornecer classes e mtodos grficos em uma plataforma independente, o Java 3D
surgiu como uma alternativa de desenvolvimento semelhante ao VRML (Virtual

87

Reality Modeling Language), porm mais otimizada e baseada em tecnologias como o


OpenGL e o DirectX.

3.1. Universos Virtuais

Para a criao e manipulao de geometrias, os programadores utilizam


construtores de alto nvel, pois os detalhes para a gerao das imagens so abstrados
e instanciados automaticamente. Representaes tridimensionais, juntamente com
luzes, som e outros elementos integrados, compem um universo virtual. Neste
universo podem existir um ou mais grafos de cena, os quais cuidam da organizao
dos nodos em uma estrutura do tipo rvore (hierrquica).

3.2. Grafos de Cena

Instncias de classes Java 3D que definem luz, som, orientao espacial,


aparncia, geometrias e localizao, representam um Grafo de Cena. Tais instncias
so reconhecidas na estrutura pelos nodos (ou vrtices) e os seus respectivos
relacionamentos, identificados por arcos (ou arestas). As mesmas representam
relacionamentos por referncia, o qual simplesmente associa um objeto com o Grafo
de Cena. Os nodos tambm so organizados hierarquicamente (pai-filho), onde um
nodo de agrupamento pode ter filhos, os quais contm suas definies e
transformaes, e apenas um pai. Um nodo do tipo folha no pode ter filhos. Em
um Grafo de Cena habitual, conforme a Figura 27, os nodos do tipo grupo so
identificados graficamente por elipses, e as folhas por tringulos. Assim, uma elipse
considerada a raiz, e os demais so acessados hierarquicamente (Selman, 2002) (Sun,
2007).
Por questo de padronizao, cada grafo de cena deve conter um nico
Universo Virtual, (VirtualUniverse). Tal objeto configura o universo a ser utilizado e
possui pelo menos um objeto Locale, que demarca um ponto de referncia no
universo virtual e funciona como ponto base de todos os nodos de agrupamento
(BranchGroup). A principal finalidade dos nodos de agrupamento associar outros
nodos atravs de algum atributo comum ou por meio de um conjunto de
caractersticas.

88

Os nodos associados a um Grafo de Cena regem duas categorias bsicas


comportamentais: os nodos que descrevem o contedo do universo virtual (content
branch graphs ou subgrafo de contedo), os quais tratam de aparncia, geometrias,
localizaes, sons e iluminao, e os nodos que controlam os parmetros de controle
da visualizao da cena (view branch graphs ou subgrafo de visualizao). Tal
diviso de categorias pode tambm ser observada pela Figura 28.

Figura 28-Representao da estrutura hierrquica de um Grafo de Cena habitual, onde os nodos de


agrupamento so representados por elipses e os nodos folha so representados por tringulos. Podese tambm observar a subdiviso do Grafo em Subgrafo de Contedo, compreendendo a metade
esquerda, e Subgrafo de Visualizao, demonstrado pelo lado direito da estrutura.

3.3. Principais Classes da API Java 3D

A API Java 3D possui um grande nmero de classes implcitas e prprogramadas para instanciar, posicionar e manipular objetos grficos modelados ou
importados.

89

Nesta seo so apresentadas classes fundamentais para o desenvolvimento


de um sistema Java 3D.
Uma classe de expressiva importncia a SimpleUniverse, responsvel pela
configurao de um universo abstrato, com toda programao embutida, o topo do
Grafo de Cena, onde toda aplicao Java 3D estar atrelada, provendo espao para o
desenvolvimento de uma cena tridimensional. Quando uma instncia de
SimpleUniverse criada, so instanciados todos os objetos bsicos necessrios para o
subgrafo de visualizao, tais como Locale, responsvel pelo espao fsico na cena, e
ViewingPlatform, o qual formar os pontos de visualizao, referente View, que
determina o espao a ser renderizado. Outras classes necessrias so a
GraphicsConfiguration, a qual faz parte do pacote awt, responsvel pela descrio
das caractersticas do dispositivo grfico (impressora ou monitor) e a classe
Canvas3D, que fornece o Canvas, ou seja, uma rea de desenho ou trabalho, onde
realizada a visualizao tridimensional (Sun, 2007).
A classe BranchGroup serve como o ponto base de um Grafo de Cena, ou
seja, a raiz das transformaes. Objetos desta classe so os nicos que podem ser
atribudos e associados em um objeto do tipo Locale. Assim, os BranchGroups so
compilados, e inseridos em um universo virtual em tempo de execuo.
J a classe Shape3D responsvel por alocar uma geometria, descrita por
pontos e retas, instanciadas ou importadas, de forma que a mesma possa ser
manipulada por Transform3D, ter sua aparncia e material ajustada pelas classes
Appearance e Material, e organizadas pelos nodos TransformGroup e BranchGroup,
e assim compor o subgrafo de contedo. Posteriormente, o mesmo Shape3D poder
ter seu comportamento modificado mediante n fatores ocorrentes na cena, dentre eles,
eventos de mouse e teclado. Tal comportamento instanciado por objetos Behavior e
gerenciado por um Handler.
Transformaes geomtricas de escala, rotao e translao, so instanciadas
atravs da classe de Transform3D, formando uma matriz 4x4 de nmeros reais (float),
chamada de matriz de transformaes. J os objetos da classe TransformGroup
especificam uma transformao atravs de um objeto Transform3D, que ser herdada
a todos os seus filhos. Ao serem aplicadas as transformaes, deve-se considerar que
os efeitos num grafo de cena so cumulativos.

90

De forma simplificada, os passos e classes bsicas para a criao de um


programa Java 3D so: a criaao de um objeto GraphicsConfiguration e de um
Canvas3D, construo e compilao de pelo menos um subgrafo de contedo, criao
de um objeto SimpleUniverse, que referencia objeto Canvas3D, construindo o
subgrafo de visualizao e a criao dos objetos VirtualUniverse e Locale para
finalmente inserir os subgrafos no universo virtual. A Figura 29 demonstra a
utilizao das principais classes para a criao de um programa Java 3D, em forma de
Grafo de Cena.
SimpleUniverse
(Universo Simples)
BranchGroup
(Nodo de Agrupamento)
Behavior
(Comportamento)

Handler
(Manipulador)
Appearance
(Aparncia)

Locale
(Localidade)

TransformGroup
(Grupo de
Transformao)

ViewPlatform
(Plataforma de Visualizao)

Shape3D
(Forma 3D)
Geometry
(Geometria)

View
(Viso)
Canvas3D
(Tela 3D)

Figura 29 Representao das principais classes da API Java 3D, imprescindveis para a configurao
de um sistema simples. Esta hierarquia deve conter ao menos um Locale, atrelado ao universo abstrado
SimpleUniverse, para delimitar o espao fsico, um nodo de agrupamento BranchGroup para cada lado
do grafo, uma ViewPlatform para manipular os modos de visualizao sob um Canvas3D, gerenciados
por um GraphicsConfiguration, e um Shape3D para armazenar as geometrias da cena.

3.4. Geometrias

Para representar entidades fsicas ou fenmenos em Computao Grfica, so


utilizados modelos, os quais so definidos como padres. Desta maneira a modelagem
passa a ser uma etapa muito importante de um projeto, onde o modelo descrito de
forma que possa ser desenhado. Uma representao de um objeto deve ser feita de
forma simples que facilite a usabilidade e anlise. Atualmente, existem vrias tcnicas
para a representao de modelos tridimensionais. Nesta seo, so apresentadas

91

formas de se representar um modelo em Java 3D, desde a sua geometria, delimitando


sua forma fsica, at a sua aparncia, e especificando as propriedades do material que
a compe, como cor, transparncia e textura (Manssour, 2003).

3.5. Representao de Objetos

Para definir estruturas bsicas em Java 3D da maneira mais simples possvel,


utiliza-se primitivas grficas como Box, Sphere, Cylinder e Cone, disponveis no
pacote com.sun.j3d.utils.geometry. Sua utilizao baseia-se em instncias de classes,
as quais levam os mesmos nomes das primitivas (Sun, 2007).
Uma outra forma de se representar objetos graficamente utilizando-se
listas de vrtices, arestas ou faces poligonais. Neste caso, malhas de polgonos
representam superfcies compostas por faces planas, que podem ser tringulos
(preferencialmente) ou quadrados. Objetos simples e complexos so modelados desta
maneira. O nodo Shape3D usado para definir um objeto em Java 3D. Instncias
desta classe referenciam um nodo Geometry e um nodo Appearance. Geometry uma
superclasse abstrata que tem como subclasses, por exemplo, GeometryArray e
Text3D. A classe GeometryArray tambm uma classe abstrata, e suas subclasses so
usadas para especificar pontos, linhas e polgonos preenchidos, tal como um tringulo.
Algumas de suas subclasses so: QuadArray, TriangleArray, LineArray, PointArray e
GeometryStripArray, que, por sua vez, tem LineStripArray, TriangleStripArray e
TriangleFanArray como subclasses. Cada uma destas classes possui uma lista de
vrtices que podem ser conectados de diferentes maneiras. Alm disso, objetos
GeometryArray tambm podem armazenar coordenadas do vetor normal, de cores e
de texturas.
Com o Java 3D tambm pode-se importar dados geomtricos, como conjunto
de ponto, arestas ou faces, criados por outras aplicaes, ou seja, trazer para dentro de
um ambiente virtual, modelos desenvolvidos com ferramentas especficas. Neste caso,
arquivos de formato Wavefront (.obj) podem ser importado atravs da classe Loader,
do pacote com.sun.j3d.loaders, que fornece subsdios para sua implementao. Outros
formatos como o VRML (.wrl) tambm podem ser trazidos ao ambiente Java 3D,
atravs de pacotes especficos como o Xj3D (Xj3D, 2007) e o VRML97 . Entretanto,
suas classes principais de importao devem ser manualmente programadas para que

92

a cena armazenada possa ser representada em cdigo Java 3D. Entre os arquivos que
podem ser importados tambm encontram-se 3D Studio (.3ds) e AutoCAD (.dfx). A
Figura 30 apresenta um trecho de cdigo que utiliza um Loader de um modelo
Wavefront (.obj) para importar um objeto modelado por ferramenta externa. A Figura
31(a) mostra exemplos de primitivas, a Figura 31(b) demonstra uma geometria
renderizada em wireframe e a Figura 31(c) mostra um modelo Wavefront importado
para o ambiente Java 3D atravs de classes Loaders.

Figura 30 Representao de trecho de cdigo que denota um Loader Wavefront, onde um modelo
exportado por ferramentas externas de modelagem importado e atribudo a um objeto Scene atravs
do mtodo load da classe ObjectFile, para ser posteriormente atribudo a um nodo de agrupamento e
assim integrar a metade do Subgrafo de contedo. (Sun, 2007)

(a)

(b)

(c)

Figura 31 Modelos de representao de objetos (a) Representao das primitivas Java 3D, definidas
atravs de objetos Sphere, Box, Cylinder e Cone. (b) Representao de geometria renderizada em
wireframe, atravs de objetos GeometryArray (Pavarini et al, 2005). (c) Representao do uso de um
modelo Wavefront (.obj) atravs da classe Loader de ObjectFile (Manssour, 2003).

93

3.6. Aparncia e Material

Quando so criadas primitivas grficas, as mesmas no tm cores


especificadas. Tal atributo determinado pela classe Appearance e, se o mesmo no
for instanciado, a forma geomtrica apresentar a cor branca e outras propriedades
como transparncia, textura e material no podero ser manipuladas. Alguns de seus
mtodos so listados na Figura 32, mostrando que esta classe faz referncia a vrios
outros objetos.

Figura 32 Representao de trecho de cdigo que demonstra a declarao de mtodos da classe


Appearance para definir atributos de cor, linhas, textura e material. Tais mtodos so atribudos a uma
instncia Appearance e posteriormente a um nodo de agrupamento, geralmente contendo uma
geometria associada (Sun,2007)

J o nodo Material utilizado para definir a aparncia de um objeto levando


em considerao as diferentes fontes de iluminao. As vertentes a serem tratadas por
esta classe so: cor ambiente, refletida da superfcie do material, cujo valor default
(0.2, 0.2, 0.2); cor difusa, que consiste na cor do material quando iluminado e com
valor default (1.0, 1.0, 1.0); cor especular do material, que tem branco como default;
cor emissiva, isto , a cor da luz que o material emite (preto por default); e shininess,
que indica a concentrao do brilho do material, que varia entre 1 e 128, sendo o
default 64. A Figura 33 mostra a utilizao de mtodos da classe Material.

Figura 33 Representao de trecho de cdigo que demonstra o uso de mtodos da classe Material,
onde so definidos os coeficientes especular, difuso, emissivo e brilho, e aplicados sobre uma instancia
Appearance. Posteriormente criado uma primitiva Cone e atribudo mesma, todos os coeficientes
definidos anteriormente em Material atravs da associao com a instancia Appearance (Sun, 2007)

94

3.7. Iluminao

Para trabalhar modelos iluminados, deve-se, primeiramente, definir qual a


fonte de luz que ser utilizada no ambiente, ou seja, o objeto que emite a energia. Os
tipos existentes de fonte de luz so: ambiente, pontos de luz, luz direcional e spot.
Em Java 3D existe a classe abstrata Light, que define um conjunto de
parmetros em comum para todos os tipos de fonte de luz. Tais parmetros so usados
para definir a cor da luz e o grau de interao com sua regio de influncia. As suas
subclasses so AmbientLight, DirectionalLight e PointLight que, por sua vez, tem
SpotLight como subclasse (Selman, 2002).
A classe AmbientLight trata da iluminao proveniente de todas as direes,
uniformemente. Seus construtores permitem ativar ou no sua cor. J a classe
PointLight utilizada para especificar uma fonte de luz em um ponto fixo que espalha
raios de luz igualmente em todas as direes. A classe DirectionalLight determina
uma fonte de luz regular e com destino certo com origem no infinito. Estas fontes de
luz contribuem para as reflexes difusa e especular. Nos seus construtores possvel
definir a cor, a posio e o coeficiente de atenuao da fonte de luz .
Nos construtores da classe SpotLight, derivada da PointLight, os argumentos
so direo, o ngulo de expanso e concentrao da luz, sendo que a intensidade da
luz alterada em funo do ngulo de expanso. Os trechos de cdigo da Figura 34
demonstram a utilizao destas classes para criar diferentes efeitos de iluminao. Em
cada mtodo utilizada uma fonte de luz diferente (direcional, pontual e spot) e as
reflexes: ambiente, difusa e especular so combinadas.
Posteriormente e no menos importante, preciso definir o modo com que a
luz ir interagir com os modelos virtuais, conforme descrito na seo anterior em
Material, em termos de superfcie e natureza da luz com o principal objetivo de se
obter o efeito tridimensional em espaos bidimensionais, aproximado-se da realidade
e contribuindo para a sensao de imerso.

3.8. Textura

Tipos diferentes de material possuem identificao distinta. Desta maneira,


caractersticas prprias como microestruturas que produzem rugosidade na superfcie

95

dos objetos podem ser simuladas com a utilizao de imagens digitalizadas


especficas.

Figura 34 Representao de trecho de cdigo que ilustra o uso de iluminao, onde so instanciadas
uma luzes ambiente, mediante especificao de sua cor atravs do mtodo Color3f e do tipo
AmbientLight, e direcionais, atravs da definio da direo da luz sob um vetor tridimensional e da
instanciao do tipo DirectionalLight. Ao final, os dois objetos de luz so atribudos ao mesmo
TransformGroup (Sun, 2007)

Segundo conceitos de Computao Grfica, estas imagens da superfcie de


um objeto so chamadas de textura. Uma tcnica de formao de texturas consiste
simplesmente no mapeamento de uma imagem (mapa de textura/padro de textura)
para a superfcie de um objeto. Para aplicar texturas em modelos desenvolvidos
atravs da API Java 3D necessrio criar uma aparncia, armazenar a imagem da
textura e fazer a associao entre estes objetos. Tambm preciso definir o
posicionamento da textura na geometria, bem como os seus atributos (Manssour,
2003).
importante salientar que as imagens devem ser previamente tratadas com a
utilizao de um programa externo API Java3D e deve estar em um formato
compatvel com o Java3D (JPG, GIF ou PNG)3. Alm disso, o seu tamanho deve ser
mltiplo de dois em cada dimenso. Esta imagem pode estar armazenada em um
arquivo local ou em uma URL. Para carregar a textura utiliza-se uma instncia da
classe TextureLoader, que deve ser associada com um objeto Appearance. No final,

JPEG (Joint Photographic Experts Group), GIF (Graphic Interchage Format) e PNG (Portable
Network Graphics)

96

devem-se especificar as coordenadas de textura da geometria. Nesta etapa, as posies


da textura em uma geometria so determinadas por coordenadas, as quais so
definidas por vrtices e pontos de textura. Conseqentemente, uma imagem pode ser
esticada, rotacionada ou duplicada.
J para modelos importados, a aplicao de texturas funciona atravs de um
processo ligeiramente diferente, utilizando-se das classes TextureLoader e Toolkit,
responsveis por atribuir uma textura a um objeto do tipo Appearance, a qual deve ser
instanciada no momento em que o modelo importado, de uma ferramenta de
modelagem ou sistema de reconstruo, est sendo carregado, por meio do mtodo
getImage, utilizando-se de suas instncias internas (objetos de aparncia).

3.9. Interao

Uma interao ocorre quando o usurio recebe uma resposta, fsica ou


meramente visual, s suas aes sobre o sistema, como pressionar uma tecla ou mover
o mouse, cujo objetivo alterar o Grafo de Cena. Tais reaes so permitidas atravs
da subclasse abstrata Behavior que, bem como no tratamento de animaes, viabiliza
alteraes no grafo de cena como, por exemplo, a remoo de modelos ou alguns de
seus atributos (Sun, 2007).
A classe Behavior responsvel por interpretar as aes do usurio e traduzilas em alteraes para o sistema, ou seja, faz a conexo entre a ao e a reao.
Existem dentro desta classe, subclasses muito utilizadas para interao, por exemplo,
a MouseBehavior e a Keynavigatorbehavior , que controlam eventos de mouse e
teclado, respectivamente sobre o subgrafo de contedo.
Uma outra forma de interagir com os objetos em Java 3D atravs dos
mtodos da classe OrbitBehavior. Desta maneira, a View do ambiente que
deslocado, ou seja, os modelos permanecem estticos enquanto movida apenas a
rbita (subgrafo de visualizao). Fazem parte desta classe aes como rotao,
translao e zoom. A Figura 35 apresenta um trecho de cdigo que ilustra a utilizao
de mtodos de interao.
Outras classes e interfaces, externas API Java 3D tambm podem fornecer
mtodos de interao do usurio com a cena tridimensional, ainda que faam parte de
outros pacotes. o caso da interface MouseListener pertencente ao pacote awt.event,

97

a qual permite a interao do usurio com a cena por intermdio de eventos de mouse,
como por exemplo o pressionar e o soltar de um boto.

Figura 35 Representao de trecho de cdigo que ilustra mtodos de interao, onde um objeto
OrbitBehavior, sob as fronteiras de um BoundingSphere, executa a rotao da viso atual,
considerando-se que tais instncias esto associadas com Subgrafo de visualizao, representados pela
presena de um objeto ViewPlatform, o qual ter o comportamento atrelado ao objeto OrbitBehavior
(Sun,2007)

No Capitulo IV apresentada uma descrio conceitual e metodolgica do


presente trabalho, envolvendo todos os processos necessrios para o desenvolvimento
de um ambiente de Realidade Virtual dedicado inspeo de amostras agrcolas,
apresentando os objetivos, justificativa, as tcnicas e procedimentos adotados,
organizados sob o formato de classes. Posteriormente so descritos os dispositivos
no convencionais empregados em fases de manipulao e visualizao de tais
amostras, apresentando suas caractersticas e especificaes tcnicas.

98

Captulo IV
Estruturao Conceitual e Metodolgica

4.1. Objetivo

A estruturao conceitual e metodolgica aplicada no desenvolvimento do


sistema de Realidade Virtual (RV) dedicado inspeo de amostras tomogrficas de
solos agrcolas, utiliza dados de imagens reconstrudas com um algoritmo paralelo de
reconstruo volumtrica. Atravs de uma interface com o usurio, os dados
volumtricos so levados ao ambiente de RV por meio de classes capazes de importar
as amostras em formato especfico, as quais so fundamentadas em mtodos de
manipulao

visualizao

tridimensional.

Por

intermdio

de

recursos

computacionais grficos, o sistema busca somar imerso e interao do usurio com


as amostras, o que se constituem como elemento essencial para um sistema qualitativo
de visualizao e anlise por RV. Tais recursos computacionais grficos envolvem
predominantemente controle de renderizao, iluminao, colorizao, extrao de
atributos e transformaes fsicas, alm da integrao de dispositivos no
convencionais de entrada e sada de dados, tais como um Head-Mounted-Display
(vdeo-capacete) e uma luva digital, o sistema busca somar imerso e interao do
usurio com as amostras, A Figura 36 mostra uma viso geral do sistema de RV
dedicado inspeo de amostras tomogrficas de solos agrcolas, bem como o

99

caminho dos dados, onde, a partir de dados tomogrficos, tais amostras so


reconstrudas, importadas e tratadas mediante diversos processos de RV, at a
aplicao do mesmo em de cincia de solos.

Tomografia de
Amostra Agrcola

Tcnicas e
Dispositivos de RV

Reconstruo 2D e 3D

Codificao
Java/Java3D

Importao de
Amostra 3-D

Ambiente de RV

Interface

Aplicao em Cincia do Solo

Figura 36 Viso geral do sistema de RV dedicado inspeo de amostras tomogrficas de solos


agrcolas e o caminho dos dados desde a aquisio at a visualizao.

4.2. Metodologia

O sistema foi organizado com base nas seguintes classes: Reconstruo,


Loader, Transformaes, Extrao de Atributos Polgonos, Filtro, Transparncia,
Iluminao, Colorizao, Coliso Convencional, Coliso No Convencional,
Manipulao Convencional de Modelo, Manipulao No Convencional de Modelo,
Manipulao Convencional de Cena, Manipulao No Convencional de Cena,
Quatrnios, Visualizao e Ambiente de RV.
As funcionalidades das classes so descritas a seguir, bem como so
representadas pelo diagrama de classes apresentado na Figura 37.

100

Figura 37 Diagrama das classes que compem o trabalho e suas relaes.

4.2.1. Reconstruo

Para a obteno dos dados tomogrficos, foi utilizado o minitomgrafo de


raios-x e da Embrapa Instrumentao Agropecuria (EMBRAPA-CNPDIA)
(Cruvinel, 1987) para a aquisio das projees tomogrficas tornando possvel gerar
mapas de coeficientes de atenuao ( = cm 1 ), com resoluo espacial igual ou
maior a 1 mm, com as amostras submetidas ao processo de aquisio sob energia de

101

60 KeV e janela temporal de 10 segundos de exposio radiao por amostragem


(Figura 38).

.
Figura 38 Minitomgrafo da Embrapa Instrumentao Agropecuria

Para a reconstruo das imagens bidimensionais, foi utilizado o algoritmo de


retroprojeo filtrada, juntamente com filtragens no domnio da freqncia,
utilizando-se de janelas de Hamming, implementadas sob o algoritmo de
Transformada Rpida de Fourier Unidimensional (FFT 1-D).
Posteriormente, com as imagens bidimensionais j reconstrudas, foi utilizada
a tcnica de filtragem bidimensional adaptativa, atravs da Transformada Wavelet
Daubechies, com janelas de 76 coeficientes (D76).
Para o desenvolvimento da filtragem bidimensional, com o uso da
Transformada Wavelet, o algoritmo levou em conta as caractersticas da imagem,
filtrando determinadas reas, preservando bordas e detalhes dos objetos representados
nas imagens. Assim, o primeiro passo para a filtragem Wavelet baseado na
decomposio pela aplicao da Transformada Wavelet Daubechies (D76)
(Daubechies, 1992), sendo que cada funo Wavelet pode ser aplicada de maneira
especfica, visando uma melhor eficincia de processamento. Desta maneira, a
imagem foi subdividida em quadrantes, onde o quadrante 1 (superior esquerdo), aps
a primeira decomposio, abrigou os valores de aproximao da imagem decomposta,
enquanto que os outros quadrantes armazenavam os coeficientes de detalhes. Assim, a
imagem transformada pde ser restaurada a partir de informaes de borda e rudo.

102

A decomposio um dos conceitos mais importantes em anlise Wavelet,


chamada tambm de anlise de multiresoluo. A mesma consiste em uma seqncia
de espaos de aproximao

Vj V ,

que so encaixantes, isto ,

V j 1 V j .

Isto possibilita

a representao dos dados em multi-nvel, em termos da soma direta, na forma:


V j = V j W j W j 1

(4.1)

Em que j representa o nvel menos refinado e Wl contm os detalhes da


representao em Vl +1 que no podem ser representados em Vl .
Os espaos de aproximao V j so gerados pela base:
{ jk ( x), k Z }

(4.2)

jk ( x) = 2 j / 2 (2 j x k )

(4.3)

definida como:

ou seja, so obtidas pela dilatao e translao de uma funo base ( x) .


A funo ( x) chamada funo de escala e satisfaz a relao:

( x) = 2 h(k ). (2 x k )

(4.4)

kZ

O conjunto de coeficientes h(k) chamado de filtro e estes so obtidos como


razes de um polinmio que satisfaz certas condies para a existncia da relao
(Daubechies, 1992).
Uma funo ( x) chamada de Wavelet, se o conjunto:
{ jk ( x), k Z}

uma base para os espaos complementares W j , em que:

(4.5)

103

(4.6)

jk ( x) = 2 j / 2 (2 j x k )

Como W0 V1 existem os coeficientes g k tais que:

( x) = 2 g (k ). (2 x k )

(4.7)

A forma mais difundida para a reconstruo tridimensional de superfcies e


volume a da sobreposio de fatias bidimensionais. Tal mtodo consiste em
posicionar as imagens tomogrficas 2-D ao longo do eixo Z de coordenadas
cartesianas. Para otimizar este processo, visando a reduo de custos e menor
exposio do objeto radiao, foi adotado o uso de dados interpolados procurandose compor matematicamente o espao deixado pelo minitomgrafo entre as imagens.
Assim, com apenas algumas fatias, o algoritmo pode estimar os pontos faltantes. O
processo de reconstruo implementado demonstrado pela Figura 39:

Matriz 3-D
ObjReal(x,y, z1 )
Matriz com

z1

planos

Vetor AR
( z1 )
Vetor de planos AR

atravs de fatias 2-D

Loop de etapas

Repetio das
fases 1, 2, 3 e 4
para todos x e y

Matriz 3-D
ObjInterp(x,y, z 2 )
Matriz com dados de

z2
Interpolao

z2 = (( z1 1)* NI ) + z1

Armazenamento em formato .vtk

Figura 39 Representao do processo de reconstruo tridimensional, desde obteno das fatias


bidimensionais e a formao de matrizes tridimensionais, at a fase de interpolao utilizando-se de BSplines (B-Wavelets), onde ocorre a fase de estimao de pontos e a formao do modelo
tridimensional

104

Com os dados das fatias bidimensionais, obtidas pela reconstruo


bidimensional ao longo da coordenada z de um objeto, determinaram-se os valores de
uma matriz de dimenso trs. Essa matriz, ObjReal (x, y, z1 ), armazena nas
coordenadas x e y os dados dos z1 planos reconstrudos bidimensionalmente.
Com base na matriz de dados reais ObjReal (x, y, z1 ), armazenou-se em
seguida, um vetor unidimensional os z1 elementos da coordenada horizontal (x) e
vertical (y) fixa, o qual contm os dados conhecidos do processo de interpolao.
Posteriormente, procedeu-se uma interpolao unidimensional dos dados
contidos no vetor unidimensional, de forma a se obter um vetor de z 2 elementos
contendo os dados interpolados. O nmero de elementos z 2 foi determinado por:
z2 = (( z1 1)* NI ) + z1

(4.8)

Onde NI o total de planos a serem interpolados.


Nesta etapa foi aplicado o algoritmo de interpolao por B-Wavelets (ou BSplines), o qual determinou os valores intermedirios entre uma seqncia de pontos
conhecida. Diferentemente da aproximao, a interpolao no apenas desloca a curva
gerada sob a influncia dos pontos conhecidos, como tambm faz com que essa curva
passe por esses pontos.
Para descrever a interpolao faz-se necessria uma discusso sobre bases
convolucionais. Inicialmente, a idia de base convolucional deve satisfazer a seguinte
equao:
k ( x) = ( x k )

(4.9)

onde a funo base.


Em outras palavras, a base foi construda a partir de deslocamentos de inteiros
de uma funo singular (x), desta maneira, utilizando-se da equao (4.9) tem-se
que:

105

f ( x ) = ck ( x k )

(4.10)

k K

Avaliando a funo f (x) na equao (4.10) sob um valor inteiro n, foi obtida a
equao:
f (n) = ck (n k )

(4.11)

k K

a qual tem exatamente a forma de uma convoluo discreta.


A funo base (x) sob valores inteiros, foi digitalmente convolvida com o
vetor de coeficientes para produzir valores amostrados da funo f (x).
Pode-se inverter a equao (4.11) para obter os coeficientes a partir de f (n)
por deconvoluo.
De acordo com a idia de bases convolucionais, a interpolao torna-se um
procedimento de dois passos. O primeiro passo a direta inverso da equao (4.11),
onde os coeficientes wavelets so descobertos por deconvoluo da funo amostrada
f (n) com o filtro fatorizado (n). O segundo passo reconstri a funo contnua f (x)

de acordo com a equao (4.10). Os dois passos podem ser combinados, entretanto
mais conveniente usar-se da separabilidade.
De forma a otimizar o processo de clculo, implementa-se a funo (x),
tambm chamada de funo blending, da seguinte maneira (Minatel, 1997):
1/ 6(2 + x)3

3
3
1/ 6(4 6 x 2 x
= 1/ 6(4 6 x3 + 2 x 3

1/ 6(2 x)3

2 x 1

1 x 0
0 x 1

1 x 2

2 x

(4.12)

Nesta implementao, adotou-se o uso dos chamados pontos fantasmas. Essa


tcnica consiste em considerar um ou mais valores antes do ponto inicial e depois do
final.

106

Foram adicionados dois pontos fantasmas no inicio e dois no final da


seqncia conhecida. Esses valores foram ajustados de forma dinmica para que a
curva a ser gerada pela funo B-Wavelet passasse pelos pontos inicial e final.
A seguir, os dados tridimensionais foram armazenados em outra matriz 3D
ObjInterp(x, y, z 2 ), as etapas anteriores para todos os valores de x e y repetidas, e os
dados de ObjInterp ( ) gravados em disco com a extenso Visualization Toolkit (.vtk).
Ao final do processo, o modelo tridimensional foi convertido para o formato
Wavefront File Format (.obj), utilizando-se da classe vtkOBJExporter presente no
pacote vtkOBJExporter.h do Visualization Toolkit. A escolha desse formato justificase pelo alto desempenho e flexibilidade ao importar tais modelos para ambientes
virtuais, onde todos seus atributos podem ser customizados por APIs grficas.

4.2.2. Ambiente de Realidade Virtual

Para o desenvolvimento do Ambiente de RV, foi utilizada a linguagem de


programao Java sob verso 1.6.0 e a API Java3D sob verso 1.5.0., possibilitando a
construo do grafo de cena do sistema, organizado sob estrutura hierrquica (Sun,
2007).
Desta maneira, uma interface principal com o usurio foi desenvolvida como
um controle principal do sistema, a qual prov um acesso intuitivo a todos os recursos
descritos nesta seo, representados por todas as outras classes do diagrama da Figura
4.2. A Figura 40 representa a forma com que tais recursos so organizados para
formar a classe Ambiente de Realidade Virtual.
Assim, o modelo tridimensional proveniente do algoritmo de reconstruo foi
importado pela classe Loader. Tal modelo tratado pelo ambiente de RV mediante as
ferramentas de computao grfica disponveis, como o controle de exibio de
polgonos, tratamento de cor por regio de influncia, seleo de luzes,
transformaes fsicas lineares e controle de exibio por threshold.
Desta forma, independente de prvio tratamento, os usurios podem empregar
ferramentas de RV para a realizao de anlise, navegao e explorao das amostras
tridimensionais, tais como a extrao de atributos das mesmas, seleo do modo de
visualizao da cena e controle de manipulao da cena e das amostras.

107

1. Modelo Tridimensional

2. Ferramentas de Computao Grfica

Exibio de
Polgonos

Colorizao

3. Ferramentas de Realidade Virtual


Iluminao

Extrao de Atributos
(cena, modelo)
Transformaes
Fsicas

Visualizao
(HMD, RA)

Threshold

Manipulao
(cena, modelo)

Figura 40 Viso geral do ambiente de Realidade Virtual, onde o modelo 3-D reconstrudo tratado
sob diversas tcnicas imersivas e interativas, alm de ter suas informaes extradas por tcnicas de
seleo.

4.2.3. Transformaes Fsicas Lineares

A classe Transformaes fsicas lineares, consideradas como recursos


interativos bsicos de um sistema de RV, foram inicialmente incorporadas ao
Ambiente.

Assim,

operaes

como

rotao,

translao,

escala,

alongamento/encurtamento e reflexes foram disponibilizadas atravs de entradas por


teclado para todo o conjunto de dados das amostras, realizadas atravs de instncias
da classe Transform3D, do pacote javax.media.j3d.Transform3D, utilizando de uma
matriz de transformao 4x4 de nmeros reais (float). Tal pacote utiliza-se dos
mtodos setRotation, setTranslation e setScale para efetivar as operaes e
posteriormente, nodos de contedo da classe TransformGroup, derivados do pacote
javax.media.j3d.TransformGroup, responsveis por atrelar as transformaes de
Transform3D ao grafo de cena do sistema, garantindo que transformaes sejam
inerentes a todos os filhos, considerando a hereditariedade e o efeito cumulativo da
API. O Pseudocdigo 1 demonstra como foram aplicados os mtodos de
Transform3D e TransformGroup nos modelos.

108

Procedimento Transformaes Lineares:


Begin
Novo Agrupamento de Transformaes;
Novo Agrupamento de Geometrias;
Nova Transformao3D;
Agrupamento de Transformaes.Ajustar Transformao(Transformao3D);
Agrupamento de Geometrias.Obter Geometrias(Agrupamento de Transformaes);
Transformao3D.Ajustar Escala(Fator de Escala);
Transformao3D.Ajustar Translao(Novos Pontos);
Transformao3D.Ajustar Rotao(Eixo Escolhido, ngulo Escolhido);
Agrupamento de Transformaes Pai.Adicionar Filho(Agrupamento de Geometrias);
End.
Pseudocdigo 1 Aplicao de mtodos Transform3D de transformaes tridimensionais e
TransformGroup de agrupamento de transformaes para a realizao de transformaes fsicas

4.2.4. Polgonos

A classe Polgonos responsvel por permitir ao usurio a forma com que os


polgonos formadores do modelo tridimensional so representados pelo renderizador
da API Java3D (OpenGL ou DirectX). No presente trabalho, o sistema permite que os
usurios escolham entre trs formas de renderizao dos polgonos: Faces, Arestas e
Pontos (Polygon Fill, Wireframe e Point Cloud), viabilizadas pela classe
PolygonAttributes do pacote javax.media.j3d.PolygonAttributes, onde os modelos 3-D
so visualizados com todas suas faces, apenas suas arestas ou apenas seus pontos,
respectivamente. Todas as opes tem o algoritmo de Z-Buffer ativado, com o intito
de omitir do renderizador partes oclusas e aumentar o desempenho. O Pseudocdigo 2
demonstra a alterao do modo de renderizao de polgonos de um objeto Shape3D.
Procedimento Polgonos:
Begin
Novo Atributo de Polgonos(exibir arestas, sem esconder pontos);
Nova Aparncia;
Aparncia.Ajustar Polgonos(Atributo de Polgonos);
Novo Atributo de Polgonos(exibir pontos, sem esconder pontos);
Nova Aparncia;
Aparncia.Ajustar Polgonos(Atributo de Polgonos);
End.
Pseudocdigo 2 Aplicao de mtodos de renderizao de polgonos

4.2.5. Threshold

Esta classe capaz de acessar vises diferenciadas da amostra importada,


permitindo a separao dos componentes formadores de uma amostra, para uma

109

anlise individual, possibilitadas por operaes de threshold com diversas escalas de


cor, aplicadas sobre o algoritmo de reconstruo. Na interface, tais operaes
determinam a viso completa (sem threshold) e componentes (com threshold). Desta
maneira, o usurio habilitado a visualizar apenas uma regio de interesse da
amostra, representando nveis especficos de tons de cinza, onde tons mais claros (ou
cores quentes, no caso de pseudocores) representam altos coeficientes de atenuao
em cm@1 e tons mais escuros representam baixos coeficientes de atenuao em cm@1 ,
dependendo das caractersticas apresentadas pelas amostras agrcolas.
Para a aplicao da classe threshold nos modelos tridimensionais, foram
adotadas as classes ColoringAttributes do pacote javax.media.j3d.ColoringAtributes,
responsvel por controlar as cores intrnsecas dos modelos 3-D, independentes de
efeitos de iluminao, e a classe Material com suas subclasses de reflexo
AmbientColor, DiffuseColor, EmissiveColor e SpecularColor.

Para se obter os tons de cinza dos modelos, necessrio conhecer os tons dos
canais RGB (vermelho/verde/azul), desta maneira, para obter tais coeficientes, foram
utilizados os mtodos getAmbientColor, getDiffuseColor, getEmissiveColor e
getSpecularColor, todos derivados dos mtodos getAppearance().getMaterial(), e que

retratam os ndices de reflexo ambiente, difuso, emissivo e especular,


respectivamente.

Posteriormente,

foi

possvel

obter

os

coeficientes

HSV

(matiz/saturao/valor), dentre os quais o valor de V correspondente luminncia

(ou brilho), representa os tons de cinza de um determinado ponto ou regio. Os


coeficientes HSV foram obtidos contendo:
GB

60 MAX MIN

GB
60

MAX MIN
H =
BR
60

MAX MIN

RG
60
MAX MIN

se MAX = R e G B

+ 360, se MAX = R e G < B

+ 120, se MAX = G

+ 240, se MAX = B

+ 0,

S=

MAX MIN
MAX

V = MAX

(4.13)

(4.14)
(4.15)

110

onde R, G e B representam respectivamente os coeficientes de tons de vermelho,


verde e azul (red, green, blue), e MAX e MIN os maiores e menores valores de RGB.
A partir destes valores e dos parmetros fornecidos como limites superior e
inferior, a classe threshold se encarrega de exibir apenas os coeficientes das classes

ColoringAttributes e Material presentes no intervalo estabelecido, obedecendo uma


escala de 0 (zero) a 255 (duzentos e cinqenta e cinco) tons de cinza.
Assim, os valores que estiverem abaixo ou acima do intervalo, so
automaticamente omitidos do processo de renderizao do modelo tridimensional. O
Pseudocdigo 3 demonstra como foram aplicados os mtodos de ocluso dos
coeficientes de ColoringAttributes e Material nos modelos.

Procedimento Threshold:
Begin
Se Luminncia > Threshold Superior ou Luminncia < Threshold Inferior
Begin
Novo Agrupamento de Geometrias;
Agrupamento de Geometrias.Obter Geometrias(GrupodeTransformaes)
Nova Aparncia;
Aparncia.Obter Aparncia(Agrupamento de Geometrias);
Novo Atributos de Cor;
Atributos de Cor.Nova Cor(Preto);
Aparncia.Ajustar Cor(Atributos de Cor);
Novo Material;
Material.Ajustar Reflexo Ambiente(Preto);
Material.Ajustar Reflexo Especular(Preto);
Material.Ajustar Reflexo Emissiva(Preto);
Material.Ajustar Reflexo Difusa(Preto);
Aparncia.Ajustar Material(Material);
End;
End.
Pseudocdigo 3 Aplicao de mtodos de ocluso de instncias ColoringAttributes e Material

4.2.6. Transparncia

A classe Transparncia responde por fornecer ao usurio a capacidade de


controlar em tempo real a poro das faces subjacentes do modelo 3-D que mostrada
pela face que o encobre. No presente trabalho, o sistema permite que os usurios
escolham entre quatro nveis de transparncia dos polgonos: Opaco, Suave,
Translcido e Transparente (Opaque, Smooth, Translucent e Transparent)
viabilizadas pela classe TransparencyAttributes presente no Java3D, onde faces
oclusas dos modelos 3-D podem ser melhor visualizadas em ordem decrescente,

111

mediante a aplicao do mtodo setTransparency. medida que instncias da classe

TransparencyAttributes so criadas, o algoritmo de Z-Buffer deixa de executar. O


Pseudocdigo 4 demonstra a aplicao de instncias da classe Transparncia sobre um
objeto Shape3D.
Procedimento Transparncia:
Begin
Novo Atributo de Transparncia;
Atributo de Transparncia.Ajustar Transparncia(Opaco);
Nova Aparncia;
Aparncia.Ajustar Transparncia(Atributo de Transparncia);
Novo Atributo de Transparncia;
Atributo de Transparncia.Ajustar Transparncia(Suave);
Nova Aparncia;
Aparncia.Ajustar Transparncia(Atributo de Transparncia);
Novo Atributo de Transparncia;
Atributo de Transparncia.Ajustar Transparncia(Translcido);
Nova Aparncia;
Aparncia.Ajustar Transparncia(Atributo de Transparncia);
Novo Atributo de Transparncia;
Atributo de Transparncia.Ajustar Transparncia(Transparente);
Nova Aparncia;
Aparncia.Ajustar Transparncia(Atributo de Transparncia);
End.
Pseudocdigo 4 Aplicao de mtodos de controle de opacidade com TransparencyAttributes

4.2.7. Extrao de Atributos

A classe de Extrao de Atributos (tambm chamada de classe de picking)


trata da obteno de dados de voxels da amostra, utilizando como entrada dispositivos
convencionais, como o mouse, e no convencionais como a luva de dados P5Glove,
fornecendo aos usurios informao sobre um ponto especfico da representao
tridimensional.
Inicialmente, necessrio ativar o reconhecimento de eventos de cursor
bidimensional na interface principal, onde reside o Canvas3D, implementando a
interface MouseListener do pacote java.awt.event. Atravs de seu mtodo

MouseClicked, toda a interface do sistema, inclusive o objeto Canvas3D passa a


identificar eventos de clique de mouse e a executar as rotinas inseridas em seu
contexto.
Posteriormente, dentro do mtodo MouseClicked, deve-se instanciar os objetos
das classes PickCanvas e PickResult, os quais so responsveis por ativar a extrao

112

de dados de um objeto Canvas3D e por armazenar tais dados em vetores de resultados


de eventos, respectivamente. Desta maneira, utilizando-se dessas instncias, o usurio
decide pela sua regio de interesse e extrai os atributos desejados, onde a coordenada

z estabilizada no display, permitindo a seleo atravs de uma viewport


bidimensional de maneira intuitiva.
Instanciado o objeto da classe PickResult, necessrio checar a existncia de
resultados no vetor atravs do mtodo getObject, armazenando o produto da consulta
em um objeto da classe Node, o qual armazena instncias indefinidas ou
representaes com tipo desconhecido. A seguir, aplicado sobre tal produto, um
recurso de cast, ou seja, uma instanciao forada com o tipo Shape3D, o qual tem a
capacidade de armazenar diversos dados a respeito de uma determinada geometria.
Desta maneira, o modelo escolhido necessariamente um objeto Shape3D, com todas
as caractersticas que tal tipo prov.
Assim, os dados disponveis para operaes de picking sob instncias de

Shape3D e seus respectivos mtodos so: as fronteiras, com getBounds; os grafos de


cena, com getLocale e numBranchGraph; as geometrias, com getGeometry; as

ColoringAttributes, com getAppearance.getColoringAttributes; o material sob os


formatos HSL e RGB, com getAppearance.getMaterial; a transparncia, com

getAppearance.getTransparencyAttributes.getTransparency; e os polgonos, com


getAppearance.getPolygonAttributes.getPolygonMode.
Em seguida, um novo objeto instanciado, pertencente classe

PickIntersection, tambm do pacote com.sun.j3d.utils.picking, responsvel por abrigar


o ponto de coliso entre uma entidade/nodo e o cursor bidimensional. Desta maneira,
esta instncia armazena em seu contedo o produto da interseo entre uma entidade
de PickResult com o ponto escolhido do Canvas3D, passado ao mtodo

getClosestIntersection como parmetro. Assim, a instncia da classe PickIntersection


pode fornecer mediante seus eventos: a distncia entre o ponto e o observador, com o
mtodo getDistance; as coordenadas do vrtice mais prximo, com o mtodo

getClosestVertexCoordinates;

as

coordenadas

do

ponto,

com

mtodo

getCoordinates; a reta normal do ponto, com o mtodo getNormal; e as matrizes de


transformao com o mtodo getMatrix.
Alem das instancias das classes PickIntersection e de PickResult, a classe

Extrao de Atributos conta com a obteno do coeficiente de atenuao linear. Neste

113

contexto, essa medida e obtida atravs do nvel dos tons de cinza, representada aqui
pela luminncia, ndice L do padro HSL, obtido pelo mtodo getMaterial. O
Pseudocdigo 5 demonstra a aplicao de mtodos de extrao de atributos.
Procedimento Extrao de Atributos:
Begin
Novo Nodo;
Nodo:= Vetor de Resultados.Obter Objeto Clicado;
Novo Agrupamento de Geometrias;
Agrupamento de Geometrias.Extrair Geometrias(Nodo);
Novo Ponto de Interseco;
Ponto de Interseco:=Vetor de Resultados.Obter Interseco Mais Prxima(x,y,0);
Agrupamento de Geometrias.Exibir(Agrupamento de Geometrias.Fronteiras, Agrupamento
de Geometrias.Geometria, Agrupamento de Geometrias.Grafo de Cena, Ponto de
Interseco.Distncia, Ponto de Intersecco.Vrtice Mais Prximo, Ponto de
Interseco.Coordenadas do Ponto, Ponto de Interseco.Reta Normal);
Agrupamento de Geometrias.Exibir(Agrupamento de Geometrias.Atributos de Cor,
Agrupamento de Geometrias.Material, Agrupamento de Geometrias.Atributos de
Transparncia, Agrupamento de Geometrias.Atributos de Polgonos, Luminncia, Saturao,
Coeficiente de Atenuao Linear, Elemento Qumico);
End.
Pseudocdigo 5 Aplicao dos mtodos de extrao de atributos

4.2.8. Manipulao Convencional de Cena

A classe de Manipulao Convencional de Cena representa a troca dinmica


do posicionamento das cmeras do ambiente de visualizao em tempo real, ou seja,
os modelos tridimensionais permanecem fixos em uma posio determinada enquanto
a cena virtual tem seus pontos de vista alterados. Tal exerccio na presente classe
utiliza-se de dispositivos convencionais de entrada de dados, como o teclado, o qual
permite a manipulao da cena de forma intuitiva e simples.
Inicialmente, necessrio definir logo no incio da criao do Grafo de Cena,
um objeto da classe ViewingPlatform, responsvel por realizar a conexo com a View,
ou seja, a implementao de qualquer operao sobre a plataforma de visualizao do
ambiente, tais como rotaes e translaes das cmeras do mesmo, tambm realizadas
atravs de matrizes de transformao 4x4, de forma anloga aos objetos das classes

Transform3D e TransformGroup descritos anteriormente.


Posteriormente, foi implementada uma classe auxiliar estendida de das classes

ViewPlatformBehavior e KeyBehavior,

ambas estendidas da classe Behavior,

responsveis por determinar o comportamento da plataforma de visualizao medida

114

que determinadas teclas so acionadas, identificando-as e exercendo alguma


influncia sobre a cena.
A implementao de uma classe estendida de KeyBehavior sugere o uso de
quatro mtodos fundamentais: Initialize, Process Stimulus, KeyPressed e Process

KeyEvent. O mtodo Initialize determina o modo com que a classe inicializada, no


caso ao se pressionar uma determinada tecla. Neste mtodo, atravs de critrios de
incio do tipo WakeupCriterion, dois novos critrios de eventos foram definidos:
KEY_PRESSED e KEY_RELEASED, responsveis por inicializar os mesmos ao
pressionar e ao liberar uma tecla, atravs da instanciao de objetos da classe

WakeupOnAWTEvent.
O mtodo Process Stimulus trata da continuidade das aes, ou seja, o que
fazer quando a prxima tecla pressionada, organizando os eventos atravs de
instncias Enumeration, passado ao mtodo como parmetro, definindo os prximos
passos do processo. Tambm, o mesmo responsvel por chamar o mtodo

processKeyEvent, o qual finalmente efetiva a realizao dos movimentos da cena,


onde instncias Transform3D e TransformGroup so utilizadas para as operaes,
baseando-se nas entradas do dispositivo como parmetros de mtodos setTranslation
e setRotation, de forma semelhante classe de Transformaes.
J o mtodo KeyPressed, no menos importante, utilizada para compor
eventos adicionais ao se pressionar uma determinada tecla, como a criao de um
grafo de cena adicional ou at mesmo a insero de novos componentes em um grafo
pr-programado No presente trabalho, o mtodo KeyPressed utilizado para
implementar um dos estudos de caso em cincia de solos, onde o caminho percorrido
pelas cmeras armazenado e demarcado com instncia Shape3D, anexadas ao grafo
de cena previamente implementado pela classe Ambiente de RV.
Finalmente, necessrio delimitar a regio de influncia onde os movimentos
da cena iro atuar, ou seja, at quais coordenadas tridimensionais as cmeras podem
ser movimentadas. Tal regio de influencia instanciada pela classe BoundingSphere,
do pacote javax.media.j3d.BoundingSphere, onde as fronteiras so delimitadas pelo
raio de uma esfera centrada na origem das coordenadas. Posteriormente, a instancia

BoundingSphere adicionada cena por meio da chamada do mtodo


setSchedulingBounds e a instanciao de um objeto da classe KeyBehavior conectada
ao objeto de ViewingPlatform atravs do mtodo setViewingPlatform. O

115

Pseudocdigo 6 demonstra a utilizao dos mtodos da classe de Manipulao

Convencional de Cena e a Figura 41 apresenta a aplicao prtica da classe.

Procedimento Manipulao
Convencional de Cena:
Begin
Procedimento Estmulo:
Begin
Novo Evento;
Enquanto Durar o Evento
Begin
Se o Evento for Tecla
Pressionada
Processa Evento(Evento);
End;
End;
Procedimento Mover Para Frente:
Begin
Mova(Novo Vetor de
Posio(0,0,Taxa de Translao);
End;
Procedimento Rotacionar X:
Begin
Rotacione(Taxa de Rotao);
End;

Procedimento Inicializar:
Begin
Novos Critrio de Disparo;
Critrio de Disparo.Tecla Pressionada;
Critrio de Disparo.Tecla Liberada;
End;

Procedimento Processa Evento:


Begin
Novo Cdigo;
Cdigo.Obter Cdigo do Evento;
Se Cdigo for Frente
Mover Para Frente;
Se Cdigo for Frente + Shift
Rotacionar X;
End;

Procedimento Mova:
Begin
Nova Transformao3D;
Grupo de Transformaes.Obter Transformao(Transformao3D);
Transformao3D.Translao(Vetor de Posio);
Atualizar Matriz de Transformao;
Fronteira Esfrica.Ajustar Parmetros(Raio, Origem);
Nova Plataforma de Visualizao;
Plataforma de Visualizao.Ajustar Comportamento de Cena( Manipulao
Convencional de Cena);
End;
Procedimento Rotacione:
Begin
Nova Transformao3D;
Grupo de Transformaes.Obter Transformao(Transformao3D);
Transformao3D.Rotao X(Taxa de Rotao);
Atualizar Matriz de Transformao;
Nova Fronteira Esfrica.Ajustar Parmetros(Raio, Origem);
Nova Plataforma de Visualizao;
Plataforma de Visualizao.Ajustar Comportamento de Cena(Manipulao
Convencional de Cena);
End;
End.
Pseudocdigo 6 Utilizao dos mtodos de manipulao convencional de cena.

116

Figura 41 Representao da Manipulao Convencional

4.2.9. Manipulao Convencional de Modelo

A classe de Manipulao Convencional de Modelo representa a troca


dinmica e em tempo real do posicionamento dos modelos no ambiente de
visualizao, ou seja, as cmeras da cena permanecem fixas em uma posio
determinada enquanto os modelos tm sua posio e orientao alterada. Tal
exerccio, na presente classe, tambm se utiliza de dispositivos convencionais de
entrada de dados, como o teclado e o mouse, os quais permitem a manipulao do
modelo de forma intuitiva e simples.
Para a efetiva implementao de tais eventos de manipulao, a API Java3D
dispe de trs classes previamente programadas denomidadas KeyNavigatorBehavior,

MouseTranslate e MouseRotate, responsveis por translaes e rotaes de teclado,


translaes por mouse e rotaes por mouse respectivamente.
A classe KeyNavigatorBehavior, anloga classe descrita anteriormente,
estendida de KeyBehavior, sendo capaz de ler, interpretar e executar alguma ao
mediante eventos do teclado. Desta maneira, semelhante movimentao de cmeras,
o pressionar das teclas definem rotaes e translaes dos modelos tridimensionais
por

intermdio

de

mtodos

semelhantes

ao

Initialize,

Process

Stimulus,

processKeyEvent e KeyPressed, diferindo apenas no alvo das transformaes, uma


vez que as aes ocorrem sobre instncias da classe TransformGroup que abrigam
representaes tridimensionais e no mais plataformas de visualizao.

117

A partir da classe MouseTranslate, estendida da classe Behavior, o nodo de


transformao que abriga o modelo tridimensional no grafo de cena, pode ser alterado
em tempo de execuo por meio de movimentos do mouse, especificamente com o
boto direito pressionado, resultando em translaes da representao tridimensional
por toda a cena sinttica. Da mesma forma que na classe KeyNavigatorBehavior, a
classe MouseTranslate funciona com base nos quatro mtodos anteriormente citados,
os quais podem ser customizados para a realizar a movimentao desejada.
Anlogo ao funcionamento de MouseTranslate, a classe MouseRotate do
pacote com.sun.j3d.utils.behaviors.mouse.MouseRotate tem como base os mesmos
mtodos, diferindo apenas no modo com que a mesma atua sobre o grafo de cena,
onde os nodos de transformao tem suas matrizes multiplicadas por matrizes de
rotao, alterando a orientao dos modelos em tempo de execuo do grafo atravs
de movimentos do mouse aliados ao boto esquerdo.
Depois de instanciados, os objetos das classes citadas tm imediatamente suas
fronteiras de atuao delimitas pelo mtodo setSchedulingBounds, cujo parmetro
uma instncia da classe BoundingSphere, sugerindo que as fronteiras de atuao da
classe de Manipulao Convencional de Modelo seja esfrica e com raio embutido em
tal parmetro. Posteriormente, os objetos das classes de manipulao so associados
ao nodo TransformGroup, o qual mantm ligao direta com o objeto Shape3D que
armazena a representao tridimensional que ser manipulada. A implementao da
presente classe e de suas bases seguem a mesma idia da Manipulao Convencional

de Cena, diferindo apenas no alvo de aplicao, uma vez que o produto das mesmas
aplicado sobre o nodo TransformGroup que abriga o modelo tridimensional.
4.2.10. Manipulao no Convencional de Cena

A classe de Manipulao no Convencional de Cena configura-se como uma


das grandes responsveis pela interatividade e imerso do usurio com o Ambiente de
Realidade Virtual, uma vez que permite que o utilizador navegue pela cena sinttica
em todas as direes, se aproxime e adentre as estruturas reconstrudas utilizando-se
da luva de dados P5Glove.
Para a realizao de tais eventos, as classes de manipulao, tanto de cena
quanto de modelo, baseiam-se em outra classe auxiliar denominada FPSGlove

118

presente no pacote com.essentialreality, fornecido pelo fabricante do dispositivo e


melhorada por desenvolvedores (Kenner, 2007), provendo uma interface programvel
entre o desenvolvedor e o hardware da luva de dados.
A classe FPSGlove a responsvel por abrigar todos os parmetros referentes
ao dispositivo no convencional, no que diz respeito ao posicionamento, orientao e
dobra dos dedos, tornando possvel detectar a proximidade e a inclinao no mesmo, e
assim disparar uma srie de eventos customizveis. Desta maneira, em princpio so
declaradas flags constantes que indicam se a luva est prxima ou distante da torre de
recepo. Posteriormente, novas flags4 registram o posicionamento vertical e
horizontal do dispositivo.
De maneira anloga, novas constantes delimitam os triggers responsveis por
iniciarem determinados eventos medida que seus valores so ultrapassados. Por
exemplo, quando a luva ultrapassa uma determinada altura, a cmera comea a se
mover para cima e assim por diante. Tais triggers existem tambm para inclinao da
mo e dobra dos dedos, ambos determinados por ngulos mnimos.
Posteriormente, j no mtodo construtor da classe, outros parmetros de igual
importncia so ativados, tais como P5_Init, P5_setForward, P5_setMouseState,
P5_setFilterAmount

P5_setRequiredAccuracy,

responsveis

por

inicializar,

determinar a direo positiva, desligar o mouse, filtrar o sinal e determinar a preciso


de movimentos, respectivamente.Em seguida, so declarados os mtodos responsveis
por detectar a posio da luva no ambiente real. So eles o getXPosition, getYPosition
e getZPosition, os quais mapeiam as triggers antes citadas para disparar um tipo de
evento, ou seja, monitora os valores recebidos pela luva atravs de instncias da
classe P5State, classe responsvel por determinar o estado atual da luva. Assim, por
intermdio do mtodo filterPos de P5State, a exata posio do dispositivo obtida e
ento atribuda aos mtodos para checar se os limites foram ultrapassados.
De forma anloga aos mtodos de deteco de posicionamento, ainda na classe

FPSGlove, so descritos os mtodos getYaw, getPitch e getRoll, os quais respondem


por detectar a inclinao do dispositivo nos eixos Y, X e Z, determinando se os
limites estabelecidos pelas flags foram atingidos.

Flag (Bandeira): mecanismo lgico que funciona como semforo; ativada se a caracterstica associada
a essa flag estiver presente.

119

Na classe FPSGlove, so ainda definidos os mtodos: isClenched,

para

determinar se as dobras do dispositivos esto flexionadas, tambm regido por flags


que determinam os limites, e isAPressed, isBPressed e isCPressed, os quais resolvem
o pressionar do boto A, B e C da luva de dados, respectivamente.
Depois de implementados os monitores e triggers de eventos com a classe
auxiliar, a Manipulao no Convencional de Cena deve agora ter seus eventos
descritos em seu escopo. Para tal, a classe deve primeiramente ser estendida da classe

ViewingPlatform, ou seja, ter suas instncias interpretadas como eventos sobre a cena
virtual. Em seguida, dois parmetros especficos so includos, ou seja, o passo de
translao e o passo de rotao, responsveis por definirem o quanto os modelos
virtuais sero deslocados ou inclinados a cada movimento do dispositivo no mundo
real, depois de reconhecidos pela classe FPSGlove. Os prximos passos configuramse em implementar os mtodos Initialize e ProcessStimulus, de forma semelhante aos
mtodos de manipulao convencional de cena e modelo, onde os eventos de
despertar das aes e as prprias so descritas, respectivamente. O Pseudocdigo 7
demonstra a implementao de Manipulao No Convencional de Cena e a Figura
42 apresenta a utilizao prtica da classe.
Finalizado o processo, a instancia da classe de Manipulao No

Convencional de Cena devem ser atrelada ao objeto da classe ViewingPlatform do


atual objeto Canvas3D, para que todos os movimentos afetem a cena e no o modelo
trdimensional, atravs do mtodo setViewingPlatform.
Para a efetiva realizao de uma translao de cena, uma instncia de

FPSGlove criada para a chamada dos mtodos getXPosition, getYPosition e


getZPosition, armazenando a real posio do dispositivo no mundo real e
movimentando a cena virtual na direo apontada pelo mesmo. Para tal ao, a classe
utiliza-se dos mesmos nodos Java3D dos processos de manipulao convencional ou
mesmo de transformaes lineares no interativas: o nodo de agrupamento de
transformaes da classe TransformGroup e as efetivas transformaes da classe

Transform3D, por intermdios dos mtodos de setTranslation e setRotation,


utilizando como parmetro os ngulos e posies reconhecidos pelo objeto de

FPSGlove, movimentando a cena na direo real desejada. De forma anloga


Manipulao Convencional de Cena, os caminhos percorridos podem ser demarcados
e armazenados para posterior renderizao.

120

Procedimento Manipulao No Convencional De Cena:


Begin
Constantes
Perto;
Longe;
Meio;
Rotacionar_Z_Esquerda;
Rotacionar_Z_Direita;
Passo De Rotao:=3 Graus;
Passo De Translao:=0.05 Metros;
Nova Luva;
Luva.Direcao De Z(Para Trs);
Luva.Estado Do Mouse(Desligado);
Luva.Ajustar Filtro(Mdias);

Mnimo para Rotacionar Z Esquerda;


Mnimo para Rotacionar Z Direita;
Mnimo para Considerar Perto;
Mnimo para Considerar Longe;

Procedimento Obter Posio De Z:


Begin
Posio Z = Estado Da Luva.Posio Filtrada De Z;
Se Posio Z < Mnimo Para Considerar Perto
Retorna Perto;
Se Posio Z > Mnimo Para Considerar Longe
Retorna Longe;
Seno
Retorna Meio;
End;
Procedimento Obter Rotao De Z:
Begin
Rotao Z= Estado Da Luva.Orientao Filtrada De Z;
Se Rotao Z<Mnimo Para Rotacionar Z Esquerda
Retorna Rotacionar Z Esquerda;
Se Rotao Z>Mnimo Para Rotacionar Z Direita
Retorna Rotacionar Z Direita;
Senao Retorna Meio;
End;

Procedimento Obter A Pressionado:


Begin
Novo Vetor De Botes Pressionados;
Vetor De Botes Pressionados=Estado Da Luva.Boto Pressionado;
Retorna Botes Pressionados[Posio Zero];
Procedimento Estimulo
End;
Novo Vetor Frente=(0,0,-Passo De Translao);
Novo Vetor Tras=(0,0,Passo De Translao);
Novo Vetor Cima=(0,Passo De Translao,0);
Novo Vetor Baixo=(0,-Passo De Translao, 0);
Procedimento Inicializar:
Begin
Nova Condio De Gatilho;
Condio De Gatilho.Tempo Decorrido;
Ativar Condio;
End;

Begin
Atualizar Luva;
Nova Posio Da Mo;
Posio Da Mo:=Luva.Obter Posio De Z;
Se Posio Da Mo=Perto
Movimentar(Frente);
Se Posio Da Mo=Longe
Movimentar(Trs);
Seno Meio;
Nova Orientao Da Mo;
Orientao Da Mo:=Luva.Obter Rotao De Z;
Se Orientao Da Mo=Rotacionar Z;
Rotacionar Z(-Passo De Rotao);
Se Orientao Da Mo=Rotacionar Z Direita
Rotacionar Z(Passo De Rotao)
Seno Meio
End;

Nova Fronteira Esfrica;


Fronteira Esfrica.Ajustar Parmetros(Raio, Origem);
Nova Plataforma de Visualizao;
Plataforma de Visualizao.Ajustar Comportamento
Convencional de Cena)
End.

de

Cena(Manipulao

Pseudocdigo 7 Pseudocdigo da Manipulao No Convencional de Cena

No

121

Figura 42 Representao da Manipulao No Convencional

4.2.11. Manipulao No Convencional de Modelo

A implementao de Manipulao No Convencional de Cena a classe


responsvel por realizar a movimentao das representaes tridimensionais atravs
de movimentos reais da luva de dados P5Glove, onde o usurio pode alterar o
posicionamento e orientao dos modelos em tempo real sob todas as direes e
ngulos, contribuindo diretamente para a interatividade do ambiente virtual, em seis
graus de liberdade.
Para viabilizar o processo, anlogo Manipulao no Convencional de Cena,
a presente implementao utiliza a classe de apoio FPSGlove, descrita anteriormente
como a detentora dos flags que reconhecem a posio e orientao do dispositivo no
convencional. Todos os eventos que aqui se utilizem de FPSGlove so
necessariamente idnticos classe anterior, diferindo apenas do alvo ao qual se
aplicam as transformaes.
Assim, a Manipulao no Convencional de Modelo inicia-se estendida da
classe Behavior, denominando-se uma classe que descreve comportamentos,
customizados para reaes aos movimentos do dispositivo. Desta maneira, logo so
descritos os passos de translao e de rotao, determinando o quanto o modelo deve
se movimentar a cada deslocamento da luva.
Tambm de forma semelhante classe anterior, os comportamentos da

Manipulao no Convencional de Modelo so regidos por dois mtodos bsicos de

122

comportamento: Initialize e processStimulus, detectando a posio e a orientao do


dispositivo exatamente da mesma maneira, entretanto, com alguns pontos adicionais.
Aps atribuir os mtodos getXPosition, getYPosition, getZPosition para obter
o posicionamento, e os mtodos getYaw, getPitch e getRoll, para obter as orientaes,
sob instncias da classe FPSGlove, chamado um novo mtodo, denominado

rotateQuaternion, responsvel por converter rotaes realizadas sob ngulos de Euler


em coordenadas de Quatrnios, estabelecendo rotaes com nmeros complexos e
eixos imaginrios, a fim de contribuir com a preciso de movimentos.
O mtodo rotateQuaternion passa sua classe os parmetros de eixo e ngulo,
em coordenadas de Euler e retorna a descrio de um quatrnio, a set utilizado no
mtodo construtor Quat4f, construindo um quatrnio de float e posteriormente em

setRotation, efetivando uma rotao com instncias da classe Transform3D.


Ao final do processo, o produto da classe de Manipulao no Convencional

de Modelo encapsulado sob a forma de um objeto BranchGroup e atribudo ao


grupo de transformao TransformGroup que rege os movimentos da representao
tridimensional, de forma distinta classe anterior, fazendo com que toda a deteco
de movimento e a efetiva mudana de posicionamento e orientao das entidades
surta efeito sobre os atuais modelos no objeto Canvas3D. A implementao da
presente classe e de suas bases seguem a mesma idia da Manipulao No

Convencional de Cena, diferindo-se apenas no alvo de aplicao, uma vez que o


produto das mesmas aplicado sobre o nodo TransformGroup que abriga o modelo
tridimensional.

4.2.12. Coliso Convencional

A classe denominada Coliso Convencional trata da implementao de um


algoritmo de deteco de coliso agregado classe de Manipulao Convencional de

Cena, com seu funcionamento restrito a eventos que utilizem dispositivos


convencionais de entrada de dados, especificamente o teclado. Assim, por meio de tal
algoritmo, os usurios so impedidos de atravessar as faces dos modelos
tridimensionais durante o processo de navegao na cena sinttica, permitindo apenas
a transposio das cmeras por dentre os espaos vazios entre tais faces, simulando
processos fsicos reais.

123

Para a implementao da classe em questo, foi adotada mais uma vez como
extenso a interface Behavior, a qual fornece genericamente atravs de dois dos
mtodos anteriormente descritos, Initialize e ProcessStimulus, os subsdios para o
reconhecimento e interpretao das teclas pressionadas para a identificao das aes
que culminam na coliso entre uma determinada face do modelo tridimensional e a
estrutura que representa o posicionamento do usurio na cena.
Para o mtodo Initialize, so definidos trs instancias da classe

WakeupCriterion, determinando as condies de inicializao para a classe de coliso.


So elas: objeto de WakeupOnCollisionEntry, a qual sinaliza quando uma coliso
iniciada; objeto de WakeupOnCollisionExit, que prev a finalizao de um processo
de coliso, e objeto de WakeupOnCollisonMovement, a qual garante que a coliso
continuar inicializada se a posio de choque entre as representaes for mantida.
O mtodo processStimulus de Coliso Convencional o responsvel por
identificar uma srie de teclas pressionadas, atravs de um parmetro da classe

Enumeration, anlogo aos processos anteriores. A seguir, o mtodo processStimulus


interpreta tal srie como instncias de critrios de estmulo para sua execuo, ou seja,
traduz cada tecla verificando se a mesma objeto WakeupCollisionEntry,

WakeupOnCollisionExit ou WakeupOnCollisonMovement. Identificada a condio da


coliso, o mtodo processStimulus bloquear os movimentos convencionais da cena
na direo onde ocorre a coliso, ou seja, se a cena se move para frente, ao colidir
com uma face de um modelo tridimensional, os movimentos das cmeras, provocados
por tal tecla so neutralizados, at que qualquer tecla que leve a cmera pra outra
direo, e que no conduza a outra coliso, seja pressionada. O mesmo ocorre com
todas as outras teclas que movimentam as cmeras (setas do teclado), sobre todas as
faces dos modelos. Tal bloqueio ocorre atravs do acesso aos objetos da classe de

KeyBehavior, mencionada anteriormente. Esta classe armazena em quatro objetos


individuais, as teclas pressionadas, representando as direes de movimentao da
cena, usadas tanto para posicionamento quanto para orientao. Desta maneira, a
classe de Coliso Convencional, por intermdio de chamadas publicas, instancia tais
objetos com parmetros nulos, fazendo com que as mesmas deixem de influenciar os
movimentos da cena.
Entretanto, para que tal bloqueio de movimentos seja concretizado,
necessrio posicionar alguma entidade na cena com a qual as faces dos modelos

124

tridimensionais se colidem. Desta maneira, faz-se uso de duas instncias Shape3D,


munidas de qualquer geometria, no caso esferas azuis de raio 0,5. Tais esferas so, a
cada inicializao do sistema, associadas a um objeto da classe denominada

PhysicalBody, que em Java3D delimita o posicionamento fsico do observador da


cena virtual. Assim, as esferas azuis simbolizam os olhos do observador, que, em
choque com as faces do modelo, so impedidas de prosseguir, independente da
direo. O Pseudocdigo 8 demonstra a instanciao de mtodos de coliso.

Procedimento Coliso Convencional:


Begin
Procedimento Inicializar:
Begin
Novo Critrio De Inicializao;
Critrio De Inicializao.Ao Encostar Na Face;
Critrio De Inicializao.Ao Desencostar Da Face;
Critrio De Inicializao.Ao Permanecer Encostado;
Adicionar Lista De Critrios Ao Sistema;
End;
Seno Se Critrio De Estimulo = Ao Desencostar Da Face
Begin
Se Tecla Travada = Seta Para Cima
Procedimento Estmulo:
Begin
Destravar Seta Para Cima;
Novo Critrio De Inicializao=Prximo Elemento;
Se Tecla Travada = Seta Para Baixo
Se Critrio De Estimulo = Ao Encostar Na Face
Destravar Seta Para Baixo;
Begin
Se Tecla Travada = Seta Para Esquerda
Critrio.Obter Objeto;
Se Ultima Tecla Pressionada = Seta Para Cima
Destravar Seta Para Esquerda;
Movimento Para Frente = Travado;
Se Tecla Travada = Seta Para Direita
Se Ultima Tecla Pressionada = Seta Para Baixo
Destravar Seta Para Direita;
Movimento Para Baixo = Travado;
Exibir "Deixando Estado De Coliso"
Se Ultima Tecla Pressionada = Seta Para Esquerda
Movimento Para Esquerda = Travado;
End;
Senao Se Criterio De Estimulo = Encostado
Exibir "Estado De Colisao Em Curso";
End;
End.

Se Ultima Tecla Pressionada = Seta Para Direita


Movimento Para Direita = Travado;
Exibir "Estado De Coliso Iniciado";
End;

Pseudocdigo 8 Pseudocdigo da instanciao dos mtodos de Coliso Convencional

4.2.13. Coliso No Convencional

A classe denominada Coliso No Convencional trata da implementao de


um algoritmo de deteco de coliso agregado classe de Manipulao No

Convencional de Cena, com seu funcionamento restrito a eventos que utilizem


dispositivos no convencionais de entrada de dados, especificamente a luva de dados

P5Glove. Desta maneira, por meio de tal algoritmo, os usurios so tambm

125

impedidos de atravessar as faces das representaes tridimensionais durante o


processo de navegao na cena sinttica, permitindo apenas a transposio das
cmeras por dentre os espaos vazios entre tais faces, simulando processos fsicos
reais.
De forma idntica Coliso Convencional, a presente classe estendida da
interface Behavior e baseia-se tambm em inicializao e estmulo. De forma idntica
Coliso Convencional, o mtodo Initialize instancia trs critrios de inicializao:

WakeupOnCollisionEntry, WakeupOnCollisionExit e WakeupOnCollisionMovement,


definindo as condies em que a coliso no convencional se inicia.
J o processStimulus apresenta algumas diferenas em relao classe
anterior. Ao processar e analisar a srie de critrios passados como parmetros, o
mtodo passa agora a interpretar os movimentos da luva, tendo como foco uma
possvel coliso. Novamente utilizando-se de instncias da classe de Manipulao no
Convencional de Cena, extenso de Behavior, cada posio espacial da luva testada
quanto atual instncia da mesma, ou seja, para qual direo a luva est se
movimentando no atual momento, onde as possveis alternativas so: esquerda,
direita, para cima, para baixo, para frente e para trs.
Identificado o posicionamento da luva no momento de uma suposta coliso, a
classe de Coliso No Convencional realiza o bloqueio dos movimentos do
dispositivo, de forma anloga deteco da classe anterior. Assim, a ultima
movimentao da luva ao colidir imediatamente impedida de continuar, embora a
luva de dados possa ser movimentada livremente no ambiente real. Tal ao
provocada por uma nova instanciao das atuais posies luva, atribuindo s mesmas,
vetores zerados, ou seja, inicializados na origem, provocando a parada imediata dos
movimentos do dispositivo.
Paralelamente, ao realizar qualquer outro movimento, que no os que levem a
uma continuao do bloqueio, a classe os interpreta e permite continuar a srie vlida
de movimentos, atravs da nova instanciao das posies mapeadas da luva,
utilizando como parmetro a posio onde a coliso foi iniciada e o passo linear
adotado pela classe, um fator multiplicativo que representa a unidade cartesiana
percorrida. Ao final do processo, de forma idntica Coliso Convencional, um

Shape3D adicionado ao PhysicalBody para realizar a deteco no processo de


navegao do usurio na cena, permitindo que a viso do mesmo se choque com as

126

faces da representao tridimensional e desencadeie o algoritmo da classe descrita,


impedindo que a navegao prossiga por entre a cena e permitindo a continuao
medida que qualquer outra direo de e/ou sentido de movimentao da luva seja
acionado. O Pseudocdigo 9 demonstra a utilizao da classe de Coliso No

Convencional.
Procedimento Coliso No Convencional:
Begin
Procedimento Inicializar:
Begin
Novo Critrio De Inicializao;
Critrio De Inicializao.Ao Encostar Na Face;
Critrio De Inicializao.Ao Desencostar Da Face;
Critrio De Inicializao.Ao Permanecer Encostado;
End;
Procedimento Estmulo:
Begin
Se Critrio De Estimulo = Ao Encostar Na Face
Begin
Critrio.Obter Objeto;
Se Ultimo Movimento Da Luva = Para Cima
Movimento Para Cima = Travado
Se Ultimo Movimento Da Luva = Para Baixo
Movimento Para Baixo = Travado
Se Ultimo Movimento Da Luva = Para Frente
Movimento Para Frente = Travado
Se Ultimo Movimento Da Luva = Para Trs
Movimento Para Trs = Travado
Se Ultimo Movimento Da Luva = Para Esquerda
Movimento Para Esquerda = Travado
Se Ultimo Movimento Da Luva = Para Direita
Movimento Para Direita = Travado
Exibir "Estado De Coliso Iniciado"
End;
Seno Se Critrio De Estimulo = Ao Desencostar Da Face
Begin
Se Movimento Travado = Para Cima
Destravar Movimento Para Cima
Se Movimento Travado = Para Baixo
Destravar Movimento Para Baixo
Se Movimento Travado = Para Frente
Destravar Movimento Para Frente
Se Movimento Travado = Para Trs
Destravar Movimento Para Trs
Se Movimento Travado = Para Esquerda
Destravar Movimento Para Esquerda
Se Movimento Travado = Para Direita
Destravar Movimento Para Direita
Exibir "Deixando Estado De Coliso"
End;
Seno Se Critrio De Estimulo = Permanecer Encostado
Exibir "Estado De Coliso Em Curso"
End;
End.
Pseudocdigo 9 Pseudocdigo que demonstra os mtodos de Coliso No Convencional

127

4.1.14. Quatrnios

Conforme citado anteriormente no Captulo 1, a descrio de rotaes por


ngulos de Euler configura-se como um srio problema para o sistema quando se
espera realizar mudanas de orientao de cena ou de modelo em eixos no
convencionais, ou seja, diferente dos padres do sistema cartesiano.
Desta maneira, a classe de Quatrnios implementa um algoritmo de converso
para que o sistema deixe de utilizar apenas rotaes sobre o eixos x, y e z , passando
a realizar orientaes sobre eixos intermedirios, definidos por um vetor que passa
pela origem e atinge um ponto no espao, o qual representado por uma coordenada
especfica do dispositivo real, como por exemplo as coordenadas cartesianas (x, y, z)
de um dos oito LEDs da luva. Para realizar tal operao, a tcnica utiliza-se de bases
imaginrias e nmeros complexos, fornecendo assim uma alternativa de parmetro
para o mtodo setRotation da classe Transform3D, o qual permite a utilizao de um
quatrnio como argumento.
Primeiramente, deve-se compor a parte vetorial do vetor quatrnio atravs de:

angulo
s = sen

(4.17)

v[i ] = s axis[i ]

(4.18)

onde a varivel s composta pelo seno da metade do angulo , parmetro


multiplicativo de inclinao da luva em uma direo aleatria. J a varivel v
representa a parte vetorial propriamente dita, composta de trs partes contadas por i,
multiplicando o outro parmetro axis, representado pelos eixos de Euler recebidos
pela classe de converso.
Em seguida, deve-se estipular a quarta parte (escalar) do quatrnio:

angulo
v[3] = cos

(4.19)

128

onde o valor escalar do quatrnio, ou quarta parte, igual o cosseno da metade do


ngulo de Euler recebido.
Desta maneira, ao chamar uma instncia de Quatrnios ao se realizar uma
rotao com o dispositivo no convencional P5Glove, a orientao da luva
interpretada pela classe FPSGlove e traduzida pela Manipulao no Convencional de

Cena ou de Modelo, convertida do sistema de Euler para a base de Quatrnios,


retornando ao sistema novas coordenadas de orientao, a serem efetivadas pelo
mtodo Quat4f de Transform3D, a qual encapsula todo o funcionamento de um
quatrnio descrito anteriormente. O Pseudocdigo 10 mostra a converso de bases de
Euler para Quatrnios.
Procedimento Quatrnios:
Begin
Procedimento Converso:
Begin
Novo Angulo De Euler;
Novo Vetor De Eixos;
Novo Fator De Rotao;
Novo Flutuante;
Flutuante = Seno (Angulo De Euler/Fator De Rotao);
Novo Vetor De Quatrnios;
Vetor De Quatrnios[Posio 0]=Flutuante*Vetor De Eixos[Posio 0]
Vetor De Quatrnios[Posio 1]=Flutuante*Vetor De Eixos[Posio 1]
Vetor De Quatrnios[Posio 2]=Flutuante*Vetor De Eixos[Posio 2]
Vetor De Quatrnios[Posio 3]=Cosseno (Angulo De Euler/Fator De
Rotao)
End;
End.
Pseudocdigo 10 Pseudocdigo que demonstra a converso do sistema de Euler para Quatrnios

4.2.15. Filtro

A luva digital P5Glove, conforme sua especificao possui um sistema ptico


de transmisso de dados, por meio de emisso, recepo e decodificao de sinais
infravermelhos, onde os 8 LEDs os enviam de acordo com a visibilidade do
dispositivo pela torre de recepo. J na torre tais sinais so recebidos por um par de
sensores fotossensveis, capazes de determinar a posio/distancia da luva pela
correlao dos raios que chegam a ela.
Como qualquer sistema ptico, a transferncia de dados entre a luva P5Glove
e a torre receptora, suscetvel a rudos, principalmente o rudo branco. Desta
maneira, o sinal recebido pela torre apresenta uma intermitente inconstncia de

129

valores, os quais representam as coordenadas cartesianas (x, y, z) de cada LED


emissor de luz.
A posio final da luva e de seus LEDs nunca sero as reais posies no
mundo real, bem como a posio das entidades que compem o mundo sinttico.
Paralelamente, a representaes tridimensionais e as cmeras da cena apresentam uma
ligeira trepidao ao serem manipuladas e/ou exploradas utilizando-se do dispositivo
no convencional, resultado da mesma inconstncia de leitura dos dados
infravermelhos.
Para solucionar o problema, foi implementada a classe Filtro, a qual se
responsabiliza por receber os valores imprecisos provenientes do sinal original
ruidoso e atualiza-los em valores precisos e constantes. Para tal atividade, foi adotada
como apoio, a mesma classe que d suporte s classes que controlam o dispositivo
no convencional, denominada FPSGlove, a qual detm toda a informao a respeito
dos sensores sob os aspectos de posicionamento, orientao e dobras dos dedos.
Inicialmente, para dar incio aos clculos das novas posies e orientaes dos

LEDs emissores, necessrio obter os parmetros a serem utilizados para tal


atividade, no caso, as primeiras coordenadas dos LEDs da luva, as quais podem ser
obtidas a partir da instncia da classe FPSGlove atravs do mtodo Update,
responsvel por inicializar todos os parmetros da luva, executado em um lao de
repetio de cinco vezes, a fim de capturar vinte amostras de posicionamento
tridimensional para cada um dos oito LEDs emissores, ou seja, vinte amostras de
cada coordenada cartesiana (x, y, z).
Posteriormente essas cinco amostras so armazenadas em um vetor a fim de
organizar os dados, para que em seguida seja calculada a mdia aritmtica dos valores
dos valores atravs da formula:

x + x + x + x + ... + xn
x = 1 2 3 4

(4.20)

onde xn so as amostras e N o total de amostras


Em seguida, o valor da mdia utilizado para realizar o clculo da varincia
dos dados, com o propsito de descobrir o quanto os valores recebidos pelo sensor se
distanciam da mdia calculada. A varincia obtida atravs da formula:

130

s2 =

1 n
( xi x ) 2

n 1 i =1

(4.21)

onde x a mdia, n as amostras e xi a amostra atual.


Finalmente, os valores iniciais das amostras para cada LED so comparados
com o valor da varincia e assim, o valor que mais se aproxima da mesma adotado
como o novo valor de posicionamento espacial do LED em questo. Desta maneira,
cada valor de cada coordenada tem sua posio reavaliada e substituda por um valor
nico que mais se aproxima da posio real do LED emissor, corrigindo eventuais
trepidaes e erros de clculo. O Pseudocdigo 11 demonstra a implementao da
classe Filtro, responsvel por tomar amostras de leituras de dados da luva, calcular
novos valores e os substituir, evitando movimentos indesejados.

4.2.16. Visualizao

A Classe de Visualizao responsvel por fornecer mtodos secundrios de


exibio de todo o contexto tridimensional que o sistema envolve, provendo solues
alternativas de visualizao de cena e de entidades tridimensionais, como visualizao
imersiva, Realidade Aumentada e visualizao semi-imersiva, atravs de novos
dispositivos no convencionais de entrada e sada de dados, tais como um HMD
(Head Mounted Display), uma cmera de vdeo e um culos de anaglifo,
respectivamente..
Para que tal evento tenha efeito, primeiramente, a interface do sistema prepara
a amostra tridimensional para se adequar visualizao pelo dispositivo, ajustando-o
ao modelo 3-D para que o mesmo ocupe toda a extenso do objeto Canvas3D,
maximizando a instncia viewport e movendo o objeto viewingplatform para o local
mais prximo possvel da amostra. Tal atividade faz com que todos os espaos sejam
aproveitados, contribuindo para a qualidade da visualizao, uma vez que a resoluo
das telas do HMD so inferiores aos monitores LCD e CRT convencionais.
A API Java3D fornece em seu conjunto de classes, mtodos essenciais para a
programao de um HMD, dentre os quais: setViewPolicy e int getViewPolicy,
derivados do pacote javax.media.j3d.View e responsveis por definir e visualizar a

poltica atual para a viso do usurio, sob o parmetro, HMD_VIEW, o qual

131

especifica que o Java3D deve computar novos viewpoints usando a seqncia de


transformao apropriada ao ambiente Head Mounted Display; setScreenScalePolicy
e getScreenScalePolicy, utilizados para definir e visualizar a poltica de escala de
viso. Tais mtodos encapsulam toda a programao da estereoscopia, fornecendo
todos os subsdios para a o funcionamento do dispositivo, de forma que a gerao das
imagens separadas por campo de viso fica a critrio da API, bem como toda a
mtrica que envolve a gerao de uma imagem binocular.
Para a gerao de Realidade Aumentada, foram utilizados os algoritmos
propostos por Kirner (Kirner, et al

2007), codificados sob a linguagem C e

utilizando-se da biblioteca ARToolkit, onde a representao tridimensional inserida


no ambiente real de forma que a mesma pode ser explorada e analisada como se a
entidade estivesse na mo no utilizador, utilizando-se de dispositivos simples e
acessveis.
Para a realizao de tal evento de visualizao, em um primeiro momento so
impressos marcadores de papel com inscries pr-definidas, as quais servem de
ponto de referncia no ambiente real para a insero de modelos virtuais. Tais
marcadores tm suas imagens capturadas por uma Webcam de 1.3Mpixels de
resoluo de foco.
Assim, atravs de algoritmos de viso computacional executados em tempo
real, tais como o reconhecimento de bordas e limiarizao de imagens, o desenho do
papel ento identificado.
Posteriormente, tais desenhos so comparados a uma base de inscries
definidas pelo desenvolvedor, onde apenas as vlidas prosseguem o curso do sistema,
ou seja, se a imagem reconhecida for igual a alguma das imagens da base. Em
seguida, o marcador que possuir tal desenho receber um objeto virtual, tambm
armazenado junto a uma base de modelos. Desta maneira, da mesma maneira que os
modelos tridimensionais so manipulados com os dispositivos convencionais (teclado
e mouse) e no convencionais (luva de dados), os mesmos podem ser transladados e
rotacionados medida que o usurio movimenta os marcadores, permitindo igual
explorao das entidades reconstrudas.
Ao final do processo, o resultado pode ser visualizado tanto no monitor
convencional, quanto no HMD (Head Mounted Display).

132

J a visualizao por Anaglifo constitui-se como o ultimo processo de


visualizao diferenciado. Tal processo caracteriza-se como semi-imersivo e de mais
baixo custo, uma vez que proporciona uma sensao de profundidade do usurio na
cena sinttica utilizando-se apenas de um culos estereoscpicos confeccionado com
papel e plstico, em conjunto com um monitor convencional.
Para conseguir o efeito imersivo, o sistema prove ao usurio o mesmo modelo
tridimensional visualizado sob dois diferentes ngulos, os quais representam o modelo
visto pelo olho direito e esquerdo, renderizados concomitantemente no mesmo objeto

Canvas3D. Posteriormente, as vises do olho esquerdo e direito so coloridas de


vermelho e azul respectivamente, mesmas tonalidades das lentes de cada lado dos
culos. Desta maneira, atravs da lente vermelha, o usurio visualiza apenas o modelo
que representa a viso do olho esquerdo e, atravs da lente azul, apenas o modelo
visto pelo olho direito. O lado em que cada modelo se posiciona no objeto Canvas3D
independente, pois os culos sempre permitiro visualizar apenas um modelo por
lente, em acordo com a teoria sobre estereoscopia e paralaxe. Assim, ao fundir as
imagens vistas atravs dos culos, o crebro humano as funde em uma nica imagem
acinzentada, dotada de profundidade mesmo que inerte na cena virtual. O
Pseudocdigo 12 demonstra a implementao da visualizao por Anaglifo.

4.2.17. Loader

A classe Loader configura-se como a responsvel por identificar, carregar e


renderizar os modelos tridimensionais sob o formato adotado pelo presente trabalho,
tornando-se um elo de integrao entre o algoritmo de reconstruo e o ambiente de
Realidade Virtual, possibilitando a aplicao de todos os processos anteriormente
descritos.
Com a API Java3D possvel importar pacotes de dados geomtricos externos
programao nativa (cubos, cones, cilindros e esferas), como conjunto de pontos,
arestas ou faces, modelados sob diversas ferramentas e/ou algoritmos computacionais,
ou seja, trazer para dentro de um ambiente virtual Java, modelos desenvolvidos com
ferramentas especficas, atravs de classes importadoras, as quais armazenam a cena,
representada em cdigo Java3D. Entre os tipos de arquivos que podem ser importados

133

esto 3D Studio (.3ds), Wavefront (.obj), VRML (.wrl), AutoCAD (.dfx), dentre
outros.
Inicialmente, para que as atividades desta fase possam ser iniciadas, torna-se
necessria a utilizao de mtodos do pacote do Visualization Toolkit (vtk), descritos
anteriormente, as quais so capazes de converter os arquivos que possuem as
representaes dos objetos tridimensionais, em formatos praticveis em ambiente

Java3D, possibilitando a implementao da classe importadora. Desta maneira, o


objeto reconstrudo tridimensionalmente e salvo no formato Visualization Toolkit
(.vtk) (Kitware, 2007), escrito sob o formato Wavefront File Format (.obj)
(Wavefront, 2007), o qual representar a visualizao dos modelos, cujas regies so
filtradas pela classe Threshold, utilizada para representar os componentes que formam
o objeto reconstrudo.
Posteriormente, com os arquivos j preparados, uma nova classe ser
implementada, derivada da classe ObjectFile (Sun, 2007), a qual prov subsdios para
trazer todas as caractersticas do modelo ao ambiente Java, utilizando-se de mtodos
pr-implementados, portveis para a reutilizao. Esta nova classe ser capaz de
importar o modelo completo, reconstrudo e exportado sob o formato Wavefront, para
o ambiente virtual, mantendo todas as suas caractersticas originais, tais como
aparncia (Appearance), material (Material) e geometria (Geometry). Paralelamente,
o objeto importado poder ser tratado mediante todos os recursos de RV previamente
descritos na seo anterior.
A escolha pelo sistema de representao de modelos em Wavefront, ocorreu
justamente por tratar-se de um formato que representa modelagens com minuciosa
obedincia s exigncias de performance de um sistema de RV. Tambm se destaca
por armazenar seus atributos de aparncia e material em um arquivo distinto,
denominado Material Library (.mtl), de onde se encontram as informaes de pontos,
vrtices e arestas, o que facilita seu uso e aplicao.
O processo de importao dos dados geomtricos, aparncia e material,
ocorrem sob os passos descritos a seguir. Inicialmente, o arquivo Wavefront, arquivo
texto por definio, so seguidos linha por linhas atravs de ponteiros e convertidos
por um parser para a codificao na qual a linguagem Java possa interpretar.
Posteriormente, todos os dados so mantidos em estruturas similares s estruturas

Java3D, compondo os prottipos, a partir de nodos de uma estrutura tpica do arquivo

134

de entrada, como nodos Wavefront. Estas estruturas so agora interpretadas por um


gerenciador de Grafo de Cena, o qual realizar a estrutura hierrquica, provendo
dados visualizveis para o ambiente. A Figura 43 demonstra o fluxo dos dados no
processo de importao de arquivos Wavefront para o ambiente de Realidade Virtual e
o Pseudocdigo 13 demonstra a implementao da classe Loader.
Procedimento Filtro:
Novo Media De Amostras X;
Novo Media De Amostras Y;
Begin
Novo Media De Amostras Z;
Procedimento Atualiza Leds:
Novo Somatrio X;
Begin
Novo Somatrio Y;
Enquanto Contador De Leds < Numero Total De Leds
Novo Somatrio Z;
Begin
Enquanto Amostra Atual < Numero Total De Amostras
Begin
Mdia De Amostras X[Contador De Leds][Contador De Amostras] =
Coordenada X[Contador De Leds][Contador De Amostras]/Numero De Amostras
Mdia De Amostras Y[Contador De Leds][Contador De Amostras] =
Coordenada Y[Contador De Leds][Contador De Amostras]/Numero De Amostras
Mdia De Amostras Z[Contador De Leds][Contador De Amostras] =
Coordenada Z[Contador De Leds][Contador De Amostras]/Numero De Amostras
Somatrio X [Contador De Leds][Contador De Amostras]=Somatrio
X[Contador De Leds][Contador De Amostras]* (Coordenada X - Media De Amostras X
[Contador De Leds][Contador De Amostras])
Somatrio Y [Contador De Leds][Contador De Amostras]=Somatrio
Y[Contador De Leds][Contador De Amostras]* (Coordenada Y - Media De Amostras Y
[Contador De Leds][Contador De Amostras])
Somatrio Z [Contador De Leds][Contador De Amostras]=Somatrio
Z[Contador De Leds][Contador De Amostras]* (Coordenada Z - Media De Amostras Z
[Contador De Leds][Contador De Amostras])
Nova Varincia X;
Nova Varincia Y;
Nova Varincia Z;

Varincia X [Contador De Leds][Contador De Amostras] = 0.5* Somatrio


X[Contador De Leds][Contador De Amostras];
Varincia Y [Contador De Leds][Contador De Amostras] = 0.5* Somatrio
Y[Contador De Leds][Contador De Amostras];
Varincia Z [Contador De Leds][Contador De Amostras] = 0.5* Somatrio
Z[Contador De Leds][Contador De Amostras];
Valor Trocado De X [Contador De Leds][Contador De Amostras]= Menor
Diferena (Varincia X[Contador De Leds][Contador De Amostras], Coordenada X[Contador
De Leds][Contador De Amostras])
Valor Trocado De Y [Contador De Leds][Contador De Amostras]= Menor
Diferena (Varincia Y[Contador De Leds][Contador De Amostras], Coordenada Y[Contador
De Leds][Contador De Amostras])
Valor Trocado De Z [Contador De Leds][Contador De Amostras]= Menor
Diferena (Varincia Z[Contador De Leds][Contador De Amostras], Coordenada Z[Contador
De Leds][Contador De Amostras])
End;
Novo Valor Trocado X;
Novo Valor Trocado Y;
End;
Novo Valor Trocado Z;
End;
End.
Pseudocdigo 11 Pseudocdigo que realiza o clculo da varincia e substituicao dos novos valores de
leitura para os dados da luva

135

Procedimento Anaglifo
Begin
Nova Cena;
Cena = Loader.Carregar Modelo;
Nova Transformao3D;
Transformao3D.Translao(+Offset Olho, -Offset Olho,0)
Novo Grupo De Transformao;
Grupo De Transformao.Adicionar Transformao (Transformao3D)
Nova Transformao3D;
Transformao3D.Translao(-Offset Olho, +Offset Olho,0);
Novo Grupo De Transformao;
Grupo De Transformao.Adicionar Transformao (Transformao3D);
Novo Agrupamento De Geometrias
Agrupamento De Geometrias.Obter Geometrias Da Cena;
Nova Cor Azul;
Nova Cor Vermelha;
Nova Aparncia
Aparncia.Ajustar Material(Cor Azul);
Nova Aparncia;
Aparncia.Ajustar Material(Cor Vermelha);
Novo Atributo De Transparncia;
Novo Coeficiente De Transparncia;
Coeficiente De Renderizao.Suave;
Atributo De Transparncia.Ajustar Transparncia(Coeficiente De Transparncia);
Aparncia.Ajustar Atributos De Transparncia(Atriubutos De Transparncia);
Aparncia.Ajustar Atributos De Transparncia(Atriubutos De Transparncia);
Novo Atributo De Renderizao;
Novo Coeficiente De Renderizao.Desativar ZBuffer;
Coeficiente De Renderizao;
Atributo De Renderizao.Ajustar Atributo De Renderizao(Coeficiente De
Renderizacao);
Aparncia.Ajustar Atributo De Renderizao(Atributo De Renderizao);
Aparncia.Ajustar Atributo De Renderizao(Atributo De Renderizao);
Grupo De Transformao.Adicionar Filho(Agrupamento De Geometrias);
End.
Pseudocdigo 12 Pseudocdigo para a implementao de visualizao por Anaglifo

Procedimento Loader:
Begin
Procedimento Carregar:
Begin
End
End

Nova Cena:
Novo Objeto Padro
Objeto Padro.Ajustar Ao Canvas;
Cena.Importar(Modelo Tridimensional);
Novo Nodo de Agrupamento;
Nodo de Agrupamento:= Cena.Obter Grupo de Modelos;
Retornar Nodo de Agrupamento;

Pseudocdigo 13. Pseudocdigo da implementao da classe Loader

136

API
Tomografia 3-D em

Wavefront(.obj)

Conversor
Codificao Wavefront

Construo de nodos
Prottipos

Wavefront

Administrador do
Grafo de Cena

Ferramenta de
Codificao
(Java)

Estrutura de dados do Grafo de Cena

Figura 43 Representao do fluxo dos dados durante o processo de importao de arquivos


Wavefront na classe Loader

4.3. Dispositivos No Convencionais Empregados

No presente trabalho, para a efetiva implementao dos recursos imersivos e


interativos anteriormente descritos, fez-se necessrio o uso de dispositivos no
convencionais, responsveis por caracterizar o sistema, juntamente com as classes
programadas, um modelo de visualizao e anlise de RV.
Desta maneira, nesta seo so apresentados os dispositivos no convencionais
empregados em cada classe, bem como suas especificaes tcnicas, os quais
justificam sua utilizao.

4.3.1. Dispositivos de Entrada de Dados:

4.3.1.1. Luva de Dados: P5Glove

Entre os dispositivos de entrada de dados empregados est a luva de dados

P5Glove do fabricante Essential Reality. Tal dispositivo responde por ser o principal
hardware responsvel por realizar a implementao de todas as classes cujos
principais objetivos a manipulao de cenas e amostras tridimensionais, tais como:

137

Manipulao No Convencional de Cena, Manipulao No Convencional de


Modelo, Quatrnios, Filtro, Coliso No Convencional e Extrao de Atributos.
A luva de dados P5Glove pesa 128 gramas e possui compatibilidade mouse-

like, quando utilizada sem qualquer programao envolvida, apresentando a mesma


interface (USB 1.1) de um mouse comum sob os sistemas operacionais

Windows/Linux/Macintosh, o que lhe isenta do uso de cabos de energia.


A P5Glove tambm apresenta em sua estrutura, sensores de dobra localizados
nos dedos, responsveis por identificar os movimentos de clique, bem como aes de
segurar uma amostra no ambiente sinttico, a fim de prover a total explorao da
mesma. Tais sensores podem ter seus parmetros customizados atravs da API

Dualmode, uma vez que o movimento de dobras dos dedos varivel para cada
usurio.
Seu funcionamento baseia-se em um sistema de rastreamento ptico com dois
receptores fotossensveis em sua torre, os quais realizam a correlao dos raios de luz
enviados pelos oito LEDs emissores presentes na luva, para determinar a posio e
orientao do dispositivo no espao real de coordenadas, possibilitando a converso
para o espao virtual. Tais LEDs emissores encontram-se em sua totalidade na parte
posterior da luva, o que se configura como uma das limitaes do hardware, uma vez
que so necessrios no mnimo uma leitura de trs LEDs distintos para a
identificao do correto posicionamento e orientao do dispositivo no espao, visto
que o usurio pode apontar a palma da mo utilizada para os receptores de luz. Tal
limitao combatida pela implementao da classe Quatrnios, a qual realiza a
estimao de eixos de rotao intermedirios, impedindo a falta de parmetros das
rotaes de Euler e da falta de dados.
Outra limitao de hardware existente na P5Glove refere-se s leituras
realizadas pela torre, no sentido de que os receptores fotossensveis so suscetveis a
rudos. Como o funcionamento do dispositivo baseia-se em emisso, recepo e
correlao de raios infravermelhos, qualquer equipamento que opere dentro da faixa
de freqncia de 300GHz e 300THz, pode interferir na leitura dos dados, causando
uma inconsistncia de posicionamento e orientao, fazendo com que os valores
oscilem em uma margem de cinco unidades para mais ou para menos. Essa limitao
justifica a implementao da Classe filtro, presente no sistema.

138

A recepo dos dados efetua-se sob uma taxa de atualizao de 60 Hz e seis


graus de liberdade, sendo:
- Trs graus de Translao (X/Y/Z), representados pelos movimentos de
translao, relativos aos movimentos esquerda/direita, cima/baixo e frente/trs.
Apresenta resoluo e preciso de 0,003175 metros, alm de alcance de 1,2192
metros do receptor e alcance ilimitado do monitor.
- Trs graus de Rotao (yaw/pitch/row), representados pelos movimentos de
rotao dos eixos x, y e z de coordenadas cartesianas. Apresenta resoluo e preciso
de 1.A Figura 44 apresenta a luva de dados P5Glove utilizada no presente trabalho.

Figura 44 Luva de dados P5Glove da EssentialReality

4.3.1.2. Webcam Clone

Outro dispositivo no convencional utilizado para a entrada de dados no


sistema foi uma webcam do fabricante Clone, modelo 11090. Tal dispositivo
configura-se no trabalho como o hardware responsvel por realizar a captura dos
dados a serem processados pelo mdulo de visualizao atravs de tcnicas de
Realidade Aumentada, presente na classe Visualizao.
Este dispositivo suporta uma resoluo mxima de 1,3 megapixels, capaz de
capturar imagens a 1280x960 pixels, suficiente para identificar corretamente os
marcadores, impedindo com que as bordas dos mesmos sejam confundidas com
artefatos ou pixels interpolados da imagem. A webcam alimentada por porta USB.
Possui brilho automtico e foco de 30mm ~ infinito, o que tambm garantem a
confiabilidade ao se capturar as imagens dos marcadores. A Figura 45 apresenta a

webcam Clone utilizada no presente trabalho.

139

Figura 45 Webcam Clone 11090

4.3.2. Dispositivo de Sada de Dados

4.3.2.1. Head Mounted Display Innovatek

O dispositivo no convencional de sada de dados empregado foi um HMD


(head mounted display) do fabricante Innovatek e responde por ser o responsvel em
produzir o efeito imersivo de visualizao ao utilizar o sistema, baseando-se nos
princpios de estereoscopia, descritos tambm pela classe Visualizao.
A imagem fornecida pelo dispositivo atravs de duas telas de LCD de 0.6cm
x 0.6cm cada, as quais apresentam sinal de entrada de vdeo NTSC/PAL colorido e
180.000 pixels (800x225) de resoluo espacial, essencial para uma boa qualidade de
anlise, o que assegura a ausncia do efeito de Aliasing5.
O dispositivo tambm apresenta ngulo de viso diagonal de 26, o que
assegura a independncia tica do usurio, uma vez que lhe permite visualizar
diferentes pontos da tela, mantendo o efeito estereoscpico, o qual simula, alm de
profundidade das amostras visualizadas, um tamanho de imagem de uma tela de 86,4
cm a 2 metros de distncia.
Tal dispositivo pesa 200 gramas, favorecendo a utilizao do mesmo por um
grande perodo de tempo. Depende de alimentao de 4,5VDC a 12,0VDC estvel.
Possui tambm sada do adaptador de energia de 9,0V e bateria de ltio: LP900 de
7,2V/900mAh, sob consumo de 1,0W.
Finalmente, o HMD tambm apresenta terminal de entrada de udio/video
quadrupolo de 3.5mm, imagem de 1 Vrtice por pixel sob resistncia de 72 (sem

Aliasing (discontinuidade ): Efeito em imagem proveniente de baixa amostragem de freqncia (taxa


de Nyquist), o que provoca o efeito de escada nas bordas das mesmas.

140

movimento), som de 200mVrms sob resistncia de 20K e terminal de energia com


distncia de 4.0mm. A Figura 46 apresenta o HMD Innovatek utilizado no presente
trabalho.

Figura 46 Head Mounted Display Innovatek V-490

No Capitulo V so apresentados os resultados da implementao de cada uma


das classes descritas, bem como um estudo de caso para aplicaes em Cincia de
Solos, onde abordado o tema da porosidade de amostras agrcolas, envolvendo a
formao de caminhos preferenciais de fluxo de gua e solutos.

141

Captulo V
Resultados e Concluses

5.1. Reconstruo

Para a avaliao dos resultados descritos nas sees deste captulo, um


conjunto de diversas amostras foi utilizado. Tal conjunto constitui-se de: pores de
latosolo degradado, submetidos a um mesmo processo de aquisio tomogrfico sob
58 KeV de energia, 15mm de translao total, 0,083mm de passo linear, 180 de
rotao total, 1 de passo angular e 4 segundos de tempo de contagem por amostra de
projeo; argila, sob 56 KeV de energia, 1mm de translao total, 0,0611 de passo
linear, 180 de rotao total, 1 de passo angular e 7 segundos de tempo de contagem
por amostra de projeo; adubo orgnico,

sob 58,5 KeV de energia, 15mm de

translao total, 0,0833mm de passo linear, 180 de rotao total, 1 de passo angular
e 4 segundos de tempo de contagem por amostra de projeo; areia, sob 56 KeV de
energia, 0,0486mm de passo linear, 180 de rotao total, 1,2 de passo angular e 10
segundos de tempo de contagem por amostra de projeo; vidro, sob 56 KeV de
energia, 4mm de translao total, 0,040 de passo linear, 180 de rotao total, 1,8 de
passo angular e 14 segundos de tempo de contagem por amostra de projeo; e
cimento, sob 56 KeV, 10mm de translao total, 0,0556 de passo linear, 180 de
rotao total, 1 de passo angular e 8 segundos de tempo de contagem por amostra de
projeo.

142

Considerando a classe de Reconstruo, os algoritmos descritos por Pereira e


Cruvinel (Pereira e Cruvinel, 2001) foram reutilizados, os quais foram escritos sob a
linguagem de programao C++. Assim a partir das projees tomogrficas obtidas no
minitomgrafo, dados bidimensionais foram reconstrudos por Retroprojeo Filtrada,
entretanto, com presena de algum rudo, amplificado por um filtro rampa, presente
no algoritmo descrito. A Figura 47 apresenta as imagens obtidas com o uso do
algoritmos de reconstruo bidimensional de imagens tomogrficas, aplicado sob os
diversos tipos de amostras ensaiadas onde: (a), (b), (c) e (d) so imagens de amostras
de solo degradado; (e) imagem de um torro de latosolo; (f) e (g) so imagens de
amostras de argila; (h) imagem de uma amostra de areia; (i) imagem de uma amostra
de adubo; (j) e (k) so imagens de amostras de cimento, e (l) imagem de uma amostra
composta por esferas de vidro.

(a)

(b)

(e)

(f)

(i)

(j)

(c)

(d)

(g)

(h)

(k)

(l)

Figura 47 Imagens das amostras reconstrudas em 2-D com o algoritmo de Retroprojeo Filtrada e
adotadas para o desenvolvimento do presente trabalho: solo degradado (a, b, c, d), latosolo (e), argila (f,
g), areia (h), adubo (i), cimento (j, k) e vidro (l).

143

Aps a reconstruo das imagens, de forma a se obter melhoria, aplicou-se


uma filtragem bidimensional, utilizando-se da Transformada Wavelet Daubechies
com uma janela de 72 coeficientes. A nova filtragem bidimensional demonstrou bons
resultados quando combinada com a nica filtragem a priori por meio de janelas de

Hamming, utilizada na implementao original, conforme se pode observar na Figura


48 para as mesmas imagens processadas.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

(j)

(k)

(l)

Figura 48 Imagens filtradas com o algoritmo adaptativo atravs da Transformada Wavelet


Daubechies com uma janela de 72 coeficientes: solo degradado (a, b, c, d), latosolo (e), argila (f, g),
areia (h), adubo (i), cimento (j, k) e vidro (l).

Pode-se observar que as imagens tomogrficas obtidas com o algoritmo de


retroprojeo apresentaram-se com elevado rudo. J as imagens filtradas com
coeficientes Daubechies, foram suavizadas nas pores ruidosas e ainda assim
preservaram os detalhes da imagem reconstruda pela retroprojeo.
J a fase tridimensional da reconstruo forneceu modelos sintticos fiis
aos modelos reais, convertidos sob o formato Wavefront e de passvel aproveitamento

144

a todas as classes descritas no capitulo anterior, uma vez que carrega consigo todas as
propriedades fsicas originais, tais como formas, coeficientes de atenuao e volume,
conforme ilustrado nas Figura 49 e 50.

(a)

(b)

(b)

(d)

(e)

(f)

Figura 49 Imagens das amostras reconstrudas em 2-D com o algoritmo de Retroprojeo Filtrada e
adotadas para o desenvolvimento do presente trabalho: solo degradado (a, b, c, d), latosolo (e) e argila
(f).

145

(a)

(b)

(b)

(d)

(e)

(f)

Figura 50 Imagens das amostras reconstrudas em 3-D com o algoritmo de B-Wavelets e adotadas
para o desenvolvimento do presente trabalho: argila (a), areia (b), adubo (c), cimento (d, e) e vidro (f).

5.2. Ambiente de Realidade Virtual

A interface que representa a integrao de todas as ferramentas de Realidade


Virtual, como anteriormente descritas, foi desenvolvida para possibilitar o acesso a
todos os recursos necessrios para um sistema de RV, utilizando a linguagem de

146

programao Java, sob sua API Java3D. Assim, toda estrutura do Grafo de Cena foi
programada, de acordo com as classes descritas neste trabalho, suportadas pela API,
resultando em uma interface planejada, intuitiva e de fcil usabilidade, de forma a se
obter melhor acomodao do usurio com a mesma . A Figura 51 ilustra a interface e
seus respectivos controles, acessos e janelas de exibio de resultados.

Figura 51 - Representao da interface de RV, onde so apresentados os acessos s opes de


renderizao, transformaes fsicas lineares, colorizao, transparncia, iluminao e modos de
visualizao.

A interface fornece, em sua disposio inicial, acessos aos diferentes


mdulos que compem o ambiente de Realidade Virtual, formados por todas as
classes da Figura 37. Assim, atravs das abas da interface, o usurio pode escolher
entre os modos de Polgonos, Iluminao, Renderizao, Manipulao, Visualizao,

Colorizao, Transparncia e Transformaes, cada qual com seus respectivos


parmetros.
Tambm dispostos na interface encontram-se o controle de Threshold e as
janelas de visualizao de dados da luva p5Glove e dos dados obtidos pela extrao
de atributos. No menos importante, encontram-se na mesma janela, atalhos para a
chamada das classes de Reconstruo 2-D, filtragem por Wavelets e para a
Reconstruo 3-D, uma vez que foram constitudas por intermdio de outra linguagem

147

de programao (C++), influindo tal diferena apenas no modo com que as classes
so chamadas.
Ao centro da interface encontra-se o Canvas3D e sua respectiva Viewport,
onde todo o contexto tridimensional se insere, desde a visualizao at a manipulao
e anlise dos processos.

5.3. Transformaes Fsicas Lineares

Considerando as Transformaes Fsicas Lineares, os resultados das


implementaes demonstraram-se visualmente e matematicamente satisfatrios, uma
vez que as operaes com matriz de transformao forneceram operaes exatas de
rotao, translao e escala utilizando-se os parmetros de entrada fornecidos pelo
usurio. Como resultados, so apresentadas as matrizes de transformao para uma
translao de duas unidades sobre o eixo x, uma rotao de 30 sobre y, uma escala de
duas unidades em todos os eixos, espelhamento sobre o eixo x e alongamento sobre o
eixo x, alm de seus respectivos resultados visuais, antes e depois das transformaes,
aplicados sobre uma amostra de solo agrcola, como ilustrado nas Figuras 52, 53,
54, 55 e 56.

1
0
[ x ' y ' z '1] = [ x y z 1]
0

0 0 0
1 0 0
0 1 0

2 2 1

43

Figura 52 Resultado da aplicao de translao como transformao fsica sob os parmetros: x=2,
y=0 e z=0.

148

0
0
0
1
0 sen30 sen30 0

x
'
y
'
z
'1
[
x
y
z
1]
[
]
0 sen30 cos 30 0

0
0
1
0

44

Figura 53 Resultado da aplicao de rotao como transformao fsica sob os parmetros: x=1, y=0,
z=0 e ngulo=30.

2
0
[ x ' y ' z '1] = [ x y z 1]
0

0 0 0
2 0 0
0 2 0

0 0 1

45

Figura 54 Resultado da aplicao de escala como resultado de transformao fsica sob os


parmetros: x=2, y=2 e z=2.

149

1 0 0
0 1 0
[ x ' y ' z '1] = [ x y z 1]
0 0 1

0 0 0

0
0
0

46

Figura 55 Resultado da aplicao de espelhamento como transformao fsica, atravs de operao de


escala, sob os parmetros: x=-1, y=1 e z=1.

2
0
[ x ' y ' z '1] = [ x y z 1]
0

0 0 0
1 0 0
0 1 0

0 0 1

47

Figura 56 Resultado da aplicao de alongamento como transformao linear atravs de operao de


escala, sob os parmetros: x=2, y=1 e z=1.

150

5.4. Transparncia

A respeito da classe Transparncia, a mesma retornou resultados visuais


satisfatrios, de forma que todos os vrtices, arestas e planos obtiveram seus nveis de
opacidade alterados em tempo de execuo, permitindo visualizar superfcies
interiores outrora oclusas por camadas mais externas. Uma aplicao de interesse
procura visualizar e identificar um canal poroso dentro da amostra, sem a retirada das
superfcies que os encobrem. As Figuras 57, 58 e 59 representam os resultados da
aplicao dos coeficientes de transparncia sobre uma imagem de amostra de adubo,
sob os parmetros 0,2, 0,5 e 0,9, nomeados Opaco, Suave, Translcido e
Transparente, onde os menores valores de parmetros representam os maiores nveis
de opacidade e os maiores valores de parmetros representam, respectivamente, maior
grau de transparncia. As Figuras 60, 61, 62, 63, 64 e 65 apresentam os resultados
para os mesmos coeficientes aplicados sobre duas imagens distintas de amostras de
argila.

Figura 57 Resultado da aplicao de Transparncia na amostra de adubo sob o coeficiente Suave


(0,2), produzindo alto grau de opacidade.

151

Figura 58 Resultado da aplicao de Transparncia na amostra de adubo sob o coeficiente


Translcido (0,5), produzindo efeito intermedirio de opacidade.

Figura 59 Resultado da aplicao de Transparncia na amostra de adubo sob o coeficiente


Transparente (0,9), produzindo efeito mnimo de opacidade.

152

Figura 60 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente Suave


(0,2), produzindo alto grau de opacidade.

Figura 61 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente


Translcido (0,5), produzindo efeito intermedirio de opacidade.

153

Figura 62 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente


Transparente (0,9), produzindo efeito mnimo de opacidade.

Figura 63 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente Suave


(0,2), produzindo alto grau de opacidade.

154

Figura 64 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente


Translcido (0,5), produzindo efeito intermedirio de opacidade.

Figura 65 Resultado da aplicao de Transparncia na amostra de argila sob o coeficiente


Transparente (0,9), produzindo efeito mnimo de opacidade.

155

5.5. Polgonos

A classe de controle de Polgonos, atravs da efetiva separao entre pontos,


arestas e planos, permitiu a visualizao individual de quaisquer partes das amostras
reconstrudas, especialmente os pontos interpolados pelo algoritmo de reconstruo,
especificamente pela tcnica de B-Splines, a qual constri novos pontos no modelo 3D medida que forem necessrios. Com a simples visualizao de planos, tais pontos
estimados no podem ser identificados, uma vez que se fundem s faces da geometria.
As Figuras 66, 67, 68, 69, 70 e 71 ilustram os resultados da aplicao da classe

Polgonos, mediante os coeficientes de Pontos (POLYGON_POINTS), Arestas


(POLYGON_LINES) e Faces (POLYGON_FACES), respectivamente, sobre duas
imagens distintas de amostras de cimento. As Figuras 72, 73 e 74 apresentam os
resultados da classe Polgonos sobre uma imagem de amostra de solo degradado sob
os mesmos coeficientes.

Figura 66 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
faces (coeficiente POLYGON_FACES).

156

Figura 67 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
arestas (coeficiente POLYGON_LINES).

Figura 68 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
nuvem de pontos (coeficiente POLYGON_POINTS).

157

Figura 69 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
faces (coeficiente POLYGON_FACES).

Figura 70 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
arestas (coeficiente POLYGON_LINES).

158

Figura 71 Resultado da aplicao da classe Polgonos sobre uma amostra de cimento sob exibio de
nuvem de pontos (coeficiente POLYGON_POINTS).

Figura 72 Resultado da aplicao da classe Polgonos sobre uma amostra de solo degradado sob
exibio de faces (coeficiente POLYGON_FACES).

159

Figura 73 Resultado da aplicao da classe Polgonos sobre uma amostra de solo degradado sob
exibio de arestas (coeficiente POLYGON_LINES).

Figura 74 Resultado da aplicao da classe Polgonos sobre uma amostra de solo degradado sob
exibio de nuvem de pontos (coeficiente POLYGON_POINTS).

160

5.6. Threshold

Utilizando-se dos parmetros de nveis de cinza superior e inferior,


escolhidos pelo usurio atravs dos campos presentes na interface principal, a classe
de visualizar uma amostra com diversos nveis de cinza em sua composio
cromtica, realizou a efetiva separao dos mesmos, permitindo a visualizao de
somente uma determinada regio de interesse ao usurio. Tal operao facilita a
localizao dos poros e anlise de estruturas interiores da imagem da amostra, uma
vez que possvel visualizar pontos, arestas e faces outrora oclusas pelas estruturas.
As Figuras 75, 76 e 77 ilustram os resultados da utilizao da classe Threshold sobre
uma imagem de amostra de areia, sob os limiares 200-255, 100-199, 10-99,
respectivamente. As Figuras 78, 79, 80, 81, 82 e 83 ilustram os resultados da
utilizao da mesma classe sobre duas imagens de amostras de solo degradado sob os
mesmos limiares para cada modelo tridimensional.

Figura 75 Resultado da aplicao do limiar de 200-255 da classe Threshold sobre a imagem


tomogrfica da amostra de areia.

161

Figura 76 Resultado da aplicao do limiar 100-199 da classe Threshold sobre a imagem tomogrfica
da amostra de areia.

Figura 77 Resultado da aplicao do limiar 10-99 da classe Threshold sobre a imagem tomogrfica da
amostra de areia.

162

Figura 78 Resultado da aplicao do limiar 200-255 da classe Threshold sobre a imagem tomogrfica
da amostra de solo degradado.

Figura 79 Resultado da aplicao do limiar 100-199 da classe Threshold sobre a imagem tomogrfica
da amostra de solo degradado.

163

Figura 80 Resultado da aplicao do limiar 10-99 da classe Threshold sobre a imagem tomogrfica da
amostra de solo degradado

Figura 81 Resultado da aplicao do limiar 200-255 da classe Threshold sobre a imagem tomogrfica
da amostra de cimento.

164

Figura 82 Resultado da aplicao do limiar 100-199 da classe Threshold sobre a imagem tomogrfica
da amostra de cimento.

Figura 83 Resultado da aplicao do limiar 10-99 da classe Threshold sobre a imagem tomogrfica da
amostra de cimento.

165

5.7. Extrao de Atributos

Atravs da classe Extrao de Atributos, caractersticas intrnsecas da cena e


de amostras agrcolas puderam ser obtidas, atravs de mouse ou da P5Glove, tendo
como origem dos dados as representaes tridimensionais, as quais esto presentes
apenas nas projees 1-D ou ento nas imagens 2-D, como o caso dos nveis de
cinza e coeficientes de atenuao linear.
Tais dados foram divididos em duas categorias: Relativos Cena e Relativos
aos dados Tomogrficos. Dentre os dados da cena sinttica, os dados obtidos foram:
as fronteiras, as quais representam os limites da geometria ou os limites da geometria
que a envolve; o grafo de cena, que representa a hierarquia dos nodos presentes na
rvore; a geometria atual no modelo e sua composio; a distncia de determinado
voxel em relao s coordenadas escolhidas na cena; o vrtice mais prximo ao ponto
escolhido na cena; as coordenadas tridimensionais de tais coordenadas; e a reta
normal na face mais prxima que envolve as coordenadas escolhidas.
Quanto aos dados tomogrficos, os dados obtidos foram; atributos de cor,
que representam as cores individuais de cada voxel, independente da intensidade de
iluminao; os coeficientes de material, que representam as cores que cada voxel
reflete ao se incidir determinada intensidade de luz; atributos de transparncia;
atributos de polgonos; a luminncia (tons de cinza), coeficiente do sistema HSL de
cores, o qual representa a intensidade de nveis de cinza encontrado no voxel
escolhido; a saturao e matiz, tambm do coeficiente HSL; e finalmente o coeficiente
de atenuao linear, calculado com base nos nveis de cinza.
Em teste realizado mediante escolha de um voxel arbitrrio, obteve-se dados
relativos cena e amostra tomogrfica:
As Figuras 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94 e 95 ilustram resultados do
processo de extrao de dados por escolha de voxels, utilizando-se do mouse ou da
luva de dados P5Glove.
Os resultados produzidos so exibidos em um local especfico na interface
principal do Ambiente de Realidade Virtual, denominado dados obtidos do modelo,
localizado no quadrante inferior direito da mesma, e foram ampliados para efeito de
observao.

166

(a)
javax.media.j3d.ColoringAttributes: Color=(0.03, 0.07, 0.04) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.4, 0.4, 0.4) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.71, 0.70, 0.65)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.3
Polygons (2-Fill/1-Wireframe/0-Points): 1
Gray Level: 156.82
Saturation: 22.86
Attenuation Coefficient: 0.6521
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.875 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 10.28
Closest Vertex: (0.92, -0.25, -10.24)
Point Coordinates: (0.75, -0.25, -10.26)
Point Normal: (1.0, 0.0, 0.0)

(b)

Figura 84 Resultado da obteno de dados da amostra de adubo: (a) Amostra (b) Dados obtidos

(a)
javax.media.j3d.ColoringAttributes: Color=(0.01, 0.02, 0.02) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.1, 0.1, 0.1) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.39, 0.10, 0.25)
SpecularColor=(0.2, 0.2, 0.2) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.3
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 89.0
Saturation: 12.52
Attenuation Coefficient: 0.12
Bounding box: Lower=-0.875 -1.0 -0.15 Upper=0.875 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 6.26
Closest Vertex: (0.6.1, 0.35, -6.36)
Point Coordinates: (0.48, 0.35, -6.48)
Point Normal: (1.0, 0.0, 0.0)

Figura 85 Resultado da obteno de dados da amostra de argila: (a) Amostra (b) Dados obtidos

(b)

167

(a)
javax.media.j3d.ColoringAttributes: Color=(0.16, 0.09, 0.18) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.2, 0.2, 0.2) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.16, 0.09, 0.18)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.5
Polygons (2-Fill/1-Wireframe/0-Points): 1
Gray Level: 59.45
Saturation: 8.03
Attenuation Coefficient: 0.96
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 8.15
Closest Vertex: (0.15, -0.12, -8.98)
Point Coordinates: (0.75, -0.52, -8.25)
Point Normal: (1.0, 0.0, 0.0)

(b)

Figura 86 Resultado da obteno de dados da amostra de areia: (a) Amostra (b) Dados obtidos

(a)
javax.media.j3d.ColoringAttributes: Color=(0.02, 0.07, 0.04) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.4, 0.4, 0.4) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.37, 0.71, 0.64)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.2
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 186.21
Saturation: 32.46
Attenuation Coefficient: 0.81
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.154
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 9.43
Closest Vertex: (-0.16, -0.94, -9.34)
Point Coordinates: (-0.23, -0.75, -9.13)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 87 Resultado da obteno de dados da amostra de argila: (a) Amostra (b) Dados obtidos.

168

(a)
javax.media.j3d.ColoringAttributes: Color=(0.02, 0.02, 0.03) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.2, 0.2, 0.2) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.71, 0.70, 0.65)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.7
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 75.96
Saturation: 9.186
Attenuation Coefficient: 0.52
Bounding box: Lower=-0.875 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 10.91
Closest Vertex: (0.13, 0.31, -10.98)
Point Coordinates: (0.13, 0.24, -10.18)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 88 Resultado da obteno de dados da amostra de cimento: (a) Amostra, (b) Dados obtidos

(a)
javax.media.j3d.ColoringAttributes: Color=(0.03, 0.03, 0.04) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.1, 0.1, 0.1) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.60, 0.50, 0.69)
SpecularColor=(0.1, 0.1, 0.1) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.4
Polygons (2-Fill/1-Wireframe/0-Points): 0
Gray Level: 195.50
Saturation: 31.76
Attenuation Coefficient: 0.73
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 6.36
Closest Vertex: (0.21, 0.32, -6.12)
Point Coordinates: (0.26, 0.24, -6.92)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 89 Resultado da obteno de dados da amostra de solo degradado: (a) Amostra, (b) Dados

169

(a)
javax.media.j3d.ColoringAttributes: Color=(0.03, 0.02, 0.02) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.1, 0.1, 0.1) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.02, 0.03, 0.05)
SpecularColor=(0.1, 0.1, 0.1) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.8
Polygons (2-Fill/1-Wireframe/0-Points): 0
Gray Level: 62.78
Saturation: 8.45
Attenuation Coefficient: 0.38
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 4.68
Closest Vertex: (0.16, -0.16, -4.94)
Point Coordinates: (0.24, -0.19, -4.28)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 90 Resultado da obteno de dados da amostra de solo degradado: (a) Amostra, (b) Dados

(a)
javax.media.j3d.ColoringAttributes: Color=(0.15, 0.17, 0.14) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.4, 0.4, 0.4) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.4, 0.4, 0.4)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.2
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 202.0
Saturation: 20.68
Attenuation Coefficient: 0.75
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 12.68
Closest Vertex: (0.05, 0.07, -12.68)
Point Coordinates: (0.09, 0.08, -12.94)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 91 Resultado da obteno de dados da amostra de cimento: (a) Amostra, (b) Dados obtidos.

170

(a)
javax.media.j3d.ColoringAttributes: Color=(0.09, 0.09, 0.09) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.3, 0.3, 0.3) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.3, 0.3, 0.3)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.3
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 124.97
Saturation: 6.15
Attenuation Coefficient: 0.41
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 3.68
Closest Vertex: (1.31, 0.31, -3.74)
Point Coordinates: (1.33, 0.20, -3.95)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 92 Resultado da obteno de dados da amostra de solo degradado: (a) Amostra, (b) Dados

(a)
javax.media.j3d.ColoringAttributes: Color=(0.18, 0.17, 0.14) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.4, 0.4, 0.4) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.4, 0.4, 0.4)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.1
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 198.00
Saturation: 20.92
Attenuation Coefficient: 0.58
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.875 1.0 0.1
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 3.67
Closest Vertex: (0.12, 0.36, -3.68)
Point Coordinates: (0.28, 0.39, -3.81)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 93 Resultado da obteno de dados da amostra de solo (a) Amostra, (b) Dados obtidos.

171

(a)
javax.media.j3d.ColoringAttributes: Color=(0.09, 0.94, 0.09) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.4, 0.4, 0.4) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.4, 0.4, 0.4)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.2
Polygons (2-Fill/1-Wireframe/0-Points): 2
Gray Level: 180.0
Saturation: 16.64
Attenuation Coefficient: 0.51
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 11.94
Closest Vertex: (0.15, 0.16, 11.63)
Point Coordinates: (0.12, 0.09, -11.98)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 94 Resultado da obteno de dados da amostra de solo degradado: (a) Amostra, (b) Dados

(a)
javax.media.j3d.ColoringAttributes: Color=(0.06, 0.06, 0.06) ShadeModel=SHADE_GOURAUD
javax.media.j3d.Material: AmbientColor=(0.1, 0.1, 0.1) EmissiveColor=(0.0, 0.0, 0.0) DiffuseColor=(0.1, 0.1, 0.1)
SpecularColor=(0.3, 0.3, 0.3) Shininess=128.0 LightingEnable=true ColorTarget=2
Transparency Level: 0.3
Polygons (2-Fill/1-Wireframe/0-Points): 1
Gray Level: 44.00
Saturation: 7.65
Attenuation Coefficient: 0.39
Bounding box: Lower=-0.87 -1.0 -0.15 Upper=0.87 1.0 0.15
BranchGraphs: 3
Geometry: javax.media.j3d.TriangleArray@4b0bbb
Distance: 13.63
Closest Vertex: (0.00, 0.00, -13.97)
Point Coordinates: (0.00, 0.00, -13.57)
Point Normal: (1.0, 0.0, 0.0)

(b)
Figura 95 Resultado da obteno de dados da amostra de vidro: (a) Amostra, (b) Dados obtidos.

172

5.8. Iluminao

Atravs do sistema de Iluminao, todas as luzes da cena atual podem ser


alteradas em tempo de execuo, traduzindo os campos de cada janela de parmetros,
em feedbacks visuais, dependendo da fonte de luz e da refletncia das superfcies dos
materiais iluminados, independente do tipo de polgonos renderizado. Dependendo do
tipo de iluminao adotado, parmetros so tambm adotados ou ignorados,
entretando, sempre preservando a cor, os limites e direo dos raios de luz. Desta
maneira, a fonte de luz inserida na cena e atinge as retas normais, iluminando as
entidades presentes na mesma. As Figuras 96, 97, 98 e 99 ilustram a utilizao da
iluminao Ambiente, Direcional, Pontual e Angular (Spot), respectivamente, bem
como seus conjuntos de parmetros, em funo da modalidade, sobre uma imagem de
uma amostra de solo degradado. As Figuras 100, 101, 102 e 103 ilustram a utilizao
das mesmas fontes sobre uma imagem de uma amostra de cimento. As Figuras 104,
105, 106 e 107 ilustram a utilizao da classe Iluminao, tambm das mesmas fontes
de iluminao, sobre uma imagem de uma amostra de solo degradado. As cores das
fontes de luz foram geradas randomicamente para efeito de observao.

Figura 96 Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de solo degradado
com os parmetros: Fronteiras = (10, 10, 10); Raio = 90.

173

Figura 97 Resultado da aplicao de fonte de luz Direcional sobre uma amostra de solo degradado
com os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo da luz = (0, 0, -44).

Figura 98 Resultado da aplicao de fonte de luz Pontual sobre uma amostra de solo degradado com
os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Posio = (10, 10, 0); Constante de atenuao = 1.

174

Figura 99 Resultado da aplicao de fonte de luz Angular sobre uma amostra de solo degradado com
os parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo = (-20, 0, 0); Concentrao = 4; Angulo de
espalhamento = 60; Posio = (20, 0, 0); Constante de atenuao = 1.

Figura 100 Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de cimento com os
parmetros: Fronteiras = (10 ,10 ,10); Raio = 90.

175

Figura 101 Resultado da aplicao de fonte de luz Direcional sobre uma amostra de cimento com os
parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo = (0, 0, -50).

Figura 102 Resultado da aplicao de fonte de luz Pontual sobre uma amostra de cimento com os
parmetros: Fronteiras = (10, 10, 10); Raio = 90; Posio = (0, -20, -5); Constante de atenuao = 1.

176

Figura 103 Resultado da aplicao de fonte de luz Angular sobre uma amostra de solo degradado
com os parmetros: Fronteiras =(10, 10, 10); Raio = 90; Direo = (0, -20, -10); Concentrao = 1;
ngulo de espalhamento = 45; Posio = (10, 20, -10); .

Figura 104 Resultado da aplicao de fonte de luz Ambiente sobre uma amostra de solo com os
parmetros: Fronteiras = (10, 10, 10); Raio = 90.

177

Figura 105 Resultado da aplicao de fonte de luz Direcional sobre uma amostra de solo com os
parmetros: Fronteiras = (10, 10, 10); Raio = 90; Direo = (0, 0, -10).

Figura 106 Resultado da aplicao de fonte de luz Pontual sobre uma amostra de solo com os
parmetros: Fronteiras = (10, 10, 10); Raio = 10; Posio = (10, 0, 0); Atenuao Linear = 1.

178

Figura 107 Resultado da aplicao de fonte de luz Angular sobre uma amostra de solo com os
parmetros: Fronteiras=(10,10,10); Raio=90; Direo=(-10,0,-10); Concentrao=1; ngulo de
espalhamento=90; Posio=(10, 0, 10); Atenuao constante=1.

5.9. Colorizao

A classe Colorizao possibilitou ampliar a interatividade do sistema, uma


vez que viabiliza ao usurio, a troca da aparncia das amostras tridimensionais em
tempo de execuo, atingindo feedbacks visuais. Provida pela interface principal do
Ambiente de Realidade Virtual, a paleta de cores permitem que sejam escolhidas as
cores desejadas e que sejam atribudas sob uma determinada regio escolhida da
amostra, onde a aparncia do voxel escolhido ento substituda pela nova cor
selecionada. As Figuras 108 e 109 ilustram resultados da colorizao de amostras
como um todo. A Figura 110 ilustra o resultado de um processo de troca de aparncia
com base em classes especficas de coeficientes de atenuao linear (em cm 1 ) de
imagens tridimensionais.

179

Figura 108- Resultado da aplicao da classe Colorizao sobre amostra de solo degradado sob os
coeficientes RGB = (147, 59, 41), aplicados em sua totalidade.

Figura 109 Resultados da aplicao da classe Colorizao sobre amostra de solo degradado sob os
coeficientes RGB = (92, 113, 59), aplicados em sua totalidade.

180

Figura 110 Resultado da aplicao da classe Colorizao sob os coeficientes RGB = (248, 6, 6), sobre
apenas uma determinada regio da amostra de solo degradado, definida por seus tons de cinza

5.10. Manipulao Convencional de Cena e Manipulao Convencional de


Modelo

A classe Manipulao Convencional de Cena, responsvel por realizar


translaes e rotaes da cena virtual e todo seu contexto mediante movimentao de
mouse e teclado, foi analisada, considerando a relao das entradas desejadas e as
sadas obtidas. Desta maneira, as cmeras da cena virtual foram deslocadas para
posies arbitrrias do Canvas3D utilizando dispositivos convencionais de entrada de
dados, provendo assim a possibilidade de navegao. Pode-se constatar que o usurio
pode explorar o ambiente virtual como se o mesmo estivesse presente no campo
sinttico, se aproximando e distanciando de determinada regio de interesse, porm,
de forma simulada, j que os movimentos do usurio se restringem ao apertar de
teclas.
De forma anloga, a Manipulao Convencional de Modelo proporcionou a
alterao das matrizes de transformao de forma interativa, ao contrrio da
solicitao de parmetros da classe de Transformaes Fsicas Lineares.

181

5.11. Manipulao No Convencional de Cena, Manipulao No Convencional


de Modelo, Quatrnios e Filtro

Em relao Manipulao No Convencional de Cena, os feedbacks


produzidos pela implementao da classe indicam o total controle da navegao do
usurio na cena, utilizando-se da luva P5Glove. Neste contexto, de acordo com o
posicionamento do dispositivo, o usurio pode navegar efetivamente pela cena, onde
os deslocamentos de sua mo so fielmente traduzidos em movimentos da cena,
deslocando as cmeras do ambiente em tempo real. De forma anloga, tais
movimentos tambm so traduzidos em deslocamentos das amostras tridimensionais.
Tais movimentos so iniciados a partir do fechar das mos, onde os sensores de dobra
dos dedos so ativados e a ao iniciada. A classe de Manipulao No Convencional

de Modelo simula a sustentao manual das amostras 3-D, bem como sua total
movimentao dentro da cena, tambm sob 6 graus de liberdade.
Atuando em paralelo, a classe Filtro tambm viabilizou a leitura armazenada
a cada movimento e os novos valores calculados para o posicionamento de cada LED.
Para cada novo posicionamento de cada um dos oito LEDs emissores de luz, o
algoritmo implementado tomou uma srie de amostras, calculou a varincia e adotou
para a luva o valor mais adequado, ou seja, aquele que apresentou menor distncia em
relao medida de varincia. Tal processo impediu a oscilao de leituras e garantiu
a cada LED um valor fixo, sustentando a cena e as amostras dentro do Canvas3D, j
que a movimentao dos mesmos est atrelada aos movimentos do dispositivo. A
Tabela 1 apresenta dados de leituras obtidas e novos valores atribudos a cada um dos
oito LEDs, justificando sua utilizao.
Amostras do LED1

Mdia

Varincia

Novo valor

5,77, 5,23, 5,55, 5,14, 5,41

5,42

0,0635

5,41

1,63, 1,78, 1,39, 1,45, 1,50

1,55

0,0244

1,50

2,11, 2,16, 2,18, 2,19, 2,17

2,162

0,0010

2,16

Amostras do LED2

Mdia

Varincia

Novo valor

3,33, 3,31, 3,47, 3,39, 3,40

3,38

0,0040

3,39

0,12, 0,28, 0,19, 0,20, 0,13

0,184

0,0041

0,19

2,31, 2,28, 2,34, 2,25, 2,33

2,302

0,0014

2,31

182

Amostras do LED3

Mdia

Varincia

Novo valor

6,44, 6,48, 6,52, 6,50, 6,46

6,48

0,001

6,48

0,34, 0,41, 0,38, 0,35, 0,47

0,39

0,0027

0,38

2,14, 2,21, 2,19, 2,16, 2,24

2,188

0,0016

2,19

Amostras do LED4

Mdia

Varincia

Novo valor

6,70, 6,66, 6,73, 6,77, 6,68

6,708

0,0019

6,70

0,53, 0,56, 0,61, 0,59, 0,62

0,582

0,0014

0,59

6,42, 6,39, 6,46, 6,49, 6,38

6,428

0,0022

6,42

Amostras do LED5

Mdia

Varincia

Novo valor

6,22, 6,20, 6,29, 6,26, 6,31

6,256

0,0021

6,26

0,10, 0,18, 0,11, 0,06, 0,05

0,1

0,0027

0,10

6,91, 6,96, 6,98, 6,93, 6,97

6,95

0,0009

6,96

Amostras do LED6

Mdia

Varincia

Novo valor

4,77, 4,23, 4,55, 4,14, 4,41

4,42

0,0635

4,41

2,63, 2,78, 2,39, 2,45, 2,50

2,55

0,0243

2,50

3,91, 3,96, 3,88, 3,99, 3,87

3,922

0,0027

3,91

Amostras do LED7

Mdia

Varincia

Novo valor

6,19, 6,23, 6,22, 6,14, 6,11

6,178

0,0027

6,19

0,63, 0,78, 0,39, 0,45, 0,50

0,55

0,0244

0,50

6,02, 6,06, 6,01, 6,03, 6,09

6,042

0,0011

6,03

Amostras do LED8

Mdia

Varincia

Novo valor

3,70, 3,66, 3,61, 3,69, 3,63

3,658

0,0015

3,66

0,13, 0,18, 0,12, 0,15, 0,10

0,136

0,0010

0,13

6,79, 6,71, 6,73, 6,77, 6,75

6,75

0,001

6,75

Tabela 1 Representao das amostras de valores lidos pelo dispositivo, mdia dos mesmos, varincia
e novos valores adotados para cada eixo de cada um dos oito LEDs da P5Glove.

A classe Quatrnios, quando avaliada apresentou com preciso a converso


do sistema de Euler para as coordenadas em quatrnios, uma vez que dadas as
coordenadas do eixo aleatrio a ser rotacionado e o ngulo desejado. O resultado da
aplicao do mtodo quat4f, de Transform3D , produziu mudanas de orientao
suavizadas, ao contrrio da primeira abordagem com eixos fixos, onde a ausncia de

183

eixos intermedirios e a limitao do numero de LEDs interferia no fluxo natural das


rotaes. A Tabela 2 e a Figura 111 apresentam o resultado de uma rotao de 180 ,
considerando a posio inicial da LED = (-1,0, 1,0, 0,0), sendo a origem dos eixos (0,
0, 0) e a posio inicial da amostra em um ponto especfico = (0, 0, 0). A Tabela 3 e a
Figura 112 apresentam os resultados de uma rotao de 180 sobre um eixo estimado,
sendo a posio inicial do LED = (1,0, 1,0, 0,0), partindo da origem dos eixos (0, 0, 0)
e posio da amostra em um ponto especfico = (0, 0, 0). A Tabela 4 e a Figura 113
apresentam os resultados de uma rotao de 180 sobre um eixo estimado, sendo a
posio inicial do LED = (0,0, 1,0, 0,0), partindo da origem dos eixos (0, 0, 0) e a
posio inicial da amostra em um ponto especfico = (0, 0, 0).
Posio Inicial (ponto da

Quatrnios

amostra)
(0,0, 0,0, 0,0)

Posio Final (ponto da


amostra)

vetor: (0,0, 0,0, 0,0), escalar:

(-0,7071, 0,7071, 0,0)

0,9238
(-0,7071, 0,7071, 0,0)

vetor: (-0,2705, 0,2705, 0,0),

(-0,9999, 0,9999, 0,0)

escalar: 0,9238
(-0,9999, 0,9999, 0,0)

vetor: (-0,3826, 0,3826, 0,0),

(-1,2928, 1,2928, 0,0)

escalar: 0,9238
(-1,2928, 1,2928, 0,0)

vetor: (-0,4947, 0,4947, 0,0),

(-1,6862, 1,6862, 0,0)

escalar: 0,9238

Tabela 2 - Resultado de uma rotao de 180, considerando a posio inicial da LED = (-1,0, 1,0, 0,0),
sendo a origem dos eixos (0, 0, 0) e a posio inicial da amostra em um ponto especfico = (0, 0, 0).

Figura 111 - Representao da rotao descrita em torno do eixo pontilhado definido pela coordenada
da LED = (-1.0, 1.0, 0.0) passando pela origem dos eixos

184

Posio Inicial (ponto da

Quatrnios

Posio Final (ponto da

(0,0, 0,0, 0,0)

vetor: (0,0, 0,0, 0,0), escalar:

(0,7071, 0,7071, 0,0)

(0,7071, 0,7071, 0,0)

vetor: (0,2705, 0,2705, 0,0),

(0,9999, 0,9999, 0,0)

vetor: (0,3826, 0,3826, 0,0),

(1,2928, 1,2928, 0,0)

vetor: (0,4947, 0,4947, 0,0),

amostra)

amostra)
0,9238
(0,9999, 0,9999, 0,0)

escalar: 0,9238
(1,2928, 1,2928, 0,0)

escalar: 0,9238
(1,6862, 1,6862, 0,0)

escalar: 0,9238

Tabela 3 - Resultado de uma rotao de 180, considerando a posio inicial da LED = (1,0, 1,0, 0,0),
sendo a origem dos eixos (0, 0, 0) e a posio inicial da amostra em um ponto especfico = (0, 0, 0).

Figura 112 -Representao da rotao descrita em torno do eixo pontilhado definido pela coordenada
da LED = (1.0, 1.0, 0.0) passando pela origem dos eixos

Posio Inicial (ponto da

Quatrnios

amostra)
(0,0, 0,0, 0,0)

Posio Final (ponto da


amostra)

vetor: (0,0, 0,0, 0,0),

(0,0, 0,7071, 0,0)

escalar: 0,9238
(0,0, 0,7071, 0,0)

vetor: (0,0, 0,2705, 0,0),

(0,0, 0,8535, 0,0)

escalar: 0,9238
(0,0, 0,8535, 0,0)

vetor: (0,0, 0,3266, 0,0),

(0,0, 0,9204, 0,0)

escalar: 0,9238
(0,0, 0,9204, 0,0)

vetor: (0,0, 0,3522, 0,0),

(0,0, 0,9552, 0,0)

escalar: 0,9238

Tabela 4 - Resultado de uma rotao de 180, considerando a posio inicial da LED = (0,0, 1,0, 0,0),
sendo a origem dos eixos (0, 0, 0) e a posio inicial da amostra em um ponto especfico = (0, 0, 0).

185

Figura 113 - Representao da rotao descrita em torno do eixo pontilhado definido pela coordenada
da LED = (0.0, 1.0, 0.0) passando pela origem dos eixos

5.12. Visualizao

Considerando a classe de Visualizao, a mesma foi testada e avaliada ao


que diz respeito imerso do usurio via ambiente virtual nas imagens das amostras
sob anlise.
Atravs dos Anaglifos, usurios podem obter o efeito semi-imersivo
utilizando apenas um culos de lentes vermelha e azul, configurando-se como uma
alternativa de baixo custo. Utilizando-se dos principios de estereoscopia, tais lentes
filtram as respectivas vises do olho esquerdo e direito, fazendo com que cada olho
veja somente uma imagem. Obtidas as duas perspectivas, o crebro humano as fundir
em apenas uma e gera uma imagem acinzentada com efeito de profundidade, como se
a amostra estivesse saltando da tela, caracterizando uma paralaxe positiva, onde a
imagem se forma na frente do display. A Figura 114 ilustra o resultado obtido com
uma imagem tomogrfica de uma amostra de adubo, sob visualizao com anaglifo.
Por meio da opo de Visualizao por Realidade Aumentada, a amostra
tridimensional reconstruda pde ser trazida ao ambiente real mantendo todas suas
caractersticas originais, tais como forma, fronteiras, tamanho e atributos de aparncia
e material. Uma vez posicionado o marcador, de forma que possa ser totalmente
rastreado pela Webcam, o modelo 3-D pde tambm ser transladado e rotacionado,
obedecendo o alcance e foco do dispositivo, configurando-se como alternativa vivel

186

de visualizao. A Figura 115 apresenta o resultado da aplicao da Visualizao por


Realidade Aumentada sobre uma amostra de vidro.

Figura 114 Visualizao por Anaglifo de uma imagem de amostra de adubo, onde a imagem final
composta pelas vises do olho esquerdo (vermelho) e olho direito (azul), as quais produzem o efeito
imersivo ao serem visualizadas por lentes vermelha e azul.

Figura 115 Resultado da aplicao de Realidade Aumentada da classe Visualizao sobre uma
imagem tomogrfica de amostra de vidro, onde a mesma inserida no ambiente real atravs da
identificao dos marcadores.

187

Tambm, atravs da classe de Visualizao, as amostras tridimensionais


puderam ser examinadas pelo Head Mounted Display de forma realmente imersiva.
Inicialmente,

Canvas3D,

responsvel

pela

renderizao

das

imagens

tridimensionais, foi maximizado de forma a omitir no dispositivo as partes


correspondentes da interface principal, a fim de focar apenas a regio onde a amostra
exibida. Desta maneira, cada display do HMD forma uma imagem, as quais so
fundidas pelo crebro de forma anloga ao Anaglifo, tambm obedecendo s leis da
estereoscopia. Como resultado, de forma mais satisfatria que o efeito produzido pelo
Anaglifo, a imagem final se apresenta consideravelmente maior e com paralaxe mais
significativa, ou seja, com maior efeito de profundidade. A Figura 116 apresenta uma
simulao do efeito provocado pela utilizao do HMD sobre uma amostra de areia,
onde as vises dos olhos esquerdo e direito so renderizadas de forma independentes
e fundidas pelo crebro em apenas uma com tamanho e profundidade aumentados.

Figura 116 Simulao do efeito provocado pelo uso do HMD para a visualizao de amostras
tridimensionais.

188

5.13. Estudo de Caso

Para justificar a implementao do sistema de visualizao e anlise de


amostrais agrcolas tridimensionais da cincia de solos, o presente estudo abriga o
estudo de casos em simulao da formao dos caminhos preferncias de fluxo de
gua e solutos (Fingering) (Crestana e Posadas, 1998), e a aferio da porcentagem de
volume de vazios das amostras tridimensionais, descritos em detalhes nesta seo.
Em Cincia de Solos, os poros (ou volume de vazios) configuram-se como os
espaos vazios localizados no interior de uma determinada amostra agrcola, onde
gua, solutos e outros fluidos possam transpassar-la, no caso de poros conexos, ou
simplesmente se acumularem em pequenas cavidades. Tais poros podem ser maiores
ou menores, o que torna a amostra mais ou menos densa, o que influi diretamente na
permeabilidade da mesma. Tambm podem estar preenchidos com gua, ar ou ambos,
forma mais encontrada na natureza (Crestana e Posadas, 1998). A porosidade do solo
(n) expressa em percentagem e definida como o volume de poros dividido pelo
volume total de uma amostra de solo:

n=

Vp
100
Vt

(5.1)

onde Vp o volume de poros e Vt o volume total da amostra.


Na existncia de poros conexos, formam-se os chamados caminhos
preferenciais, ou seja, trajetos comuns e constantes a grande parte do fluxo de fluidos
que atinge a amostra agrcola, formando estruturas identificveis e estabelecidas,
cujos formatos assemelham-se a dedos, origem do termo fingering. Para a simulao
de tais eventos caractersticos da Cincia de Solos, foram utilizados partes de
processos j implementados sobre o sistema de visualizao e anlise de amostras
tridimensionais.
Conforme descrito nas classes Manipulao Convencional de Cena e

Manipulao No Convencional de Cena, medida que as cmeras so deslocadas


com os processos de navegao, ativados por interao de teclado ou da luva de dados

P5Glove, os caminhos percorridos podem ser demarcados, deixando registrado o


trajeto, sob forma visual e matemtica.

189

A cada movimento de dispositivo identificado, tem-se uma nova posio da


cmera sob coordenadas cartesianas (x, y, z). Tais posies so nicas e ocupadas
somente uma por vez. Desta maneira, ativado o processo de demarcao, a partir de
qualquer ponto, pode-se simular o caminho percorrido por um determinado fluxo de
fluidos ao atingir uma amostra agrcola. Ao realizar um determinado movimento, o
ponto atual ocupado pela cmera recebe um Shape3D sob a forma de uma esfera azul,
a qual simula a presena de uma gota de fluido ocupando a posio outrora ocupada
pela cmera, deixando um rastro azulado por onde a cmera passou.
De forma anloga simples manipulao de cena, tal demarcao obedece s
leis impostas pelas classes Coliso Convencional e Coliso No Convencional, ou
seja, o caminho percorrido impedido de transpassar as faces no porosas da amostra
agrcola, obrigando o fluxo de fluidos a passar por dentre os poros conexos, os
caminhos preferenciais. O processo pode ser repetido inmeras vezes, simulando a
entrada de diversos fluxos de fluidos, de forma semelhante s situaes reais.
A partir do clculo de fronteiras, onde os limites da amostra tridimensional so
identificados no espao, como na classe Extrao de Atributos, atravs do uso de

getBounds sobre instncias Shape3D, aliado a um algoritmo de deteco de bordas


tridimensionais chamado de Polytope, presente no pacote Bounds da API Java3D. Tal
algoritmo encarrega-se de traar inmeros planos ao redor das superfcies da amostra,
percorrendo toda sua extenso a fim de delimitar com exatido suas fronteiras,
permitindo que as partes no porosas da amostra, inclusive as internas, possam ser
identificadas, permitindo a aferio de seu volume em cm.
Identificada a parte no porosa, as pores restantes, os vazios da amostra, as
quais apresentam cor e material zero devido ausncia de atenuao de ftons, e que
obedeam os limites impostos pela parte no porosa, so ento preenchidas com uma
geometria amarela semi-transparente, visando um maior destaque junto amostra. Tal
geometria representa o total de poros, parte que se deseja calcular o volume em cm.
Com tais dados disponveis, possvel calcular o volume total da amostra
(soma das partes no porosas com seu complemento) em cm. Desta maneira, a partir
do volume total e do volume individual da parte no porosa, possvel calcular de
forma precisa o volume representado pelos vazios da amostra tridimensional. As
Figuras 117 e 118 ilustram os resultados do estudo de caso em duas imagens de solo
degradado onde ambas apresentam: (a) demarcao visual dos caminhos preferenciais

190

e (b) representao cartesiana dos caminhos preferncias do fluxo de gua e solutos, e


a aferio da porosidade das amostras agrcolas por fronteiras.

(a)

191

Volume total:
22,57 cm
Volume de Poros:
9,67 cm
Volume da Amostra:
12,90 cm
Porcentagem de Poros:
42,84 %
Porcentagem de
Amostra:
57,16 %
Caminho 1:
Down
(0,0, 0,91, 3,8)
Right
(0,09, 0,91, 3,8)
Down
(0,09, 0,82, 3,8)
Right
(0,18, 0,82, 3,8)
Left
(0,09, 0,82, 3,8)
Forward
(0,09, 0,82, 3,71)
Forward
(0,09, 0,82, 3,62)
Forward
(0,09, 0,82, 3,53)
Down
(0,09, 0,73, 3,53)
Forward
(0,09, 0,73, 3,44)
Forward
(0,09, 0,73, 3,35)
Forward
(0,09, 0,73, 3,26)
Forward
(0,09, 0,73, 3,17)
Forward
(0,09, 0,73, 3,08)
Forward
(0,09, 0,73, 2,99)
Forward
(0,09, 0,73, 2,90)
Down
(0,09, 0,64, 2,90)
Forward
(0,09, 0,64, 2,81)
Forward
(0,09, 0,64, 2,72)
Forward
(0,09, 0,64, 2,63)

Forward
(0,09, 0,64, 2,54)
Forward
(0,09, 0,64, 2,45)
Forward
(0,09, 0,64, 2,36)
Down
(0,09, 0,55, 2,36)
Forward
(0,09, 0,55, 2,27)
Forward
(0,09, 0,55, 2,18)
Forward
(0,09, 0,55, 2,09)
Forward
(0,09, 0,55, 2,00)
Forward
(0,09, 0,55, 1,91)
Forward
(0,09, 0,55, 1,82)
Down
(0,09, 0,46, 1,82)
Forward
(0,09, 0,46, 1,73)
Caminho 2:
Down
(0,0, 0,91, 3,8)
Down
(0,0, 0,82, 3,8)
Down
(0,0, 0,73, 3,8)
Down
(0,0, 0,64, 3,8)
Down
(0,0, 0,55, 3,8)
Down
(0,0, 0,46, 3,8)
Left
(-0,09, 0,46, 3,8)
Forward
(-0,09, 0,46, 3,71)
Forward
(-0,09, 0,46, 3,62)
Forward
(-0,09, 0,46, 3,53)
Forward
(-0,09, 0,46, 3,44)
Forward
(-0,09, 0,46, 3,35)
Forward
(-0,09, 0,46, 3,26)
Right
(0,0, 0,46, 3,26)

Forward
(0,0, 0,46, 3,17)
Forward
(0,0, 0,46, 3,08)
Forward
(0,0, 0,46, 2,99)
Forward
(0,0, 0,46, 2,90)
Forward
(0,0, 0,46, 2,81)
Forward
(0,0, 0,46, 2,72)
UP
(0,0, 0,55, 2,72)
Down
(0,0, 0,46, 2,72)
Forward
(0,0, 0,46, 2,63)
Forward
(0,0, 0,46, 2,54)
Forward
(0,0, 0,46, 2,45)
UP
(0,0, 0,55, 2,45)
Forward
(0,0, 0,55, 2,36)
Forward
(0,0, 0,55, 2,27)
Forward
(0,0, 0,55, 2,18)
Forward
(0,0, 0,55, 2,09)
Forward
(0,0, 0,55, 2,00)
Forward
(0,0, 0,55, 1,91)
Right
(0,09, 0,55, 1,91)
Forward
(0,09, 0,55, 1,82)
Forward
(0,09, 0,55, 1,73)
Forward
(0,09, 0,55, 1,64)
Caminho 3:
Down
(0,0, 0,91, 3,8)
Down
(0,0, 0,82, 3,8)
Down
(0,0, 0,73, 3,8)
Right
(0,09, 0,73, 3,8)

Down
(0,09, 0,64, 3,8)
Down
(0,09, 0,55, 3,8)
Down
(0,09, 0,46, 3,8)
Forward
(0,09, 0,46, 3,71)
Forward
(0,09, 0,46, 3,62)
Forward
(0,09, 0,46, 3,53)
Forward
(0,09, 0,46, 3,44)
Forward
(0,09, 0,46, 3,35)
Forward
(0,09, 0,46, 3,26)
Forward
(0,09, 0,46, 3,17)
UP
(0,09, 0,55, 3,17)
Forward
(0,09, 0,55, 3,08)
Forward
(0,09, 0,50, 2,90)
Forward
(0,09, 0,55, 2,90)
Forward
(0,09, 0,55, 2,81)
Forward
(0,09, 0,55, 2,72)
Forward
(0,09, 0,55, 2,63)
Forward
(0,09, 0,55, 2,54)
Left
(0,0, 0,55, 2,54)
Forward
(0,0, 0,55, 2,45)
Forward
(0,0, 0,55, 2,36)
Forward
(0,0, 0,55, 2,27)
Forward
(0,0, 0,55, 2,18)
Forward
(0,0, 0,55, 2,09)
Forward
(0,0, 0,55, 2,00)
Forward
(0,0, 0,55, 1,91)
UP
(0,0, 0,64, 1,91)

(b)
Figura 117 Resultado do estudo de caso em uma imagem de solo degradado em: (a) demarcao
visual, sob diversas orientaes e translaes, dos caminhos preferenciais, onde a amostra encontra-se
em tons de cinza, os vazios ou poros encontram-se em amarelo e o fluxo de gua em azul, demarcando
os caminhos percorridos e (b) representao cartesiana dos caminhos preferncias do fluxo de gua e
solutos, e a aferio da porosidade das amostras agrcolas por fronteiras.

192

(a)

193

Volume total:
10,13 cm
Volume de Poros:
1,80 cm
Volume da Amostra:
8,32 cm
Porcentagem de Poros:
17,80 %
Porcentagem de
Amostra:
82,19 %
Caminho 1:
Down
(0,0, 0,91, 3,8)
Down
(0,0, 0,82, 3,8)
Down
(0,0, 0,73, 3,8)
Down
(0,0, 0,64, 3,8)
Down
(0,0, 0,55, 3,8)
Forward
(0,0, 0,55, 3,71)
Forward
(0,0, 0,55, 3,62)
Forward
(0,0, 0,55, 3,53)
Forward
(0,0, 0,55, 3,44)
Forward
(0,0, 0,55, 3,35)
Forward
(0,0, 0,55, 3,26)
Forward
(0,0, 0,55, 3,17)
Forward
(0,0, 0,55, 3,08)
Down
(0,0, 0,46, 3,08)
Forward
(0,0, 0,46, 2,99)
Forward
(0,0, 0,46, 2,90)
Forward
(0,0, 0,46, 2,81)
Forward
(0,0, 0,46, 2,72)
Forward
(0,0, 0,46, 2,63)
Forward
(0,0, 0,46, 2,54)
Forward
(0,0, 0,46, 2,45)
Right
(0,09, 0,46, 2,45)
Left
(0,0, 0,46, 2,45)
Forward
(0,0, 0,46, 2,36)
Forward
(0,0, 0,46, 2,27)
Forward

(0,0, 0,46, 2,18)


Forward
(0,0, 0,46, 2,09)
Forward
(0,0, 0,46, 2,00)
Forward
(0,0, 0,46, 1,91)
Forward
(0,0, 0,46, 1,82)
Forward
(0,0, 0,46, 1,73)
Right
(0,09, 0,46, 1,73)
Left
(0,0, 0,46, 1,73)
Down
(0,0, 0,37, 1,73)
Right
(0,09, 0,37, 1,73)
Left
(0,0, 0,37, 1,73)
UP
(0,0, 0,46, 1,73)
Forward
(0,0, 0,46, 1,64)
Caminho 2:
Left
(-0,09, 1,0, 3,8)
Down
(-0,09, 0,91, 3,8)
Down
(-0,09, 0,82, 3,8)
Left
(-0,18, 0,82, 3,8)
Right
(-0,09, 0,82, 3,8)
Right
(0,0, 0,82, 3,8)
Forward
(0,0, 0,82, 3,71)
Forward
(0,0, 0,82, 3,62)
Forward
(0,0, 0,82, 3,53)
Forward
(0,0, 0,82, 3,44)
Forward
(0,0, 0,82, 3,35)
Forward
(0,0, 0,82, 3,26)
Down
(0,0, 0,73, 3,26)
Forward
(0,0, 0,73, 3,17)
Forward
(0,0, 0,73, 3,08)
Forward
(0,0, 0,73, 2,99)
Forward
(0,0, 0,73, 2,90)
Forward
(0,0, 0,73, 2,81)
Forward
(0,0, 0,73, 2,72)

Down
(0,0, 0,64, 2,72)
Forward
(0,0, 0,64, 2,63)
Forward
(0,0, 0,64, 2,54)
Forward
(0,0, 0,64, 2,45)
Forward
(0,0, 0,64, 2,36)
Forward
(0,0, 0,64, 2,27)
Forward
(0,0, 0,64, 2,18)
Forward
(0,0, 0,64, 2,09)
Right
(0,09, 0,64, 2,09)
Left
(0,0, 0,64, 2,09)
UP
(0,0, 0,73, 2,09)
Forward
(0,0, 0,73, 2,00)
Forward
(0,0, 0,73, 1,91)
Forward
(0,0, 0,73, 1,82)
Forward
(0,0, 0,73, 1,73)
Forward
(0,0, 0,73, 1,64)
Forward
(0,0, 0,73, 1,55)
Forward
(0,0, 0,73, 1,46)
Down
(0,0, 0,64, 1,46)
Right
(0,09, 0,64, 1,46)
Left
(0,0, 0,64, 1,46)
UP
(0,0, 0,73, 1,46)
Forward
(0,0, 0,73, 1,37)
Down
(0,0, 0,91, 3,8)
Down
(0,0, 0,82, 3,8)
Down
(0,0, 0,73, 3,8)
Left
(-0,09, 0,73, 3,8)
Left
(-0,18, 0,73, 3,8)
Caminho 3:
Down
(0,0, 0,91, 3,8)
Down
(0,0, 0,82, 3,8)
Down
(0,0, 0,73, 3,8)

Down
(0,0, 0,64, 3,8)
Left
(-0,09, 0,64, 3,8)
Left
(-0,18, 0,64, 3,8)
Down
(-0,18, 0,55, 3,8)
Right
(-0,09, 0,55, 3,8)
Forward
(-0,09, 0,55, 3,71)
Forward
(-0,09, 0,55, 3,62)
Forward
(-0,09, 0,55, 3,53)
Forward
(-0,09, 0,55, 3,44)
Forward
(-0,09, 0,55, 3,35)
Forward
(-0,09, 0,55, 3,26)
Forward
(-0,09, 0,55, 3,17)
Forward
(-0,09, 0,55, 3,08)
Forward
(-0,09, 0,55, 2,99)
Down
(-0,09, 0,46, 2,99)
Forward
(-0,09, 0,46, 2,90)
Forward
(-0,09, 0,46, 2,81)
Forward
(-0,09, 0,46, 2,72)
Forward
(-0,09, 0,46, 2,63)
Forward
(-0,09, 0,46, 2,54)
Left
(-0,18, 0,46, 2,54)
Forward
(-0,18, 0,46, 2,45)
Forward
(-0,18, 0,46, 2,36)
Forward
(-0,18, 0,46, 2,27)
Forward
(-0,18, 0,46, 2,18)
Forward
(-0,18, 0,46, 2,09)
Forward
(-0,18, 0,46, 2,00)
Forward
(-0,18, 0,46, 1,91)
Forward
(-0,18, 0,46, 1,82)
Forward
(-0,18, 0,46, 1,73)
Forward
(-0,18, 0,46, 1,64)

(b)
Figura 118 Resultado do estudo de caso em uma imagem de solo degradado em: (a) demarcao
visual, sob diversas orientaes e translaes, dos caminhos preferenciais, onde a amostra encontra-se
em tons de cinza, os vazios ou poros encontram-se em amarelo e o fluxo de gua em azul, demarcando
os caminhos percorridos e (b) representao cartesiana dos caminhos preferncias do fluxo de gua e
solutos, e a aferio da porosidade das amostras agrcolas por fronteiras.

194

Aps todo o processo de simulao da formao dos caminhos preferenciais de


gua e solutos por dentre as regies porosas das imagens das amostras
tridimensionais, os dados das coordenadas cartesianas de cada medida puderam ser
armazenados e recuperados utilizando-se de escrita e leitura de um arquivo texto, cujo
contedo reproduz exatamente os dados descritos nas Figuras 117 (b) e 118 (b). Uma
vez com estes dados novamente disponveis, foi possvel renderizar apenas os trajetos
percorridos, formando um mapa tridimensional dos caminhos preferncias. A Figura
119 ilustra tais caminhos sob diversas orientaes e translaes.

Figura 119 Representao visual dos mapas de caminhos preferenciais do fluxo de gua e solutos,
aps a recuperao dos dados armazenados no arquivo, mediante prvio estudo de caso.

195

5.14. Validao do Ambiente

Como validao, um grupo de usurio foi organizado para executar uma rotina
de treinamento e execuo de tarefas especficas para que todos os recursos
disponveis fossem compreendidos e utilizados. Assim, os usurios foram convidados
a responderem um questionrio para avaliar a qualidade do ambiente de Realidade
Virtual, o qual se encontra no Anexo I.
Dentre o grupo de usurios que participaram da avaliao do ambiente,
encontraram-se engenheiros, cientisdas da computao, agrnomos, bilogos e
usurios no familiarizados com ambientes cientficos computacionais.
Os temas abordados no questionrio incluram: Interface, composta pelas
janelas, botes e acessos aos recursos; Customizao de amostra, que compreende as
tcnicas computacionais grficas para editar os modelos; Customizao do ambiente,
o qual tratou da edio da cena virtual; Obteno de dados, que representa a aferio e
exibio de dados da amostra; Deteco de coliso, que tratou das tcnicas de
bloqueio de movimentos ao se encontrar obstculos; Imerso, ligada transposio do
usurio a outra realidade e Interao, que avaliou o processo de reposta do sistema s
aes dos usurios.
Os resultados mdios obtidos, em escala crescente de 1 a 6, foram:
1 Quanto interface: 6
2 Quanto customizao de amostra: 6
3 Quanto customizao do ambiente: 6
4 Quanto obteno de dados: 6
5 Quanto deteco de coliso: 5
6 Quanto imerso: 5
7 Quanto interao: 6
No Captulo VI so apresentadas as concluses e sugestes para trabalhos
futuros.

196

Captulo VI
Concluses

O presente trabalho apresentou a preparao, desenvolvimento e validao de


um sistema de Realidade Virtual (RV) dedicado inspeo de amostras tomogrficas
de solos agrcolas, utilizando dados de imagens importadas e reconstrudas em 3-D.
Atravs de uma interface com o usurio, tais imagens foram ento submetidas a
processos de manipulao e visualizao tridimensional, onde, por intermdio de
recursos computacionais grficos, o sistema buscou somar imerso e interao do
usurio com as amostras. Tais recursos envolveram controle de renderizao,
iluminao, colorizao, extrao de atributos e transformaes fsicas, alm da
integrao de dispositivos no convencionais de entrada e sada de dados, tais como
um Head-Mounted-Display (vdeo-capacete) e uma luva digital.
Assim, considerando a fase de reconstruo de imagens tomogrficas,
verificou-se uma reduo no nvel de rudo das imagens atravs da filtragem com a
transformada

Wavelet

Doubechies

bidimensional,

somadas

filtragens

unidimensionais com janelas de Hamming. Tal fase permitiu que a qualidade do


produto da reconstruo bidimensional fosse melhorada, fornecendo cortes mais
fidedignos aos modelos reais ensaiados.

197

A classe de importao (Loader) apresentou os resultados esperados,


considerando a complexidade computacional envolvida pela fuso de duas tecnologias
diferentes, uma vez que os algoritmos originais de reconstruo produziam apenas
modelos Visualization Toolkit. A partir do uso da classe desenvolvida, todos os
recursos presentes em tal arquivo puderam ser acessados pelo ambiente programado
em Java3D, tais como geometria, aparncia e material, tornando simples a integrao
das amostras reconstrudas com os recursos do Ambiente de Realidade Virtual.
Adicinalmente, todas as caractersticas originais das amostras ensaiadas
puderam ser preservadas ao se realizar tal converso, permitindo que caratersticas
inerentes a uma imagem tomogrfica sejam mantidas, tais como a escala de cores e
opacidade. Com tais valores mantidos, novas medidas puderam ser obtidas
diretamente no ambiente tridimensional programado em Java3D, dentre elas os
coeficientes de atenuao linear e as medidas de porosidade, alm de tornar o
processo mais realista.
A respeito do desenvolvimento do Ambiente de Realidade Virtual e as demais
ferramentas grficas de visualizao tais como os controles de Polgonos,

Transparncia, Colorizao, Extrao de Atributos e Iluminao, as mesmas


apresentaram feedbacks visuais adequados, essenciais para prover uma melhor
qualidade das imagens e contribuir para processos de anlise. Por meio de tais classes,
os modelos tridimensionais e a cena virtual puderam ter seu contexto customizado,
adequando os mesmos s necessidades do utilizador no que diz respeito medidas
estruturais e melhor visualizao da amostra envolvida no processo.
Paralelamente, a implementao de Transformaes, Manipulaes, Coliso e

Visualizao, por dispositivos convencionais e no convencionais de RV, possibilitou


alcanar a interao, imerso e envolvimento do usurio com a cena e com as
amostras tridimensionais. Atravs de tais classes, os usurios puderam atender s
amostras e cena virtual, observando aos efeitos reativos em tempo real, provocando
os sentidos do utilizador.
Comprovou-se tambm a ocorrncia de Gimbal Lock e da falha de
interpolao ao se tentar comutar rotaes em eixos de Euler, bem como a eficincia
da soluo proposta atravs da implementao do sistema de parametrizao por
quatrnios, para movimentos de rotao interpolados. Desta maneira, a adoo de
eixos intermedirios para executar rotaes no presente trabalho, mapeadas de

198

movimentos de luvas de dados, sobre modelos tridimensionais, surgiu como


alternativa vivel para sistemas de Realidade Virtual interativos, considerando que
qualquer orientao pde ser alcanada e qualquer caminho para as mesmas pode ser
adotado, tornando irrestrita a movimentao de luvas de dados e a experincia mais
realista. Ao mesmo tempo, a classe Filtro forneceu toda a estabilidade necessria para
os movimentos de manipulao e navegao descritos anteriormente. Assim, a
limitao de hardware ao interpretar as leituras do dispositivo, pde ser devidamente
controlada, impedindo que posies e orientaes errneas fossem computadas e
posteriormente utilizadas em clculo de novas matrizes, acarretando em movimentos
aleatrios.
Os resultados obtidos na etapa de validao demonstraram a efetiva qualidade
da anlise de imagens da cincia do solo em ambiente de realidade virtual,
considerando que os usurios foram intrudos para a utilizao do sistema e
convidados a responderem um questionrio de acordo com suas respectivas
impresses. Nenhum dos usurios teve qualquer contato com a ferramenta antes dos
testes aplicados.
O estudo de caso demonstrou a aplicabilidade do mtodo em processos de
visualizao e anlise de amostras de solos agrcolas, considerando os avanos e
facilidades ao realizar inspees no invasivas, uma vez que o Ambiente de Realidade

Virtual possibilitou mensurar o volume de vazios das amostras (poros) e simular o


trajeto do fluxo de gua e solutos para a formao dos caminhos preferenciais
(fingering).Desta maneira, tal resultado amplia a viabilidade do uso de Realidade
Virtual na rea de cincia de solos.
Assim, o ambiente de anlise proporcionou o conhecimento do grau de
eficincia e aplicabilidade das diversas ferramentas computacionais grficas inseridas
no sistema, como tambm dos dispositivos convencionais e no convencionais para a
investigao das amostras tridimensionais.
Como trabalhos futuros sugere-se o aperfeioamento do ambiente de
visualizao e anlise de imagens tomogrficas da cincia do solo atravs de tcnicas
da Fsica Computacional, da Realidade Virtual (RV) e da Computao Grfica (CG).
Para tanto, pretende-se utilizar dispositivos no convencionais de entrada e sada de
dados, processados sob arquiteturas GPU paralelas. (Unidade de Processamento
Grfico). Desta maneira, modelos tridimensionais reconstrudos podero ser

199

importados a um ambiente de RV e tratados mediante diversos processos de CG,


implementados em arquitetura concorrente e dedicada, onde o ambiente permitir o
compartilhamento de texturas atravs de uma abstrao de memria compartilhada
distribuda, permitindo assim que atributos fsicos sejam extrados e analisados em
tempo real, em um ambiente de alto desempenho grfico, somados aos processos
interativos de RV.

200

Referncias Bibliogrficas

Arajo, R.B. Especificao e Anlise de um Sistema Distribudo de Realidade


Virtual. Tese de Doutorado, EPUSP, 1996.
Azuma, R., Bishop, G. Improving Static and Dynamic Registration in a SeeThrough HMD. Proceedings of SIGGRAPH, Annual Conference Series, pp. 197-204,
1994.
Bazan, O. Usinagem de Prteses para Cranioplastia a partir de Imagens
Tomogrficas. Dissetao de Mestrado. Universidade Federal do Paran - UFPR.
Curitiba, 2004.
Begault, D. R. 3-D Sound for virtual reality and multimedia, Academic Press,
Cambridge, MA, 1994.
Benes, J.A; Bueno, R.P. Ambiente Virtual para Planejamento de Hepatectomia.
Trabalho de concluso de curso. Pontifcia Universidade Catlica do Rio Grande do
Sul PUC-RS. Porto Alegre, 2003.
Bolt, R.A. Put-that-there: Voice and Gesture at the graphics interface. 7th
International Conference on Computer Graphics and Interactive Techniques, pp. 262270, Washington, 1980.
Botega, L.C., Nunes, F.L.S., Implementao de estereoscopia de baixo custo para
aplicaes de Realidade Virtual para treinamento medico. Anais do XVIII
Simpsio Brasileiro de Computao Grfica e Processamento de Imagens
SIBGRAPI. Natal, 2005.
Botega, L.C.; Cruvinel, P. E. Three-Dimensional Soil Physics Image Analysis Based
on a Virtual Reality Environment. IX Symposium on Virtual and Augmented
Reality, Petrpolis, 2007.

201

Brito, J.L.N.S. e Coelho, L.C.T. The E-Foto Project: An Educational Digital


Photogrammetric Workstation. In: ISPRS Commission VI Mid Term Symposium on
New approaches for Education and Communication, So Jos dos Campos, 2002
Brooks, R. A ; Di Chro, G., Principles of computer assisted tomography (CAT) in
radiographic and radioisotopic imaging, Physics in Medicine an Biology, v. 21 n.5,
1976, p. 689-732.
Bueno, J.M. Reconstruo e Visualizao Tridimensional de Imagens
Tomogrficas Baseada no uso da Transformada Rpida de Fourier. Dissertao
de Mestrado. (Orientadora Profa Dra. Agma Traina, Co-Orientador Prof. Dr. Paulo E.
Cruvinel) Reality Annual International Symposium (VRAIS93), Seattle, Washington,
18-22 September, pp. 41-46, 1993.
Burdea, G., Coiffet, P. Virtual Reality Technology. John Wiley & Sons, 1994.
Buxton, W. e Fitzmaurice, G.W.(1998). HMD's, Caves & Chameleon: A HumanCentric Analysis of Interaction in Virtual Space. Computer Graphics: The
SIGGRAPH Quarterly, 32(4), 64-68
Cao, G.R. Desenvolvimento de um Algoritmo para a Reconstruo
Tridimensional para imagens de um minitomgrafo baseado no mtodo de
reconstruo algbrica modificado e interpolao. Dissertao de Mestrado.
(Orientador Prof. Dr. Paulo E. Cruvinel) Universidade Federal de So Carlos UFSCar. So Carlos, 1994.
Calife, D.; Tomoyose, A.; Spinola, D.; Bernardes, J.; Tori, R. Robot ARena:
Infrastructure for Applications Involving Spatial Augmented Reality and Robots.
IX Symposium on Virtual and Augmented Reality, Petrpolis, 2007.
Cormack, A.M. Reconstruction of Densities from their Projections, with
applications in Ratiological Physics. Phys.Med.Biol, 686-700, 1973.
Crestana, S., A Tomografia Computadorizada com um novo mtodo para estudos
da fsica da gua no solo, So Carlos, USP, Tese de Doutorado, 140 pginas, 1986.
Crestana, S., Posadas, A. N. D. 2-D and 3-D Fingering in Unsaturated Soils
Investigated by Fractal Analysis, Invasion Percolation Modeling and NonDestructive Image Processing. Fractals in Soil Science, 293-331. CRC Press.
Washington, EUA, 1998.
Cruvinel, P.E. Minitomgrafo computadorizado de raios X and _ para aplicaes
multidisciplinares. Tese de Doutorado. (Orientador Prof. Dr. Srgio Mascarenhas)
Universidade Estadual de Campinas UNICAMP. Campinas, 1987.
Cruvinel, P.E.. et al. X and gamma-ray cumputadorized minitomograph scanner for
soil science. IEEE Transactions on Instrumentation and Measurement, v.39, N.5,
p.745-750, 1990.

202

Cruvinel, P. E.; Crestana, S., Opportunities and use of Digital Signal Processor in
Tomography dedicated to agriculture, Anais do Workshop Brasileiro de Arquiteturas
Alternativas Usando DSPs, p. 93-97, So Carlos, 1996.
Cruvinel, P. E.; Balongun, F. A. Compton Scattering Minitomography Scanner for
Soil Science, Advances in Agricultural Tomography, Embrapa Agricultural
Instrumentation, So Carlos, Brazil, pp 24-30, 2000.
Cruvinel, Paulo E. and Balogun, Fatai A. Compton scattering tomography for
agricultural measurements. Eng. Agrc., Apr 2006, vol.26, no.1, p.151-160.
Cruz-Neira, C., Sandin, D. J., DeFanti, T. A., Kenyon, R. V., Hart, J.C. The CAVE
audio visual experience automatic virtual environment, Communication of the
ACM, 35(6):64-72, 1992.
Cruz-Neira, C., Sandin, D. J., Defanti, T. A. Sorround-screen projection based
virtual reality: the design and implementation of the CAVE. Proceedings of the 20th
Annual Conference of Computer Graphics and Interactive Techniques, pp. 135-142,
1993.
Darpa. Defense Advanced Research Projects Agency (DARPA). Darpa HMD Project
Summaries. Disponvel em <http://www.darpa.mil/mto/displays/hmd/projects>.
Acesso em Janeiro de 2007.
Daubechies, I. Ten Lectures on Wavelets, Philadelphia. SIAM, (1992).
Dayeang Co. 5DT, fifth dimension technology, 5DT data glove specification.
Disponvel em <hhtp://www.dayeang.com>. Acesso em Janeiro de 2007.
Delfino, S.; Nunes, F.L.S. Estudo Comparativo entre Algoritmos de Segmentao
para Simulao Tridimensional de Imagens Mamogrficas. Anais do II Workshop
de Viso Computacional, 2006, So Carlos-SP, 2006.
E. Reality. P5glove specification. Disponvel em: <http://www.inition.com>, 2007.
Gattass, M., Raposo, A. B., da Silva, J. M. Grafo de Cena e Realidade Virtual.
Monografia de concluso de curso. Pontifcia Universidade Catlica do Rio de Janeiro
PUCRIO, 2004.
Gattass, M; Biasi, S. C. Utilizao de Quatrnios para representao de rotaes
em 3-D. Reports from academic research. Disponvel em: <http://www.tecgraf.pucrio.br/~mgattass/ > , 2002.
GeorgiaTech. Self-Aligning Liquid Crystal Technique Could Simplify Manufacture
of Display Devices. Disponvel em <gtresearch.gatech.edu>. Acesso em Janeiro de
2007.
Gradescki, J. The virtual reality construction kit, John Wiley & Sons, 340 Pp., 1995.

203

Granato, L. F., Algoritmo adaptativo para a melhoria em imagens tomogrficas


obtidas em mltiplas energias, So Carlos, UFSCar, Dissertao de Mestrado, 1998,
135 pginas.
Hainsworth, J.M.; Aylmore, L.A.G., The use of the computed-assisted tomography
to determine spatial distribution of soil water content, Aust.Journal Soil Res. n.21,
p.1435-1443, 1983.
Hearn, D. e Pauline, M. Computer Graphics: C Version. Second edition prentice
hall. 1997
Heeter, C. Presence: Teleoperators and Virtual Environments. MIT Press, 1992.
Herman, G. T., Gordon, R. Three-Dimensional Reconstruction from Projections: A
Review of Algorithms, pp 111-153, 1973.
Hounsfield, G.N. Computadorized Transverse Axial Scanning (Tomography): Part
I. Description of System. British Journal of Radiology, n.46, p. 1016-1022, 1973
Hultquist, J.P.M., e Haible, E.L. Superglue: A programming environment for
scientific visualization, Procedure Visualization, pp. 243-250, 1992.
Interaction
Overview.
Disponvel
Immersion
Corp3D.
<http://www.immersion.com/3d/>. Acesso em Janeiro de 2007.

em

Ipolito, J e Kirner, C. Tcnicas de otimizao e realismo em aplicaes de


Realidade Virtual. Workshop de Realidade Virtual WRV, pp. 91-100, UFSCar,
So Carlos, 1997.
Sutherland, I. E. Sketchpad-A Man-Machine Graphical Communication
System. Anais do Spring Joint Computer Conference, Detroit, Michigan, 1963.
Jacobson, L. Garage Virtual Reality, SAMS Pub., Indianapolis, IN, 1994.
Kak, A.C., Slaney, M. Principes of Computerized Tomographic Imaging. IEEE
Press, New York, 1988.
Kalawsky, R. S. The science of virtual reality and virtual environments, Ed.
Addison- Wesley, 405 Pp., 1993.
Kenner, C. Essential reality p5glove sumary: Dual mode driver programming.
Disponvel em <http://www.geocities.com/carl_a_kenner/p5.html>, 2007.
Kirner, C., Deriggi, F., Kubo, M.M., Sementille, A. C., Brega, J, F., Santos, S. Virtual
Environments for Shared Interactive Visualization. Workshop of the germanbrazilian cooperative program in informatics, Berlin Alemanha, 1995.

204

Kirner, C; Siscoutto, R. Realidade Virtual e Aumentada: conceitos, projetos e


aplicaes. Livro do pr-simpsio. IX Symposium on Virtual and Augmented
Reality, 290Pp, 2007.
VTK
5.0.2
Documentation.
Kitware
Inc.
<http://www.vtk.org/doc/release/5.0/html/>. 2006.

Disponvel

em

Krueger, M. W. Responsive environments. NCC Proceedings, pp. 375385, 1977


Kubo, M.M. Santos, S.G., Deriggi J.R., Kirner, C.. Mltiplas vises em um ambiente
virtual multiusurio. Workshop de Realidade Virtual WRV, pp. 62-70, UFSCar,
So Carlos, 1997.
Laia, M. A. M.; Cruvinel, P. E. Filtragem de Projees Tomogrficas da Cincia do
Solo Utilizando Transformada Anscombe e Kalman. 6 Brazilian Conference on
Dynamics, Control and Their Applications, So Jos do Rio Preto, 2007.
Laia, M. A. M; Cruvinel, P. E. Filtragem de Projees Tomogrficas da Cincia do
Solo Utilizando Kalman e Redes Neurais. IEEE Latin Amrica Transactions, pp.114121, vol.6, n1, 2008.
Laia, M.A.M; Filtragem de Projees Tomogrficas da Cincia do Solo Utilizando
Kalman e Redes Neurais. Dissertao de Mestrado. (Orientador Prof. Dr. Paulo E.
Cruvinel) Universidade Federal de So Carlos UFSCar. So Carlos, 2007.
Lane, C. Display Technologies (1993). Encyclopedia of Virtual Environments.
Disponvel em <http://www.hitl.washington.edu/scivw/EVE/I.A.1.Displays.html>.
Acesso em Janeiro de 2007.
Lanier, J. Virtual Reality: The promise of the future. Interactive Learning
International, 8(4), pp. 275-279, New York, 1992.
Latta, J. N. e Oberg, D. J. A conceptual virtual reality model, IEEE Computer
Graphics & Applications, pp. 23-29, Jan., 1994.
Leston, J. Virtual reality: the it perspective, Computer Bulletin, pp. 12-13, June,
1996.
Lillersand, T., Kiefer, R. Remote sensing and image interpretation. New York: John
Wiley & sons, 2000.
Lima, J.; Guimares, G.; Silva, G.; Teixeira, J.; Xavier, E.; Teichrieb, V.; Kelner, J.
ARCam: a FPGA-based Augmented Reality Framework. IX Symposium on Virtual
and Augmented Reality, Petrpolis, 2007.
Machado, L. S. Conceitos bsicos da realidade virtual, Monografia, INPE, Instituto
Nacional de Pesquisas Espaciais, So Jos dos Campos/SP. Disponvel em
<http://www.lsi.usp.br/~liliane/conceitosrv.html>, 1995.

205

Machover, C; Tice, S.E. Virtual Reality. IEEE Computer Graphics & Applications,
Jan. 1994
Malfatti, S.; Santos, S.; Oliveira, J.; Justel, C.; Fraga, L.; EnCima: A Graphics Enjine
for the Development of Multimedia and Vritual Reality applications. X Symposium
on Virtual and Augmented Reality, Joo Pessoa, 2008.
Introduo

Java
3D.
2003.
Disponvel
Manssour,
I.H.
<www.inf.pucrs.br/manssour/Java3D>. Acesso em Julho de 2006.

em

Marcus, B. A., Beth A. EXOS Research on Master Controllers for Robotic Devices.
In Proceedings of 1991 SOARP Conference. 1991. Minas Gerais, 1996.
MayaVi
Documentation.
Disponvel
MayaVi
Data
Visualizer.
<http://mayavi.sourceforge.net//docs.html>. Access on June 2006.

em:

Minatel, E.R. Desenvolvimento de Algoritmo para Reconstruo e Visualizao


Tridimensional de Imagens Tomogrficas com o uso de Tcnicas Freqenciais e
Wavelets. Dissertao de Mestrado. (Orientador Prof. Dr. Paulo E. Cruvinel)
Universidade Federal de So Carlos - UFSCar. So Carlos, 1997.
Morie, J. F. Inspiring the future: merging mass communication, art, entertainment
and virtual environment, Computer Graphics, 28(2):135-138, May, 1994.
Nieto, A. U. Vandersteegen, P., Buggenhout, C., Verstuyft, S., Bienstman, P., Neyts,
K., Baets, R. Increasing light extraction of a substrate emitting OLED using a 2D
surface grating. IEEE LEOS Annual Meeting. 2006.
Oldendorf, W.H. Isolated Flying Spot Detection of Radiodensity Discontinuites
Dysplayng the Interhal Structural Pattern of a Complex Object, IRE Transactions of
Biomedical Eletronics, 8, p. 68-72, 1961.
Oliveira, A.C.M.T., Pavarini, L., Botega, L.C., Nunes, F. L. S., Bezzera, A. Virtual
Reality Framework for Medical Training: Implementation of a Deformation class
using Java. ACM International Conference on Virtual Reality Continuum and Its
Applications, 2006, Hong Kong.
Paradella, W.R. Produo de Carta Topogrfica atravs da estereoscopia de Alta
Resoluo do RADARSAT-1 Integrada com Dados TM-Landsat 5: Uma
Avaliao para Terrenos Planos da Floresta Nacional de Tapajs, Revista
Brasileira de Geocincias, , pp: 99-110, 2003.
Pavarini, L., Oliveira, A.C.M.T., Botega, L.C. DefApliMed - Sistema de
Deformao para Aplicaes Mdicas com base no Mtodo Massa -Mola
utilizando a API Java 3D. In: SVR - Symposium on Virtual Reality, 2006, Belm.
Anais do SVR 2006, 2006. v. 8.

206

Pedrotti, A. Pauletto, E. A., Crestana, S., Cruvinel, P. E., Vaz, C. M. P., Naime, J. M.,
Silva, A. M. Tomografia Computadorizada aplicada a estudos de um planossolo.
Pesquisa Agropecuria Brasileira, vol. 38, numero 7. Braslia, 2003.
Perdigo, N., Manuel, J., Tavares, R. S., Martins, J.A.C., Pires, E.B., Jorge, R.M.N.
Sobre a Gerao de Malhas Tridimensionais para fins computacionais a partir
de Imagens Mdicas. Anais do Congresso de Mtodos Numricos em Engenharia.
Granada, Espanha, 2005.
Pereira, M. F. L., Cruvinel P. E., Parallel DSP Architecture for Reconstruction of
Tomographic Images Using WaveletsTechniques. Anais do XIV Simpsio brasileiro
de computao grfica e processamento de imagens (SIBGRAPI), p. 384-384.
Florianopolis. 2001.
Pereira, M.F.L. Algoritmo Paralelo para Reconstruo Tridimensional de
Imagens Tomogrficas de amostras Agrcolas em arquitetura DSP com tcnicas
Wavelets. Dissertao de Mestrado. (Orientador Prof. Dr. Paulo E. Cruvinel)
Universidade Federal de So Carlos UFSCar. So Carlos, 2001.
Pereira, M. F. L.; Cruvinel, O. E.; Costa, L. da F.; Saito, J. H.; Macedo, A. Uma
ferramenta para anlise de parmetros fsicos de solos baseada em com tomografia
de raios X. Congresso Brasileiro de Agroinformtica - SBIAgro, 2007. So Pedro, SP.
Campinas: Embrapa Informtica Agropecuria, 2007.
Pereira, M. F. L. Um modelo de reconstruo tomogrfica 3D para amostras
agrcolas com filtragem de Wiener em processamento paralelo. Tese de
Doutorado. (Orientador Prof. Dr. Paulo E. Cruvinel) Universidade de So Paulo
USP. So Carlos, 2007.
Peruzza, A.P.P.M., Nakamura, E.Y., Kirner, C. Soluo do problema de deteco de
coliso em ambientes de Realidade Virtual. Workshop de Realidade Virtual
WRV, pp. 36-43, UFSCar, So Carlos, 1997.
Pessoa, S.; Apolinrio, E.; Moura, G.; Lima, J.; Bueno, M.; Teichrieb, V.
Illumination Techniques for Photorealistic Rendering in Augmented Reality. X
Symposium on Virtual and Augmented Reality, Joo Pessoa, 2008.
Petrovic, A.M., Siebert, J. E., Rieke, P. E. Soil bulk analysis in threedimensions by
computed tomographic scanning, Soil Science Soc. Am. J., n.46, p.445-450, 1982.
Phasespace Motion Capture. Impulse Glove Specification. Disponvel em
<http://www.phasespace.com/gloves.html>, 2008.
Pimentel, K; Teixeira, K. Virtual Reality through the new looking glass. 2nd
edition. New York, McGraw-Hil, 1995.
Pizzolato, E.; Fernandes, M.; Duarte, D. Speech Enable 3D Browsers: Development
Issues and Software Framework. X Symposium on Virtual and Augmented Reality,
Joo Pessoa, 2008.

207

Prado, A.H.M.A; Traina, A.J.M. Interpolao de Imagens Tomogrficas atravs de


Matching usando Triangulao de Delaunay. Anais do IX SIBGRAPI Simpsio
Brasileito de Computao Grfica e Processamento de Imagens. p.359-360. Caxambu,
Radon, J.; In the Determination of functions from their integral along certain
manifold, Beriche ber die Verhandlungen, v. 69, p. 262-277, 1917.
Robertson, G. G., Card, S. K., Mackinlay, J. D. Non-immersive virtual reality, IEEE
Computer, pp. 81-83,1993.
Romano, J. M. S. Integrao de um Dispositivo ptico de Rastreamento a uma
Ferramena de Realidade Virtual. Dissertao de Mestrado, Pontifcia Universidade
Catlica do Rio de Janeiro. (Orientador: Marcelo Gattass), 2004.
Sanches, S.; Rodello, I.; Brega, J.; Sementille, A. Um componente para Construo
de Cenas com Considerao de Profundidade em Ambientes de Realidade
Misturada. X Symposium on Virtual and Augmented Reality, Joo Pessoa, 2008.
Santos, S.G., Kubo, M.M., Deriggi, F.V., Kirner, C. Multiple Views in a Multiuser
Environment as support for CSCW. Simpsio Brasileiro de Multimdia SBMIDIA,
pp 65-73, Rio de Janeiro, 1998.
Scgl. Stanford Computer Graphics Lab. Responsive Workbench Tutorial. Disponvel
em <http://graphics.stanford.edu/projects/RWB/>. Acesso em janeiro de 2007.
Schneider, B. O. e Kirner, C. Controle de objetos deformveis em ambientes
virtuais. Workshop de Realidade Virtual WRV, pp. 44-51, UFSCar, So Carlos,
1997
Selman, D. Java 3D Programming. Editora Manning Publications Company, 2002.
Sensic. High Performance 3D displays: panoramic hmds. Hmd specification.
Disponvel em <http://www.sensics.com/products_specifications.html>. Acesso em
Janeiro de 2007.
Shepherd, B. J. Rationale and strategy for VR standards, Proceedings of the IEEE
Virtual
Silva, A.M.M ; Andrade, M.A. Interface grfica em Java para reconstruo
tomogrfica em medicina nuclear. Anais do III Congresso Latino Americano de
Engenharia Biomdica. IFMBE Proceedings, v. 5. p. 1267-1269. Joo Pessoa. 2004.
Souza, M.A., Ricetti, F., Erthal, J. L., Pedrini, H. Reconstruo de Imagens
Tomogrficas aplicada fabricao de prteses por prototipagem rpida usando
tcnicas de triangulao. Anais do II Congresso Latino Americano de Engenharia
Biomdica. Havana, Cuba, 2001.

208

Sun, Inc. Java 3D 1.5.0 API Specification. Disponvel em: <http://


http://java.sun.com/products/java-media/3D/releases.html>. Acesso em Novembro de
2006.
Spencer, R. Information Visualization. Addison-Wesley, 2001.
Steuer, J. Defining Virtual Reality: Dimensions determining telepresence. Journal of
Communication, 1992.
Takahashi, H. Shimoda, K., Townes, C.H.. Fluctuation in amplification of quanta
with application to maser amplifiers. J.Phy. Soc., Japan, vol.12, pp., 1957.
Teixeira, L.; Loaiza, M.; Raposo, A.; Gatass, M. Um Sistema Hbrido baseado em
Esferas Retroreflexivas e Caractersticas do Objeto Rastreado. X Symposium on
Virtual and Augmented Reality, Joo Pessoa, 2008.
Tiger. Teachers Instructional Graphics Educational Resource, North Carolina school
of science and mathematics, Chemistry Distance Learning Technologies. Disponvel
em <http://www.dlt.ncssm.edu/tiger/chem1.htm>. Acesso em janeiro de 2007.
Toutin, T. Stereo RADARSAT for Mapping Applications. In: Proceedings, ADRO
Final Symposium, Montreal, Canad, 1998, CD-ROM.
Tsuda, F.; Hokama, P.; Rodrigues, T.; Bernardes, J. Integration of jARToolKit and
enJine: Extending with AR the Potential Use of a Didactic Game Engine. IX
Symposium on Virtual and Augmented Reality, Petrpolis, 2007.
Upson, C. T., Faulhaver, T., Kamins, D., Laidlaw, D., Schlegel, D., Vroom, J.,
Gurwitz, R., Van Dam, A. The application visualization system: A computacional
environment for scientific visualization, Computer Graphics and Applications, 9(4),
pp. 30-42, 1989.
Venturini, Y. R., Anlise quantitativa da qualidade de imagens digitais com uso
do espectro de Wiener, So Carlos, Dissertao de Mestrado, Universidade de So
Paulo - USP. So Carlos, 1995.
Vester, C e Toutin, T. A training package on how to use RADARSAT data in stereo.
In: ADRO, Intern. Symp. Geomatics in the era of RADARSAT, Ottawa, Canada,
Proceedings, CD-ROM.
Villamil, M.B., Nedel, L. P., Freitas, C. M. D. S., Machado, R.A., Silveira, R.L., da
Silva, A. M. M. Simulao do Movimento da Mandbula e Comportamento da
Articulao Temporomandibular. Anais do V WIM Workshop de Informtica
Mdica. Porto Alegre, 2005.
Von Schweber, L. & Von Schweber, E.. Virtual reality: Virtually here. PC Magazine,
168-170, 1995.

209

Von Schweber, L. e Von Schweber, E. Cover story: realidade virtual, PC Magazine


Brasil, pp. 50-73, v. 5, n. 6, 1995
CyberGlove
Specification.
Vrdepot.
Products:
<http://www.vrdepot.com/trkglv.htm>. 2007

Disponivel

em:

Vrealities. Head mounted displays overview: 3d stereoscopic. Disponvel em


<http://www.vrealities.com/hmd.html>. Acesso em janeiro de 2007
Vresources. Virtual Reality Resources. HMD Fundamental Concepts. Disponvel em
< http://vresources.org/articles/vre_articles/>. Acesso em Dezembro de 2006.
Vrlogic. Products: Head Mounted Displays Overview. Disponivel em:
<http://www.vrlogic.com/html/head_mounted_displays.html>. Acesso em Janeiro de
2007.
Wavefront, Tech. Wavefront File Format Specification. Disponvel
<http://www.fileformat.info/format/wavefrontobj/spec/index.htm>. 2006
Web3D Consortium. Xj3D Developer
http://www.xj3d.org/arch.html>. 2006.

Documentation.

Disponvel

em:
em:<

Web3D Consortium. Virtual Reality Modeling Language Functional Specification.


Disponvel em: <http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772VRML97/>. 2006.

210

ANEXO I

Ficha preparada para avaliao do sistema de anlise de imagens


tomogrficas da cincia do solo ensaiadas em ambiente de
realidade virtual

Esta ficha tem por objetivo auxiliar a avaliao do sistema de anlise de


imagens dedicado manipulao de amostras agrcolas reconstrudas com base no
mtodo de tomografia de raios-X. O ambiente foi construdo com o uso de
ferramentas grficas computacionais e dispositivos no convencionais de Realidade
Virtual (RV), dentre eles uma luva de dados e um video-capacete para interao do
usurio com o ambiente de anlise.
Quanto ao grau de avaliao a ser atribudo, a escala do menor para o maior
e a aplicao desta ficha de avaliao ser desenvolvida de forma supervisionada,
onde ser previamente explicado ao usurio, os conceitos relativos aos termos:
interface, customizao de amostra, customizao de ambiente, obteno de dados,
deteco de coliso, imerso e interao.

211

1 Quanto interface:

A - Voc pde identificar os recursos disponveis?


B - Voc sentiu alguma dificuldade em encontrar os recursos disponveis?
Quais recursos? Quais Dificuldades?
Recursos disponveis

Item avaliado

Grau atingido

(1-6)

2 Quanto customizao de amostra:

A - Voc conseguiu alterar o modo de representao dos polgonos (faces,


arestas, pontos), a transparncia e as cores?
B - Voc conseguiu alterar o formato e dimenses da amostra em teste?

Item avaliado

Grau atingido

(grau de dificuldade encontrado)

(1-6)

3 Quanto customizao do ambiente:

A - Voc conseguiu alterar a iluminao do ambiente?


B - Voc conseguiu alterar a posio das cmeras do ambiente?

212

Item avaliado

Grau atingido

(grau de dificuldade encontrado)

(1-6)

4 Quanto obteno de dados:

A - Voc conseguiu exibir os dados das amostras (fronteiras, vrtices,


pontos, distncias, cores, material, transparncia, polgonos, coeficientes
de atenuao)?

Item avaliado

Grau atingido

(grau de dificuldade encontrado)

(1-6)

5 Quanto deteco de coliso:

A - Voc conseguiu executar uma coliso utilizando a luva ou teclado?

Item avaliado

Grau atingido

(grau de dificuldade encontrado)

(1-6)

6 Quanto imerso:

A - O sistema lhe proporcionou a sensao de fazer parte do ambiente de


RV atravs dos mtodos de visualizao (culos, anaglifo e realidade
aumentada)?

Item avaliado
(grau de dificuldade encontrado)

Grau atingido

(1-6)

213

7 Quanto interao:

A - O sistema reagiu s suas aes? (Definio de novos parmetros em


Polgonos,

Transparncia,

Cores,

Iluminao,

Manipulao por luva, teclado e mouse).

Item avaliado
(grau de dificuldade encontrado)

Identificao (opcional) do avaliador:


Nome:
Idade:
Sexo:
Grau de escolaridade:
E-mail:
Endereo:

Grau atingido

(1-6)

Transformaes,

Vous aimerez peut-être aussi