Você está na página 1de 55

PUC

lSSN 0103-741

Mcncgrcfic: em Cincic cc CcmpuIccc
n 11/04

Gro|o de Ceno e keo||dode V|rtuo|

Fcmcnc Jc: Mcgcchc cc Si|vc
/|LerIc 8crLc:c Fcpc:c
Mcrce|c GcIIc::


DepcrIcmenIc ce lnfcrmcIicc


PONTIFCIA UNIVERSIDADE CATLICA DO RIO DE JANEIRO
RUA MARQUS DE SO VICENTE, 225 - CEP 22453-900
RIO DE JANEIRO - BRASIL



FUC FlC - DEF/FI/MENIC DE lNFCFMIlC/ lSSN 0103-741
Mcncgrcfic: em Cincic cc CcmpuIccc, N 11/04
EciIcr: Ccr|c: J. F. Lucenc /Lri|, 2004







Gro|o de Ceno e keo||dode V|rtuo|


Fcmcnc Jc: Mcgcchc cc Si|vc
/|LerIc 8crLc:c Fcpc:c
Mcrce|c GcIIc::













Grafo de Cena e Realidade Virtual

Romano J. M. da Silva, Alberto B. Raposo, Marcelo Gattass
Tecgraf Depto. de Informtica PUC-Rio
{romano, abraposo, mgattass}@tecgraf.puc-rio.br
PUC-Rio.Inf.MCC11/04 Abril, 2004

Resumo

Vrias aplicaes de Realidade Virtual (RV) esto utilizando grafos de cena para
representao do ambiente virtual, pois as otimizaes existentes nessas bibliotecas aumentam
a taxa de quadros por segundo da visualizao. O aumento da taxa de quadros por segundo
fornece maior sensao de imerso, caracterstica fundamental em um ambiente de RV. A
presente monografia apresenta um estudo sobre o conceito de grafo de cena, destacando o
OpenGL Performer e o OpenSceneGraph. Tambm feita uma descrio dos principais
conceitos e ferramentas de RV, bem como suas relaes com os grafos de cena.

Palavras-Chave: Realidade Virtual, Grafo de Cena, Computao Grfica.



Abstract

Several applications in the field of Virtual Reality (VR) are using scene graphs to represent
the virtual environment, since the optimizations offered by these libraries increase the frame
rates of the visualization. The increase in the frame rate enhances the immersion sensation, a
fundamental characteristic of a VR environment. This text presents a study about the scene
graph concept, highlighting the OpenGL Performer and the OpenSceneGraph. Some of the
main concepts and tools of VR are also described, as well as their relations with scene graphs.

Keywords: Virtual Reality, Scene Graph, Computer Graphics.



1
Introduo

Realidade Virtual (RV) possui vrias definies diferentes, porm, de
comum acordo que a essncia da realidade virtual est nos ambientes
tridimensionais baseados em computadores. Geralmente chamados de mundo
virtual ou ambiente virtual, eles so representaes do mundo real ou de
ambientes conceituais que podem ser investigados atravs de navegao, interao
e atualizaes em tempo real.
A construo dos ambientes consiste em representar o mundo real
utilizando primitivas que possam reproduzi-lo no ambiente computacional.
Existem vrias tcnicas disponveis para essa representao, sendo a mais comum
a representao por malhas de tringulos.
No ambiente computacional, as bibliotecas grficas so responsveis por
fazer a ligao entre a aplicao e a placa grfica. A aplicao envia a malha de
tringulos, juntamente com seus atributos, como cor, material, texturas, etc., para
a biblioteca grfica e esta, por sua vez, envia os vrtices para a placa grfica que
far os clculos necessrios para transformar a coordenada 3D dos vrtices dos
tringulos em pixels na tela do computador.
As bibliotecas grficas mais utilizadas hoje em dia so a OpenGL e a
Direct3D. A OpenGL uma biblioteca gratuita, disponvel na maioria dos
sistemas operacionais, que possui um mecanismo de extenso que permite que
novas funcionalidades das placas grficas sejam incorporadas aplicao sem a
necessidade de lanamento de uma nova verso da biblioteca. A Direct3D uma
biblioteca proprietria desenvolvida pela empresa Microsoft e distribuda para os
usurios do sistema Windows

.
Com o avano da tecnologia das placas grficas, as aplicaes de
computao grfica e, conseqentemente, de realidade virtual, esto sendo
capazes de produzir efeitos visuais jamais vistos em aplicaes em tempo real.
Porm, essa tecnologia traz consigo um certo grau de complexidade. As interfaces
das bibliotecas grficas comearam a aumentar em tamanho e complexidade. A
fim de se alcanar um efeito de multi-textura (duas texturas aplicadas uma sobre a
outra em um tringulo), por exemplo, dezenas de linhas de cdigo devem ser
includas na aplicao.
Alm do aumento da complexidade de desenvolvimento, o tamanho dos
modelos empregados para representar o ambiente virtual tambm aumentou. Para
que a placa grfica no perca tempo de processamento, necessrio que
algoritmos de otimizaes sejam utilizados pela aplicao. Um exemplo desse tipo
de algoritmo o descarte por campo de viso. Nesse algoritmo, os objetos que
estiverem fora do campo de viso do observador so descartados e no precisam
ser enviados para a placa grfica. Caso no houvesse esse algoritmo, os tringulos
teriam que passar por todo o pipeline de renderizao [2] at que fossem
descartados no final por no estarem dentro da rea visvel do monitor.
A fim de facilitar o desenvolvimento de aplicaes, uma nova forma de
representar os objetos pode ser utilizada: so os chamados grafos de cena,
projetados para, dentre outras coisas, facilitar o uso de algoritmos de otimizao.
Um grafo de cena prov uma camada de abstrao sobre a biblioteca
grfica, simplificando tarefas como a de multi-textura citada anteriormente, alm
de fornecer diversos algoritmos de otimizao, como o descarte por campo de
viso, entre outros. Um grafo de cena organiza, de forma espacial, os objetos

2
presentes em um modelo, permitindo que os algoritmos de otimizao atuem de
forma hierrquica [38].
Vrias aplicaes de RV esto utilizando grafos de cena para
representao do ambiente virtual, pois as otimizaes existentes na biblioteca
aumentam a taxa de quadros por segundo. O aumento da taxa de quadros por
segundo fornece maior sensao de imerso, caracterstica fundamental em um
ambiente de RV.
Alm da preocupao em aumentar a velocidade de renderizao de uma
aplicao, os sistemas de RV devem ser capazes de executar em diversas
configuraes.
Com o desenvolvimento das tecnologias de RV, diversos tipos de
dispositivos de interao e de sada foram surgindo. Para interagir com o mundo
virtual, o usurio pode sentar em uma cadeira, utilizando um capacete de RV e
tendo em sua mo uma luva, ou ele pode estar cercado por paredes de projeo,
em uma configurao denominada CAVE, movendo os objetos utilizando um
mouse sem fio ou um dispositivo ptico ou eletromagntico.
Para facilitar o desenvolvimento de aplicaes multi-dispositivos,
surgiram algumas bibliotecas de RV que so capazes de fornecer dados como a
posio do dispositivo, ou a sua orientao, sem que a aplicao saiba de qual
dispositivo este dado est vindo. Elas agem como uma camada de abstrao. Alm
dos dispositivos de entrada, a aplicao pode gerar a sada visual sem saber se ela
ser apresentada em um monitor ou em uma parede com vrias telas de projeo.
Algumas camadas de abstrao de realidade virtual foram analisadas e, neste
trabalho, apresentada a biblioteca ViRAL (Virtual Reality Abstraction Layer),
desenvolvida pelo grupo de realidade virtual do TecGraf/PUC-Rio.
A prxima seo descreve as caractersticas de um grafo de cena
apresentando vantagens e desvantagens do seu emprego. As bibliotecas de grafo
de cena, OpenSceneGraph e OpenGL Performer sero analisadas. Em seguida,
feito um estudo das tecnologias de RV existentes, mostrando seu rpido
crescimento e justificando a necessidade do uso de camadas de abstrao. Duas
camadas de abstrao sero analisadas: o VRJuggler e o ViRAL.




3
Grafos de Cena
Grafos de cenas so ferramentas conceituais para representao de
ambientes virtuais tridimensionais nas aplicaes de computao grfica [43]. Um
ambiente virtual uma representao de diversos aspectos do mundo real ou
abstrato. Os aspectos que so considerados em uma aplicao de computao
grfica so: posio do objeto, forma, textura da superfcie, iluminao, entre
outros [14]. Cada um desses aspectos e seus atributos esto bastante detalhados na
literatura, porm apresentamos aqui um resumo dos mais importantes:

Descrio geomtrica: A descrio geomtrica qualquer maneira de se
representar a forma da entidade que pode ser processada para se obter uma
imagem dessa entidade. A maneira mais comum a representao
aproximada por um conjunto de polgonos (mais especificamente por
tringulos). O grau de complexidade da descrio geomtrica , em geral,
diretamente proporcional qualidade visual, porm inversamente
proporcional velocidade com que a imagem gerada;
Cmera: A cmera a viso do mundo virtual. Geralmente ela uma
cmera de projeo perspectiva;
Transformao: O objeto posicionado no mundo virtual atravs de uma
transformao geomtrica. Ela transforma as coordenadas locais do objeto
nas coordenadas do mundo virtual. As transformaes so muito
importantes para definir a hierarquia dos objetos;
Aparncia: Material, textura, transparncia, sombra e reflexo esto entre
os diversos atributos que definem a aparncia de um objeto. Assim como a
descrio geomtrica, a aparncia interfere diretamente na imagem final
sendo gerada e na velocidade de gerao;
Comportamento: um objeto pode ser esttico ou dinmico. O objeto
dinmico aquele que muda de posio, forma ou aparncia entre um
quadro e outro;
Iluminao: vrias fontes de luz podem ser adicionadas cena e vrios so
os modelos de iluminao que podem ser empregados. O mais utilizado
o Gouraud [18] pois o seu clculo feito em hardware nas placas grficas
atuais, porm com o advento dos processadores grficos programveis,
outros modelos podem ser usados, como o Phong [32] e o anisotrpico
[34].

Cada um desses aspectos deve ser inserido em um grafo de cena para
representar o ambiente virtual. O grafo de cena formado, portanto, por ns
conectados por arestas compondo um grafo acclico direcionado. Cada n possui
um conjunto de atributos que podem, ou no, influenciar seus ns conectados. Os
ns so organizados de uma maneira hierrquica correspondendo semntica e
espacialmente com o mundo modelado.
Os ns podem ser divididos em trs categorias: n raiz, ns intermedirios
que so chamados de ns internos ou ns de agrupamento e os ns folha que esto
localizados no final de um ramo. O n raiz o primeiro n do grafo e todos os
outros ns esto ligados a ele direta ou indiretamente. O ns internos possuem
vrias propriedades, sendo o uso mais comum o de representar transformaes 3D
(rotao, translao e escala). Os ns folha contm, geralmente, a representao

4
geomtrica de um objeto (ou dados de udio, quando o grafo de cena possuir esse
recurso).


Construindo um Grafo de Cena
Os ns devem ser conectados formando um grafo acclico e direcionado.
As conexes entre eles devem satisfazer as relaes espaciais e semnticas
existentes no mundo real. A Figura 1 mostra um exemplo de um grafo de cena
representando uma casa. A casa dividida em quartos e os quartos possuem
diversos objetos (ns folha), como cama e cadeira, por exemplo. O grafo foi
construdo de maneira a manter a noo intuitiva dos relacionamentos entre os
objetos citados.

Figura 1: Grafo de cena bem construdo de uma casa.
O mesmo grafo poderia ser construdo de outra maneira, agrupando-se as
cadeiras e camas em ns separados, logo, ao invs de uma casa com quatro
quartos, teramos uma casa e, logo abaixo, dois ns agrupando cadeiras e camas
(Figura 2). Esse modelo est semanticamente relacionado com a casa, pois a
mesma possui camas e cadeiras, porm os objetos geomtricos no esto
agrupados espacialmente. Esse resultado indesejado contrrio ao uso eficiente
do grafo de cena, como veremos adiante.

5

Figura 2: Estratgia de uso no eficiente de um grafo de cena.

Propriedades
Os grafos de cena implementam um princpio chamado de herana de
estado. Os ns internos armazenam o estado do sistema, onde estado significa a
posio e a orientao dos objetos no ambiente virtual e seus atributos de
aparncia. A herana de estado uma propriedade dos grafos de cena que
determina que cada n deve herdar as propriedades de estado de todos os seus
ancestrais no grafo at a raiz.
Analisemos, novamente, o modelo da casa e admitamos que seus objetos
estejam modelados em relao origem do sistema de coordenada. Em cada
quarto acrescentamos uma translao que ir posicionar seus quartos corretamente
em relao casa. A casa pode ser ainda rotacionada, por exemplo, a fim de ficar
voltada para uma determinada direo. Essa cena ilustrada na Figura 3. Devido
herana de estado, todas as geometrias identificadas pelos ns razes herdaro as
propriedades dos seus ancestrais e sero posicionadas corretamente. A herana de
estado , portanto, uma ferramenta bastante til para organizao da cena 3D.

Figura 3: Usando transformaes para posicionas os quartos e a casa.

6
Todos os ns de um grafo de cena podem possuir atributos como material,
textura, transparncia, entre outros. Todos esses atributos so herdados dos ns
ancestrais. Um determinado n pode sobrescrever um determinado atributo e,
sendo assim, toda sua subrvore ser modificada. A
Figura 4 ilustra um exemplo de um conjunto de objetos com um
determinado material (cor) e alguns ns sobrescrevendo esse atributo.



Figura 4: Materiais redefinidos ao longo do grafo. Os ns herdam a cor do n ancestral.

Otimizaes
As aplicaes de computao grfica possuem um pipeline de
renderizao responsvel por transformar um vrtice em coordenadas do mundo
para as coordenadas da tela. Esse pipeline composto por trs etapas: Aplicao,
Geometria e Rasterizao.
Atualmente, as etapas de Geometria e Rasterizao so realizadas em
hardware. A primeira responsvel pela transformao e iluminao dos vrtices
que chegam placa grfica. A Rasterizao recebe os pixels com seus valores de
cor interpolados de acordo com o algoritmo de Gouraud e o valor da profundidade
daquele pixel. Com esse valor, um teste de profundidade (Z-buffer [2]) feito para
saber se aquele pixel ser renderizado ou descartado.
A etapa de Aplicao responsvel pelo envio de vrtices para a placa
grfica. Essa etapa totalmente controlada pelo usurio e nela onde atua o grafo
de cena.
Em geral, quanto menos vrtices forem enviados para a placa grfica,
melhor ser o desempenho geral da aplicao. O desempenho tambm
influenciado pela troca de estado da aplicao. Se a aplicao modificar vrias
vezes a textura ativa a ser usada em um modelo, a placa grfica precisa ser
informada. A cada troca de estado na placa grfica, uma validao deve ser
realizada e essa validao uma etapa demorada. Portanto, importante que a
aplicao agrupe seus polgonos por estado, ao invs de mand-los em ordem
aleatria.

7
Uma boa implementao de um grafo de cena deve ser capaz de otimizar o
nmero de vrtices enviados para a placa grfica, assim como o nmero de trocas
de estado. Para isso, algumas tcnicas devem ser empregadas.
Todos os ns do grafo de cena possuem um atributo denominado volume
envolvente. Esse atributo um volume simples, geralmente uma caixa alinhada ou
uma esfera, que engloba o contedo de todos os ns abaixo do n em questo. O
volume envolvente utilizado em um grafo de cena para verificao de
visibilidade e descarte. As tcnicas empregadas para gerao dos volumes
envolventes esto detalhadas em [38].
As tcnicas mais empregadas de descarte em um grafo de cena so:

Descarte por volume de viso: o grafo de cena testa a interseo o volume
envolvente do n com o volume de viso do observador. Se o volume
envolvente estiver completamente fora do campo de viso, o n e toda a
sua subrvore so descartados. Se o mesmo estiver completamente dentro
do campo de viso, o n e toda a sua subrvore so percorridos e caso a
interseo seja parcial, o teste refeito durante o percurso da subrvore;
Descarte por ocluso: os algoritmos de descarte por ocluso tm por
objetivo evitar a renderizao de primitivas que estejam ocultas por outras
partes da cena. A idia por trs dos algoritmos de ocluso realizar algum
pr-processamento ou alguns testes durante a renderizao para evitar que
dados sejam enviados desnecessariamente para a placa. Os algoritmos
mais conhecidos so o Shadow Frusta [21], Hierarchical Z-Buffer (HZB)
[19] e Hierarchical Occlusion Maps [45]. O HZB est implementado em
hardware nas placas grficas atuais.
Descarte de objetos pequenos: o volume envolvente dos ns projetado na
tela. Caso ele ocupe menos que um valor limite em pixels, esse objeto
descartado. A idia desse descarte a de que objetos muito pequenos em
cenas complexas no influenciam muito na imagem final.

Com o descarte, o grafo de cena evita o envio de objetos que no esto
visveis para a placa grfica, dessa forma reduzindo a quantidade de vrtices a
serem renderizados. interessante notar ainda a caracterstica hierrquica desses
algoritmos. Se um n for descartado, toda a sua subrvore ser descartada. Por
esse motivo, uma cena organizada espacialmente ser muito mais eficiente do que
uma cena que foi montada aleatoriamente.
Outra otimizao que reduz a quantidade de vrtices chamada de Nveis
de Detalhe (LOD Level of Detail) [26]. A idia por trs dessa tcnica a de que
objetos muito distantes do observador podem ser renderizados com menor
qualidade visual (menor nmero de polgonos) do que objetos mais prximos
(Figura 5). Os nveis de detalhe podem ser estticos, e portanto gerados uma nica
vez em alguma etapa de pr-processamento, ou dinmicos, sendo gerados
conforme a distncia do observador ao objeto.

8

Figura 5: Nveis de Detalhes: objetos mais distantes so vistos com menos detalhe [44].
A fim de suportar a otimizao de troca de estados, o grafo de cena deve
ser capaz de armazenar todos os atributos que sero utilizados para renderizar
antes de efetivamente enviar os vrtices para placa de vdeo. De posse dessa lista
de atributos, ele ordena os objetos geomtricos por estado e depois os envia para a
placa.

Vantagens
Uma vantagem direta que o grafo de cena traz com todas as otimizaes
que ele implementa a melhoria do desempenho da aplicao. Mas essa no a
nica vantagem, como mostramos na lista a seguir:

Produtividade: Os grafos de cena diminuem o trabalho de se desenvolver
aplicaes grficas de alto desempenho. O grafo de cena gerencia toda a
parte grfica, reduzindo as vrias linhas de cdigo que seriam necessrias
para implementar a mesma funcionalidade utilizando uma interface de
programao baixo nvel, como a OpenGL. Alm disso, vrios conceitos
avanados de programao orientada a objetos, como o uso de padres de
projeto [16], tornam o grafo de cena uma aplicao flexvel e de fcil
reuso. Alm disso, um grafo de cena geralmente acompanhado de outras
bibliotecas responsveis por gerncia de janelas, carregamento de modelos
3D e imagens. Tudo isso faz com que o usurio possa desenvolver uma
aplicao com poucas linhas de cdigo;
Portabilidade: Os grafos de cena encapsulam todas as tarefas de baixo
nvel necessrias para renderizar a cena e ler e escrever arquivos,
reduzindo, ou at mesmo extinguindo, a quantidade de cdigo que
especfica de alguma plataforma a ser inserido na aplicao. Sendo assim,
se o grafo de cena for portvel, imediatamente toda a aplicao ser
portvel, sendo necessrio apenas uma nova compilao ao se mudar de
plataforma;

9
Escalabilidade: os grafos de cena so feitos para funcionar em
configuraes simples baseadas em computadores de mesa e placas
grficas aceleradores convencionais ou em hardware complexos, tais como
clusters de mquinas grficas, ou sistemas multiprocessados/multipipe. O
desenvolvedor no se preocupa com a configurao em que ele ir rodar a
aplicao, podendo estar focado exclusivamente no seu desenvolvimento.


Ferramentas disponveis
Vrias bibliotecas de grafo de cena existem h algum tempo. A lista a
seguir no , de maneira alguma, completa, mas apresenta os mais utilizados:
SGI OpenGL Performer (http://www.sgi.com/products/performer)
OpenSceneGraph (http://www.openscenegraph.org)
OpenSG (http://www.opensg.org)
Open Inventor (http://oss.sgi.com/projects/inventor)
PLIB (http://plib.sf.net)
SGL (http://sgl.sf.net)
OpenRM (http://openrm.sf.net)
Apenas as duas primeiras da lista sero detalhadas a seguir.


SGI OpenGL Performer
O OpenGL Performer, da empresa Silicon Graphics, uma interface de
programao para o desenvolvimento de aplicaes grficas 3D em tempo real.
Ela funciona em plataformas IRIX, Linux e Windows baseada na biblioteca
grfica OpenGL [29]. Alm do grafo de cena, ela possui uma srie de outros
mdulos que permitem o melhor desempenho da aplicao. A Figura 6 ilustra a
organizao das bibliotecas que compem a interface.

10

Figura 6: Hierarquia de mdulos do OpenGL Performer [30].
A biblioteca libpr a biblioteca base e a responsvel pelo desempenho de
renderizao. Ela uma biblioteca desenvolvida em C e com uma interface C++,
orientada a objeto, que fornece funes de renderizao otimizadas, controle de
troca de estados eficiente e outras funcionalidades grficas independentes de
aplicao (rotinas de matemtica, deteco de coliso, criao e gerncia de
janelas, etc).
Acima da libpr est localizada a libpf. Essa biblioteca fornece um
ambiente de visualizao em tempo real atravs de um grafo de cena, alm de um
sistema de renderizao multiprocessado. Esse sistema multiprocessado aproveita
o mximo das arquiteturas SGI.
As outras bibliotecas so responsveis por leitura de arquivo (libpfdb),
criao de manipuladores e componentes de interface com usurio (libpfui) e
configurao de renderizao multiprocessada e multicanal, alm de interface com
usurio (libpfutil).
O grafo de cena contm a informao que define o mundo virtual. Ele
inclui descrio da geometria e a sua aparncia, informao espacial, tais como
transformao, animao, nveis de detalhe, efeitos especiais entre outros. O
OpenGL Performer atua no grafo de cena para realizar a renderizao e o
descarte. Para isso, entram em ao dois conceitos: channel e pipe (Figura 7).

11

Figura 7: O caminho do grafo de cena [30].
Um channel equivalente a uma cmera movendo-se dentro da cena. Cada
channel est associado a uma rea da configurao final de visualizao. O pipe
o corao de todo processamento feito pelo OpenGL Performer. Ele renderiza
cada channel na sua rea de projeo na tela. Nos equipamentos da SGI, cada pipe
pode ser associado a um processador grfico. Essas mquinas so chamadas multi-
piped.
O OpenGL Performer uma excelente soluo de grafo de cena e
renderizao em tempo real. Porm, ele uma soluo comercial de alto custo,
desenvolvida especialmente para os equipamentos SGI. Em outros equipamentos,
boa parte das otimizaes que so extremamente importantes, como o conceito de
multi-pipe, no est presente.


OpenSceneGraph
O OpenSceneGraph uma interface de programao construda sobre a
biblioteca grfica OpenGL [29]. Ele responsvel pela gerncia do grafo de cena
e otimizaes grficas. Ele multi-plataforma, gratuito e o seu cdigo aberto. A
Figura 8 ilustra os mdulos da interface.

12


Figura 8: Mdulos da interface de programao OpenSceneGraph.
O mdulo osg responsvel pelo gerenciamento do grafo de cena. Ele
possui as otimizaes bsicas, como descarte hierrquico por campo de viso e
por ocluso, nveis de detalhe e gerncia de troca de estados. O mdulo osgUtil
possui a cmera da cena e outras rotinas de otimizao, como a remoo de
transformaes estticas, fuso de ns do mesmo estado, partio espacial da cena
para melhor descarte, gerao de geometrias otimizadas para renderizao, e
outras.
Os Visitadores existentes no mdulo osgUtil so responsveis pelo
percurso no grafo. Os Visitadores implementam o padro de projeto de mesmo
nome [16]. A Figura 9 ilustra o diagrama de classes que implementam esse
padro. Existem, geralmente, 2 visitadores padro: o visitador de atualizao e o
de descarte.

Figura 9: Padro de projeto visitadores utilizado para percorrer o grafo de cena.
O visitador de atualizao responsvel por atualizar os objetos dinmicos
do grafo. O visitador de descarte percorre o grafo e elimina todos os objetos
passveis de excluso e retorna uma lista de objetos renderizveis. A etapa de
renderizao feita com o resultado obtido pelo visitador de descarte. Durante a
renderizao a troca de estado feita por demanda (lazy-state change).
O mdulo osgDB responsvel por implementar uma cadeia de
responsabilidade [16] para o carregamento de arquivos de modelos
tridimensionais e de imagens. Com isso, o usurio no precisa se preocupar com a
leitura em baixo nvel dos arquivos, tornando sua aplicao mais portvel. Os

13
leitores de arquivo so implementados na forma de plugins, tornando o osgDB
bastante flexvel e extensvel. Os mdulos osgText e osgSim so extenses do
mdulo osg para suportar a renderizao de texto e outros ns no-especficos,
como, por exemplo, pontos de luz.
O OpenSceneGraph possui a vantagem de ser uma interface de
programao disponvel gratuitamente e de cdigo aberto. Apesar de no possuir
muita documentao disponvel, a quantidade de exemplos e o prprio cdigo
fonte auxiliam a sua compreenso.
Por ser orientado a objetos, ele bastante extensvel, permitindo ao
usurio a criao de novas funcionalidades sem a necessidade de modificao do
seu cdigo fonte. A comunidade existente em torno do OpenSceneGraph
bastante numerosa e existem diversas outras bibliotecas que criaram uma interface
para ele, como o caso do motor de fsica Vortex da CMLabs [31] e a biblioteca
de terrenos Demeter [13].






14
Realidade Virtual
Com aplicao na maioria das reas do conhecimento, entre elas a
medicina, mecnica, treinamento militar, ergonomia, jogos e entretenimento, e
com um grande investimento das indstrias na produo de hardware, software e
dispositivos de entrada e sada, a realidade virtual vem experimentando um
desenvolvimento acelerado nos ltimos anos e indicando perspectivas bastante
promissoras para os diversos segmentos vinculados com a rea.
Os primeiros esboos de equipamentos de realidade virtual foram criados
por Ivan Shutherland em meados dos anos 60, no Massachussetts Institute of
Technology (MIT), estando entre eles o primeiro capacete de realidade virtual
(HMD head mounted display) e um dispositivo de interao chamado Sketchpad
[40], resultado final de sua tese de doutorado em 1963. Apesar do pioneirismo de
Sutherland, o termo Realidade Virtual (RV) acabou sendo creditado a Jaron
Lanier, fundador da VPL Research Inc., que o cunhou, no incio dos anos 80, para
diferenciar as simulaes tradicionais feitas por computador de simulaes
envolvendo mltiplos usurios em um ambiente compartilhado [4]. Pesquisas
como a de Myron Krueger, em meados da dcada de 70, j utilizavam o termo
realidade artificial, e William Gibson utilizou o termo espao ciberntico
(cyberspace) em 1984, no seu romance de fico cientfica Neuromancer [17],
para designar uma representao grfica de dados abstrados dos bancos de dados
de todos os computadores do sistema humano.
No existe na academia ou na indstria, um consenso quanto definio
formal de realidade virtual. Em [6] encontramos realidade virtual descrita como
sendo uma forma das pessoas visualizarem, manipularem e interagirem com
computadores e dados extremamente complexos. Atravs de outras definies
existentes em [10,23,25] pode-se dizer que realidade virtual uma tcnica
avanada de interface, onde o usurio pode navegar e interagir em um ambiente
sinttico tridimensional gerado por computador, estando completa ou
parcialmente presente ou imerso pela sensao gerada por canais multi-sensoriais,
sendo o principal a viso.
Um dos benefcios dos ambientes de RV a capacidade de prover
perspectivas vantajosas impossveis de se obter no mundo real, como por
exemplo, a navegao por dentro do corpo humano ou a anlise de simulaes
fsicas ou reaes qumicas em tempo real. A interao com o ambiente virtual
feita utilizando dispositivos prprios para RV, como capacetes de visualizao,
luvas, mouses tridimensionais, sensores de posicionamento, entre outros.
As aplicaes de RV se diferenciam das aplicaes convencionais, alm
dos tipos de dispositivos que utilizam, pela caracterstica presencial ou imersiva
do usurio no sistema. O usurio se sente imerso quando as sensaes e eventos
que acontecem no mundo virtual so sentidos por ele no mundo real. Atualmente
se desenvolvem pesquisas buscando atuar principalmente sobre as percepes
visuais, auditivas e tcteis.
Quanto viso, o objetivo principal fornecer ao usurio a sensao de
profundidade, que no deve ser confundida com a noo de profundidade obtida
pela distoro de perspectiva. A distoro de perspectiva permite distinguir
objetos que esto prximos dos que esto mais distantes, enquanto a sensao de
profundidade permite que o usurio seja inserido no ambiente virtual.

15
Para atingir esse objetivo, o sistema deve gerar, ao mesmo tempo, duas
imagens diferentes, correspondendo s vises dos olhos esquerdo e direito. O
crebro humano processa as diferenas entre essas duas imagens gerando uma
representao precisa da posio e da forma tridimensional do objeto dentro da
cena. Esse a verdadeira profundidade tridimensional que experimentamos no
mundo real. Esse tipo de gerao de imagem chamado de viso estereoscpica
ou estereoscopia.
A viso estereoscpica obtida naturalmente com o emprego de um
capacete de realidade virtual que possui dois visores, um para cada olho, ou
atravs da utilizao de culos de abertura.


Sistemas de Realidade Virtual
Os sistemas de realidade virtual so compostos por dispositivos de entrada
(rastreadores de posio, reconhecimento de voz, joysticks e mouses, por
exemplo) e sada (visual, auditiva e tctil) capazes de prover ao usurio imerso,
interao e envolvimento [28]. A idia de imerso est ligada com o sentimento
de se estar dentro do ambiente. A interao diz respeito capacidade do
computador detectar as entradas do usurio e modificar instantaneamente o
mundo virtual e as aes sobre ele. O envolvimento, por sua vez, est ligado com
o grau de engajamento de uma pessoa com determinada atividade, podendo ser
passivo, como assistir televiso, ou ativo, ao participar de um jogo com algum
parceiro. A realidade virtual tem potencial para os dois tipos de envolvimento ao
permitir a explorao de um ambiente virtual e ao propiciar a interao do usurio
com um mundo virtual dinmico.
Alm do hardware, os sistemas de realidade virtual necessitam de um
software cuja composio geralmente formada por trs componentes: a
componente de apresentao, de interao e de aquisio de dados.
A componente de apresentao responsvel pela representao,
envolvendo aspectos de interface homem-computador e semitica [37],
carregamento do modelo e sada do sistema. Algumas aplicaes definem um
formato prprio de arquivo para o modelo, enquanto outras so capazes de ler
vrios modelos atravs de um esquema de cadeia de responsabilidade [16],
delegando a leitura do arquivo para diferentes mdulos (plugins). A componente
de sada deve ser capaz de gerar dados para um ou uma combinao de
dispositivos multi-sensoriais.
O componente de interao responsvel pela manipulao e navegao
no ambiente. A dificuldade nesse caso que, ao contrrio dos ambientes
convencionais, existem poucas metforas de interao bem definidas para
ambientes imersivos.
A aquisio dos dados a componente mais complexa do sistema de RV.
O sistema pode ser criado para funcionar especificamente com um determinado
dispositivo de sada (um monitor, por exemplo) e um determinado dispositivo de
entrada (um mouse 3-D) ou ser escalvel e funcionar com qualquer composio
de hardware. Nesse caso, a componente de aquisio de dados deve ser capaz de
suportar a vasta gama de dispositivos, inclusive os que ainda no foram criados.
Geralmente, os sistemas escalveis utilizam bibliotecas ou frameworks que
permitem que o desenvolvedor abstraia a aplicao dos dispositivos utilizados.

16
Os sistemas de realidade virtual so categorizados principalmente pela sua
interface visual, pois a viso o sentido que mais afeta as relaes humanas. As
principais categorias dos sistemas de RV so: baseado em monitor, parcialmente
imersivos e imersivos.


Sistemas baseado em monitor
Alguns sistemas utilizam o monitor convencional do computador para
visualizar o ambiente virtual em uma estao de trabalho tradicional. Um nico
usurio rastreado atravs um sensor de posio preso sua cabea e vrios
dispositivos de entrada podem ser utilizados. A viso gerada pode ser
monoscpica ou estereoscpica, seja via culos 3-D, seja com um monitor auto-
estreo.
As vantagens desse sistema so:

utilizao de uma interface comum para o usurio: como o usurio no
perde contato com o mundo real, ele pode utilizar o mouse, o teclado ou
at mesmo um joystick para interagir;
relativamente barato;
mais de um usurio pode participar do ambiente, embora apenas um possa
ser rastreado;
o rastreamento do movimento do usurio limita-se posio da sua cabea
e pode ser feito com uma simples cmera digital.

Entre as desvantagens esto:

a falta de imerso: o campo de viso do usurio limitado pelo monitor,
que geralmente no passa de 21;
violao da sensao de profundidade: os culos 3-D so capazes de
fornecer a sensao de profundidade at certo ponto. Quando os objetos
presentes no ambiente virtual cruzam a borda do monitor, corre-se o risco
de se perder a sensao de profundidade. Isto acontece porque um olho
recebe a imagem atrs da borda, enquanto o outro pra de receb-la.

Sistemas parcialmente imersivos
Os sistemas parcialmente imersivos so capazes de fornecer uma sensao
de imerso maior do que os sistemas baseados em monitor, atravs do emprego de
uma ou mais telas de projeo ou de vrios monitores. As telas so maiores do
que o monitor, permitindo maior mobilidade do usurio, e geralmente so
projetadas por trs para evitar sombras geradas pelo prprio usurio.
Nesse tipo de sistema, o usurio comea a sair do mundo real e entrar no
mundo virtual. Dessa forma, novos dispositivos de entrada, diferentes de mouse e
teclado, devem ser empregados.
Como o campo de viso do usurio maior do que nos sistemas baseados
em monitor, mais informao visual ser gerada, colocando em risco o
desempenho da aplicao. Quanto mais imerso estiver o usurio, maior ser o
desconforto devido a atraso e latncia do movimento.
As vantagens desse sistema so:

17

maior campo de viso;
no invasivo: diferente dos sistemas imersivos, vistos na seo seguinte, os
semi-imersivos no agridem tanto o usurio, permitindo maior tempo de
utilizao;
verdadeira grandeza dos objetos: algumas aplicaes podem tirar proveito
do tamanho das telas de projeo para exibir seus modelos em escala
correta, permitindo melhor interpretao pelo usurio;
permite um nmero maior de usurios simultneos do que sistemas
baseados em monitor.

As desvantagens so:

violao da sensao de profundidade: existem dois tipos de violao da
estereoscopia. O primeiro o mesmo dos sistemas baseado em monitor. O
segundo acontece quando o objeto est entre a mo do usurio e o seu
olho. A mo deveria ser encoberta pelo objeto, mas de fato, isto no
acontece e o objeto oculto pela mo.


Sistemas imersivos
Os sistemas imersivos so aqueles que envolvem completamente o
usurio. So exemplos de sistemas imersivos os capacetes de RV e a CAVE [11].
Os capacetes de RV so rastreados para fornecer ao sistema a rotao da
cabea do usurio enquanto o movimento de translao controlado por um outro
dispositivo, geralmente sem fio. Nos capacetes, a latncia dos movimentos
crtica, pois pode causar desconforto maior do que os sistemas parcialmente
imersivos.
Alguns benefcios dos capacetes de RV so:

imerso completa;
no h violao da sensao de profundidade: como no h superfcie de
projeo com bordas, as imagens estereoscpicas no so violadas;
fcil configurao: a interface do capacete com o computador igual a dos
monitores convencionais, assim como a configurao no sistema
operacional.

Algumas desvantagens:

invasivo: o usurio completamente removido do mundo real. Isso pode
levar a cansao fsico e desconforto;
mono-usurio: somente um usurio pode navegar no mundo virtual.

Nos sistemas imersivos do tipo CAVE, o usurio completamente cercado
por telas de projeo, som estreo e o seu movimento de translao deve ser
rastreado. Nesses ambientes, os dispositivos de entrada que o usurio utiliza
devem ser sem fio para no atrapalhar a visualizao do mundo virtual. Como nos
sistemas parcialmente imersivos, a juno entre as telas no deve ser perceptvel.

18
As imagens projetadas nas telas podem ser geradas por um nico hardware
ou por vrios hardwares, um por tela, por exemplo. No ltimo caso, um
mecanismo de sincronizao de quadros em hardware ou software [3] deve ser
empregado.
So vantagens desse tipo de sistema:

grande campo de viso: o usurio tem uma viso mais abrangente do
mundo virtual;
menos invaso: diferente dos capacetes, esse sistema menos invasivo,
pois o usurio ainda consegue ver seus movimentos;
multi-usurios: vrios usurios podem trabalhar juntos na mesma rea.

Geralmente, somente um usurio rastreado, sendo assim a perspectiva
gerada no apropriada para um outro usurio presente na mesma CAVE a no
ser que os dois executem o mesmo movimento e estejam bem prximos um do
outro.
Algumas desvantagens desse sistema so:

espao: esse tipo de sistema requer muito espao para sua instalao;
violao de ocluso: quando o objeto est entre a mo do usurio e o seu
olho, a mo oculta o objeto, dando uma informao incorreta de
profundidade;
calibrao: a fim de que todas as telas produzam um resultado visual com
mesma quantidade de iluminao e as junes sejam imperceptveis, os
projetores devem ser sempre calibrados. A calibrao dos projetores um
trabalho demorado e, dependendo da tecnologia empregada, pode ser
muito caro e freqente.


Dispositivos
Um das conseqncias do advento da realidade virtual foi a necessidade de
se redefinir o paradigma de interface homem-computador. O sistema tradicional
mouse-teclado-monitor foi substitudo por dispositivos que permitissem maior
imerso do usurio no ambiente virtual e o manuseio de todas as potencialidades
dessa nova tecnologia.
Existem dois tipos de dispositivos: os de entrada e os de sada. De acordo
com [37], os dispositivos de entrada esto divididos em:

Rastreamento do corpo;
Reconhecimento de voz e som;
Controladores fsicos.

Os dispositivos de sada, por sua vez, podem ser categorizados como:

Visual;
Auditivo;
Tctil.


19
O presente trabalho no pretende analisar os dispositivos de
reconhecimento de voz e som e os dispositivos de sadas auditivos e tcteis. Esses
dispositivos fogem ao escopo desse trabalho.


Dispositivos de sada visual
A sada visual dos sistemas de realidade virtual, seja ele baseado em
monitor, imersivo ou parcialmente imersivo, tem como principal preocupao a
estereoscopia. Alm disso, os sistemas que utilizam vrias telas de projeo
devem ser capazes de gerar as imagens na borda de maneira suave, ou seja, o
usurio no deve perceber que naquele ponto existe uma juno.


Estereoscopia
A visualizao em estreo pode ser obtida utilizando-se uma soluo ativa
ou passiva. A soluo passiva utiliza conceitos de ptica, como polarizao, para
separar as imagens dos olhos direito e esquerdo. Nesse modo, as duas imagens so
geradas simultaneamente. Na soluo ativa, as imagens so geradas
alternadamente e uma combinao de ptica e eletrnica faz com que cada olho
veja somente a sua imagem.
O efeito de estreo passivo obtido utilizando culos de visualizao que
sejam capazes de separar duas imagens compostas em uma nica imagem,
podendo ser:

Atravs da cor utilizando anaglifos: um anaglifo uma figura obtida por
dupla imagem, cada uma de um ponto diferente, impressa em duas cores
contrastantes, que produzem, mediante o uso de culos especiais, a iluso
de profundidade, de relevo;
Atravs da cor por difrao: a luz emitida pela imagem refratada por
micro-prismas existentes na lente dos culos gerando a disparidade ocular;
Polarizao linear ou circular. A polarizao linear a mais comum pois
prov uma boa separao se os polarizadores estiverem bem alinhados,
porm muito sensvel rotao da cabea. A polarizao circular
menos sensvel rotao da cabea e produz uma boa separao, porm os
culos no so to simples.

Outra soluo de estreo passivo so os monitores auto-estreo [20]. Esses
monitores possuem um padro de iluminao e um sistema ptico especial que
fica atrs da sua tela de cristal lquido. Esse sistema faz com que as colunas de
pixels sejam alternadamente visveis para os olhos esquerdo e direito quando o
usurio est posicionado a uma determinada distncia em frente ao monitor.
Outro tipo de estereoscopia, a ativa, apresenta as imagens do olho
esquerdo e direito alternadamente no monitor ou na tela de projeo e uma
soluo de ptica e eletrnica responsvel por direcionar a imagem correta para
cada olho. A soluo mais comum so os culos de abertura (shutter glasses)
(Figura 10) juntamente com estreo ativo progressivo (page flipping).

20

Figura 10: culos de abertura (shutter glasses) e emissores infravermelho.
O estreo ativo progressivo envia um quadro de cada olho alternado para a
placa de vdeo. As placas possuem uma sada, alm da de vdeo, que permite a
sincronizao dos culos de abertura (Figura 11). O sincronismo pode ser com fio
ou sem fio, utilizando transmisso por infravermelho. Em cada quadro, o emissor
de infravermelho comanda a abertura de uma das lentes dos culos. Para que o
crebro humano consiga juntar as imagens e interpret-las como sendo uma, a
freqncia de apresentao de cada imagem para cada olho deve ser de 50 a 60
Hz. Alguns exemplos de placas grficas que possuem o recurso de estreo ativo
progressivo so as Quadros da NVidia, as FireGLs da ATI e a WildCat da
3DLabs.

Figura 11: Placa Quadro FX: soluo de estereoscopia ativa progressiva da NVidia.
Os culos ativos so muito mais caros que os culos passivos. A qualidade
do estreo passivo boa, porm muito dependente da qualidade da tela de
projeo e do movimento da cabea do usurio, enquanto o estreo ativo no
requer tela especial. Ambos os tipos de estreo apresentam problemas de
fantasmas. Ou seja, a lente que est fechada (ou com polarizao trocada) no
consegue bloquear completamente a imagem que deveria ser vista somente
atravs da outra lente. Os culos passivos so ideais para ambientes claros e de
grande audincia, enquanto os ativos so ideais para pequenos grupos em salas
menores, com pouca luminosidade.


21

Capacetes de RV
Os capacetes de RV (Figura 12i) so um exemplo de dispositivos de RV
usados sobre a cabea do usurio. Eles so formados por dois visores, um para
cada olho do usurio. Outros exemplos de dispositivos desse gnero so capacetes
com somente um visor (sem viso estereoscpica - Figura 12ii), binculos (Figura
12iii) e monculos (Figura 12iv). Um exemplo de emprego de um binculo de
realidade virtual o projeto Visorama [27], cuja finalidade a visualizao de
imagens panormicas.

Figura 12: Exemplos de dispositivos de RV: (i) capacete de RV estreo, (ii) capacete de
RV mono, (iii) binculos e (iv) monculos.
Os capacetes de RV so compostos por pequenos CRTs (tubos de raios
catdicos) ou LCDs (telas de cristal lquido). Geralmente a entrada feita por
duas portas VGA. Para isso, a placa de vdeo do computador deve possuir duas
sadas de vdeo sincronizadas e com a mesma resoluo de imagem. possvel
ainda duplicar a imagem de um visor no outro, porm a imagem final no ir
produzir o efeito de estereoscopia. Se a placa de vdeo for capaz de gerar quadros
estreos intercalados, alguns capacetes so capazes de direcionar corretamente as
imagens para cada olho, provendo viso estreo com somente uma entrada de
vdeo. Um exemplo desse tipo de capacete o HMD 800 da empresa 5DT Fifth
Dimension Technologies.


Projetores
Os projetores desempenham um papel crucial nos sistemas de RV
imersivos e parcialmente imersivos. O brilho e a resoluo so fatores que
melhoram a qualidade da imagem, logo aumentam a sensao de imerso. Alguns
projetores possuem a capacidade de gerar imagens para estereoscopia ativa e
existem ainda aparelhos que permitem a utilizao de dois projetores para gerao
de estereoscopia passiva. Atualmente, existem trs tipos de projetores disponveis:
CRT, LCD e DLP.

22
Os projetores CRT, tubos de raios catdicos, so os mais antigos e
acompanham o advento da televiso. O projetor CRT composto por trs tubos
responsveis pela gerao das trs componentes primrias, vermelha, verde e azul.
A imagem formada nos trs tubos e projetada, atravs de lentes, na tela de
projeo.
A projeo atravs de telas de cristal lquido, LCD, tornou-se realidade no
final da dcada de 1980, quando novas formas de painis de matriz ativa,
componente principal das telas de cristal lquido, foram desenvolvidas para os
computadores portteis. Os painis de matriz ativa permitem que uma
determinada linha e coluna da tela de cristal lquido sejam endereadas e recebam
uma carga capaz de ser mantida at o prximo ciclo de atualizao da tela. Com
essa carga possvel controlar a intensidade de luz que ir passar por aquele pixel.
Ao fazer isso em pequenos e exatos incrementos, possvel criar uma escala de
cinza. Os LCDs atuais possuem 256 nveis de escala de cinza. A resoluo do
LCD determinada pela quantidade de linhas e colunas existentes na tela, sendo
as mais comuns os de 800x600 e 1024x768 linhas por coluna.
Internamente, o projetor possui uma luz branca intensa que dividida em
trs feixes que passam por 3 LCDs para gerarem as componentes, vermelha, verde
e azul, da imagem. Os feixes resultantes so combinados e uma nica imagem
projetada.
A tecnologia DLP uma soluo de projetores de vdeo que utiliza
semicondutores pticos para manipulao digital da luz. A gerao da imagem
pode ser explicada em trs fases: o semicondutor, a imagem cinza e a adio de
cor.
O integrado do semicondutor contm uma malha retangular com centenas
de milhares de espelhos microscpicos. Cada um desses micro-espelhos mede
menos que um quinto da largura de um fio de cabelo humano e correspondem a
um pixel da imagem projetada. O semicondutor usado conjuntamente com uma
fonte de luz branca, lentes de projeo e o sinal grfico digital.
Os micro-espelhos so montados em minsculas dobradias que permitem
que eles girem em direo a fonte de luz ou em direo contrria a ela,
correspondendo a um pixel claro e um escuro na tela de projeo.
O sinal digital correspondente imagem ao chegar ao semicondutor, faz
com que cada espelho seja ligado e desligado milhares de vezes por segundo.
Quando um espelho ligado com mais freqncia, um pixel mais claro
produzido. Ao contrrio, se o espelho for desligado com mais freqncia, o pixel
gerado ser mais escuro. Dessa forma, os projetores DLP podem gerar uma escala
de 1024 nveis de cinza.
A luz branca, antes de alcanar o semicondutor, passa por um disco
colorido. Esse disco filtra a luz gerando as componentes vermelha, verde e azul. O
estado ligado e desligado de cada micro-espelho sincronizado com as trs
componentes para produzir at 16,7 milhes de cores. Por exemplo, o espelho
responsvel por projetar um pixel roxo ir refletir as luzes vermelha e azul. O olho
humano ir combinar as luzes intercaladas rapidamente e interpretar o resultado
como sendo a cor matiz da imagem projetada.
A Figura 13 mostra os trs tipos de projetores e a Tabela 1 apresenta as
vantagens e desvantagens de cada tecnologia.

23

Figura 13: Projetores da empresa BARCO: (a) CRT, (b) LCD e (c) DLP.
Tecnologia Vantagens Desvantagens
CRT
Excelente qualidade de imagem;
Excelente nvel de cinza;
Os pixels no so visveis;
Os tubos possuem vida longa;
Pouco ruidosos;
Melhor custo/benefcio;
Grandes e pesados;
Os tubos so caros;
Pouco brilho, exigindo uma sala
com pouca iluminao;
Exigem ajustes peridicos;
Difcil configurao;
Exigem reconfigurao ao alterar
o tamanho da tela;
LCD Pequenos e luminosos;
Rpida configurao;
No h perda de alinhamento;
Lmpadas de fcil substituio;
Muito mais brilho;


Ruidosos;
As lmpadas tm tempo de vida
pequeno;
Lmpadas caras;
possvel notar os pixels;
Tons de cores deficientes;
Escala de cinza deficiente;
DLP Pequenos e luminosos;
Rpida configurao;
No h perda de alinhamento;
Lmpadas de fcil substituio;
Muito mais brilho;
Tons de cores mais vivos;
Os pixels no so visveis;
No requerem uma sala escura;
Ruidosos;
As lmpadas tm tempo de vida
pequeno;
Lmpadas caras;
Escala de cinza deficiente;

Tabela 1: Vantagens e desvantagens dos projetores CRT, LCD e DLP


Workbenchs e a CAVE
Com o emprego de projetores e mltiplas telas de projeo possvel criar
as mais variadas configuraes de ambientes de visualizao para RV. Nesta
seo vamos analisar duas configuraes que mais influenciaram no
desenvolvimento de aplicaes de RV: a Responsive Workbench e a CAVE.
A Responsive Workbench (Figura 14) um espao de trabalho interativo e
tridimensional. Imagens estereoscpicas so projetadas em um topo de mesa
horizontal que serve como superfcie de visualizao. A projeo feita atravs de
um sistema de projetor e espelhos e a visualizao feita atravs de culos 3-D
para estreo ativo.

24

Figura 14: Configurao da Responsive Workbench.
O movimento da cabea do usurio acompanhado utilizando um sistema
de rastreamento com 6 graus de liberdade. Dessa forma, o usurio pode ver o
ambiente virtual atravs do ponto de vista correto, porm a utilizao fica restrita
a somente um usurio. Em [1] apresentada uma soluo para que dois usurios
possam utilizar a workbench. A Figura 15, extrada de [1], apresenta a
problemtica de dois usurios visualizando o mesmo objeto, de pontos de vistas
diferentes, sendo que somente um deles est sendo rastreado.

Figura 15: (a) A imagem vista por um usurio do lado esquerdo da mesa. (b) a mesma
imagem vista do lado direito. (c) A imagem vista por um usurio esquerda da mesa se
a mesma fosse gerada do ponto de vista da direita.
A soluo empregada consiste na gerao seqencial de 4 imagens: L1 L2
R1 R2, onde L1 e R1 so as vistas do olho esquerdo e direito do primeiro usurio
e L2 e R2 as mesmas vistas para o segundo usurio. Para que o primeiro usurio
no veja a imagem do segundo, os culos 3-D devem ser capazes de fechar as
duas lentes simultaneamente.
A CAVE um sistema de RV baseado em projeo desenvolvido
inicialmente no Electronic Visualization Lab da Universidade de Illinois [11]. Ela
uma sala cujas paredes, o teto e o cho so superfcies de projeo (Figura 16).
A implementao da CAVE requer que as projees estejam sincronizadas
e as bordas das imagens sejam combinadas, para que a juno seja imperceptvel.
A gerao da perspectiva do usurio em uma CAVE no um problema simples e
deve ser tratado pela aplicao. A perspectiva calculada com base na posio do
usurio, a rotao de sua cabea e a tela de projeo.
A partir do lanamento da CAVE em 1992, vrias configuraes de telas
de projeo foram sendo criadas e batizadas com outros nomes, como
ImmersaDesk, IWall, PowerWall, Holobench e Holospace.

25


Figura 16: Ilustrao de uma CAVE.

Dispositivos de rastreamento
O modo como os participantes interagem com o sistema de realidade
virtual influencia enormemente suas experincias no ambiente virtual. Os modos
de interao afetam a facilidade de uso do sistema, a sensao de imerso do
usurio e a variedade de aes que ele pode tomar dentro do ambiente virtual.
Em realidade virtual, um importante dispositivo de entrada o rastreador
de posio que pode ser utilizado para acompanhar a posio do corpo e os
movimentos do usurio, assim como a posio de outros objetos que esto sendo
por ele utilizados.
Existe uma variedade de dispositivos de rastreamento, cada um utilizando
uma tecnologia diferente, entre eles, os eletromagnticos, mecnicos, acsticos e
inerciais e pticos. Ao analisar as tecnologias utilizadas pelos rastreadores, trs
fatores devem ser levados em considerao: preciso e velocidade de resposta do
sensor; interferncia do meio; restries (fios, conexes mecnicas, etc.):

Eletromagnticos
Princpio de Funcionamento: os rastreadores eletromagnticos utilizam
campos magnticos para medir posio e orientao. O sistema
composto por transmissor e receptor em forma de bobina. Um sensor
unidimensional para estimar a posio no eixo Z, por exemplo, composto
por uma nica bobina transmissora orientada na direo Z. Quando uma
corrente aplicada bobina, um campo magntico gerado. No receptor,
o campo induz uma voltagem mxima proporcional intensidade do
campo magntico medido em uma bobina orientada na mesma direo do
campo.

26
A voltagem induzida fornece a distncia do transmissor ao receptor,
assim como a diferena de alinhamento entre os eixos.
Preciso/Velocidade: esses sistemas so bastante precisos, cerca de 1 a 2
mm para posio e 0.1 para orientao. A velocidade de captura de dados
de 100 a 200 medidas/segundo.
Interferncia do meio: a presena de metal pode causar interferncia
eletromagntica.
Restries: pequeno espao de utilizao devido ao alcance do campo
magntico gerado. O receptor deve estar cerca de 1-3 metros do
transmissor, no havendo necessidade de linha de visada desobstruda.
Exemplos: FasTrack da Polhemus (Figura 17i) e o Flock of Birds da
Ascension (Figura 17ii).

Figura 17: (i) FasTrack e (ii) Flock of Birds.
Mecnicos
Princpio de Funcionamento: os rastreadores mecnicos medem ngulos e
distncia entre juntas. Dada uma posio conhecida, todas as outras podem
ser determinadas pela relao entre as juntas. Os rastreadores podem estar
presos ao cho ou anexos ao corpo do usurio, usualmente na forma de um
exoesqueleto. As rotaes e as distncias podem ser medidas por
engrenagens, potencimetros ou sensores de dobra (Figura 18).


Figura 18: Sensor de dobra.
A vantagem dos sistemas mecnicos a facilidade da adio da
funcionalidade de force feedback. Esse tipo de dispositivo restringe o
movimento do usurio aplicando uma fora contrria ao seu movimento.

27
Preciso/Velocidade: por serem mecnicos, possuem alta preciso (0.1 de
rotao). A latncia mdia de 200 ms.
Interferncia do meio: no sofrem interferncia do meio.
Restries: a prpria arquitetura do rastreador pode restringir o movimento
do usurio, caso o mesmo seja preso ao cho ou possua muitas juntas.
Exemplos: o Phantom (Figura 19i) da Sensable Technologies e a mo
mecnica da EXOS (Figura 19ii).


Figura 19: (i) Phantom da Sensable e a mo mecnica da EXOS.

Acsticos
Princpio de Funcionamento: rastreadores acsticos utilizam, tipicamente,
ondas sonoras ultra-snicas para medir distncia. Os mtodos mais usados
so o clculo do tempo de vo e coerncia de fase. Em ambos, o objetivo
converter tempo em distncia. Um nico par transmissor/receptor fornece
a distncia do objeto em relao a um ponto fixo.
O resultado uma esfera em cuja superfcie o objeto est localizado.
Como visto na Figura 20, a adio de um segundo receptor restringe a
regio a um crculo e um terceiro receptor restringe a dois pontos, sendo
que um deles facilmente descartado. Portanto, para estimar a posio so
necessrios um transmissor e trs receptores ou um receptor e trs
transmissores. Para estimar posio e orientao, so necessrios trs
transmissores e trs receptores.

Figura 20: Interseo entre duas esferas (um crculo) e entres trs (dois pontos).
Preciso/Velocidade: existe um atraso inerente a espera do sinal. Esse
atraso intensificado devido baixa velocidade de propagao do som.
Interferncia do meio: as propriedades do som limitam esse mtodo. O
desempenho degradado na presena de um ambiente ruidoso. O som

28
deve percorrer um caminho sem obstruo entre os autofalantes e os
microfones.
Restries: a configurao do sistema no cara, pois o equipamento
necessrio composto de microfones, alto-falantes e um computador.
Devido s restries de interferncia, a distncia mdia entre
receptor e transmissor so alguns metros, contudo, sistemas mais precisos
podem cobrir reas de at 40x30m.
Exemplos: Logitech Tracker (Figura 21i) com alcance mdio de 15 metros
e o FarReach da Infusion Systems (Figura 21ii) com alcance de 12 metros.

Figura 21: (i) Logitech Tracker e (ii) FarReach.
Inerciais
Princpio de Funcionamento: utilizam magnetmetros passivos,
acelermetros e girmetros. Os magnetmetros passivos medem o campo
magntico do ambiente (geralmente da Terra) e fornecem medidas
angulares. Os girmetros fornecem medida angular mais precisa e os
acelermetros fornecem medidas lineares. Todos so baseados na segunda
lei de movimento de Newton, F = ma e M = I , sendo assim, o sistema
deve integrar a leitura para obter a velocidade e a posio.
Preciso/Velocidade: Devido etapa de integrao, o erro obtido a cada
integrao tende a aumentar. A utilizao de filtros e outros sensores ajuda
a diminuir esse erro.
A vantagem desses dispositivos a sua preciso, sendo capazes de
alcanar resoluo angular de at 0.2 em determinadas condies de
utilizao.
Interferncia do meio: No existe interferncia, pois o sistema
autocontido, no havendo necessidade de um ponto externo para obteno
de dados;
Restries: No existe limitao fsica para o espao de trabalho, sendo o
mesmo limitado somente pela conexo entre o dispositivo e o computador.
Exemplos: 3D-Bird da Ascension Technology (Figura 22i) e o Intertrax2
da InterSense (Figura 22ii).


29

Figura 22: (i) 3D-Bird e (ii) Intertrax2.
pticos
Princpio de Funcionamento: sistemas pticos utilizam informao visual
para rastrear o usurio. O mtodo mais comum obter a imagem atravs
de uma cmera de vdeo e empregar tcnicas de viso computacional para
determinar a posio do objeto.
Quando somente um sensor (cmera) utilizado, a posio do ponto
observado representada por uma reta que passa pelo ponto e pelo centro
de projeo. Observando mais de um ponto ou usando mais de um sensor,
possvel determinar corretamente a posio e orientao do objeto sendo
rastreado.
Outro equipamento ptico bastante utilizado o composto por
emissores de luz, como os diodos (LEDs) ou laser.
Preciso/Velocidade: a velocidade de captura depende muito do sensor
empregado. Uma cmera padro NTSC consegue capturar imagens a taxas
de 30 quadros por segundo, limitando a amostragem. A preciso dos dados
depende das tcnicas de viso computacional empregadas: calibrao de
cmera, extrao de informao da imagem e utilizao de filtro para
evitar tremido.
Interferncia do meio: No sofre interferncia do meio.
Restries: A cmera deve estar sempre enxergando o objeto sendo
rastreado ou o emissor de luz no pode ser obstrudo.
Exemplos: Existem muitos equipamentos pticos utilizados em captura de
movimento e em realidade virtual. Alguns exemplos de dispositivos
usados em RV so o DragonFly [39] (Figura 23) e o LaserBird da
Ascension Technology (Figura 24).

30

Figura 23: Dispositivo ptico DragonFly desenvolvido pelo Instituto Fraunhofer
de Engenharia Industrial da Alemanha.

Figura 24: LaserBird da Ascescion Technology: sensor e feixe de laser.


31
Controladores fsicos
Alm dos dispositivos de rastreamento, os controladores fsicos
complementam as formas de interao do usurio com o sistema de RV. Esses
controladores variam desde simples dispositivos, como o joystick, a dispositivos
mais complexos, como um simulador de cabine de avio. Os controladores podem
servir para aplicaes especficas ou serem genricos e, portanto, utilizveis em
qualquer aplicao.
Os controladores fsicos podem fornecer trs tipos de informao para o
sistema de RV: analgica, digital e posicional.
A informao analgica um valor contnuo fornecido pelo dispositivo.
Por exemplo, um joystick possui uma leitura analgica quando sua haste
movimentada. A informao digital do tipo 0 ou 1. Um exemplo de controlador
digital so os botes do mouse.
A informao posicional obtida atravs dos dados vindos do dispositivo
ou da converso da informao analgica. O resultado composto por 3
coordenadas de translao e pelos 3 ngulos de Euler, ou por um quatrnio. Um
dispositivo ptico, por exemplo, capaz de fornecer a posio e orientao de um
objeto sendo rastreado. Um exemplo de dispositivo ptico capaz de fornecer
informao com 6 graus de liberdade o Dragonfly [39].
Vrios dispositivos podem ser agrupados para formar um nico
controlador fsico. Um joystick um exemplo de dispositivo que fornece
informao analgica e digital.


Realidade Aumentada
A Realidade Aumentada (RA) uma variao da Realidade Virtual (RV).
Em RV, o usurio imerso em um ambiente sinttico e no participa do mundo
real a sua volta. A RA permite que o usurio veja o mundo real com objetos
virtuais superpostos ou combinados com ele. Portanto, a RA suplementa a
realidade, ao invs de substitu-la completamente. Para o usurio, os objetos reais
e os virtuais coexistem no mesmo espao. A Figura 25 mostra um exemplo onde
objetos reais e virtuais compem um ambiente.


32

Figura 25: Informao virtual sobre o mundo real como auxlio a navegao
Fonte: How Stuff Works (http://www.howstuffworks.com).

Alm da imagem virtual sobreposta imagem real, os sistemas de RA
podem aumentar o mundo real atravs da incluso de som, resposta ao tato e
cheiro. Essas tecnologias ainda esto em fase de pesquisa embrionria.
Os componentes mais utilizados nesse tipo de ambiente so os capacetes
de RA e os equipamentos de rastreamento. Os ambientes de RA tambm podem
ser executados em sistemas baseados em monitor e de projeo, atravs da
combinao da imagem virtual e da imagem real capturada por uma cmera de
vdeo.
Os capacetes de RA podem combinar a imagem virtual e real de duas
maneiras: ptica e vdeo. Em ambos os casos, o sistema deve alinhar os objetos
virtuais com os reais. Esse processo chama-se registro e um dos problemas mais
difceis de se resolver em RA [7].


Tecnologia ptica e de Vdeo
A combinao da imagem real com a imagem virtual pode ser feita de
duas maneiras: tecnologia ptica e de vdeo. Cada uma possui suas vantagens e
desvantagens. Esta seo apresenta as caractersticas de cada tecnologia e aponta
suas diferenas. Em [36], encontra-se mais informaes sobre o assunto.
Os dispositivos mais empregados em sistemas de RA so os visores
montados sobre a cabea do usurio, sejam capacetes, monculos ou outros.
Chamaremos, de forma genrica, esses dispositivos de capacete de RA.
Os capacetes de RA com tecnologia ptica funcionam atravs da
colocao de combinadores pticos na frente do olho do usurio. Esses
combinadores so translcidos, de tal maneira que o usurio consiga enxergar o
mundo real atravs dele. Eles tambm so parcialmente reflexivos para que o
usurio possa ver imagens virtuais geradas por sadas de vdeo acopladas no

33
capacete e refletidas nos combinadores. A Figura 26 apresenta um diagrama
conceitual da tecnologia ptica.

Figura 26: Capacete de RA com tecnologia ptica.
Os capacetes de RA com vdeo funcionam atravs da combinao de um
capacete fechado (como um capacete de RV) e uma ou duas cmeras de vdeo
montadas na cabea do usurio. As cmeras de vdeo iro prover ao usurio a
viso do mundo real. A imagem das cmeras combinada com o grfico virtual e
o resultado enviado para o visor. A Figura 27 ilustra a tecnologia de vdeo.

Figura 27: Capacete de RA com tecnologia de vdeo.
A combinao da imagem real com a imagem grfica pode ser feita
atravs de chroma-keying ou baseada na informao de profundidade. Chroma-
keying consiste na substituio do pano de fundo de uma imagem por outra
imagem. O pano de fundo formado por uma nica cor, digamos verde, que
nenhum objeto virtual utiliza. A combinao substitui a cor verde da imagem
virtual pela imagem do mundo real.
Uma composio mais sofisticada consiste na utilizao da informao de
profundidade da cena real. Se o sistema possuir a informao de profundidade de
cada pixel da imagem real, possvel comparar cada pixel da imagem real com os
da imagem virtual e superpor os objetos virtuais com os objetos reais. Outra
maneira de conseguir esse resultado atravs da posse do modelo tridimensional
da cena. Outras tcnicas de ocluso em ambientes de realidade aumentada so
apresentadas em [15].
Os ambientes de RA tambm podem ser baseados em monitor ou utilizar
sistemas de projeo, ao invs do capacete de RA. A Figura 28 mostra a
configurao desse tipo de sistema. Uma ou mais cmeras, estticas ou mveis,
filmam o ambiente real. No caso mvel, a cmera pode ser presa a um rob cuja

34
posio est sendo rastreada. A imagem de vdeo do mundo real e a imagem
virtual so combinadas da mesma forma dos capacetes de RA com tecnologia de
vdeo, porm a imagem resultante apresentada no monitor ou nas telas de
projeo.

Figura 28: Sistema de RA baseado em monitor.

Ao comparar os trs sistemas de RA, as seguintes caractersticas devem
ser analisadas [7]:

Simplicidade: O sistema ptico possui apenas um fluxo de dados, o
virtual, enquanto o sistema de vdeo deve tratar da captura da imagem de
vdeo e da gerao da imagem virtual. O sistema de vdeo adiciona um
atraso na visualizao da imagem real na ordem de dezenas de
milisegundos. A imagem de vdeo deve estar bem sincronizada com a
imagem virtual para que no ocorra distoro temporal. O sistema de
vdeo apresenta ainda uma distoro proveniente da cmera que deve ser
corrigida. Os sistemas pticos tambm podem apresentar distoro
dependendo das lentes utilizadas, porm so bem menos perceptveis.
Resoluo: A resoluo do sistema de vdeo limitada pela resoluo da
cmera e do visor, ou seja, nos sistemas de vdeo, o mundo real visto
com a resoluo da cmera, enquanto que nos sistemas pticos o mundo
visto como ele . No sistema ptico existe uma perda de iluminao
devido ao fator de reflexo existente no combinador. Dessa forma, quando
desligado, o capacete de RA ptico funciona como culos escuros.
Segurana: O sistema de vdeo substitui a viso do usurio pela imagem
capturada. Se em algum momento o sistema falhar, por falta de energia,
por exemplo, o usurio perde completamente a viso. Esse problema no
ocorre no sistema ptico.
Distncia ocular: No sistema ptico a distncia ocular a verdadeira
distncia entre os olhos do observador. No sistema de vdeo, a distncia
ocular determinada pela distncia entre as duas cmeras de vdeo
utilizadas. Se elas no estiverem na mesma posio dos olhos do
observador, uma disparidade de posicionamento ir surgir.
Tcnicas de composio: Um problema no sistema ptico o dos objetos
virtuais estarem sempre frente dos objetos reais. Uma soluo para isso
seria um dispositivo capaz de bloquear a luz vinda do mundo real, porm
uma soluo muito complexa. Ao contrrio, os sistemas de vdeo

35
combinam a imagem real e a virtual em um processo controlado,
permitindo que diversas tcnicas sejam utilizadas, como o emprego da
informao de profundidade da cena para ocultar os objetos virtuais. Outro
problema o foco, pois a imagem virtual gerada no sistema ptico sempre
est no foco do olho do observador, o que nem sempre verdade, pois o
mesmo pode estar olhando para outra parte da cena real. Para resolver esse
tipo de problema, um sistema de rastreamento do movimento da pupila do
observador dever ser empregado.
Atraso: A tecnologia de vdeo permite reduzir discordncias temporais
entre o mundo real e a imagem virtual. O sistema ptico apresenta a
imagem real instantaneamente, porm a imagem virtual possui um atraso.
Esse atraso pode ser adicionado imagem real no sistema de vdeo,
reduzindo o erro visual.
Registro: Nos sistemas pticos, a nica informao de posio o
rastreador que acompanha o movimento da cabea do usurio. No sistema
de vdeo, tcnicas de viso computacional permitem recuperar a posio e
orientao da cmera.
Brilho e contraste: O sistema de vdeo pode ajustar o brilho e o contraste
da imagem virtual para que os mesmos estejam de acordo com a imagem
virtual. No sistema ptico o controle s feito na imagem virtual.


Registro
O registro de imagens consiste basicamente na determinao dos
parmetros de uma funo de mapeamento que relaciona duas imagens da mesma
cena. O objetivo do registro ressaltar ou eliminar diferenas de interesse entre
essas imagens, geralmente para fins de comparao ou alinhamento das imagens.
As imagens podem ser tomadas em diferentes tempos, de diferentes sensores, ou
de diferentes pontos focais.
O registro de imagens necessrio como etapa preliminar em um grande
nmero situaes relacionadas ao processamento de imagens e viso
computacional, tais como: reconhecimento de padres, sensoriamento remoto,
viso robtica, diagnstico mdico atravs de imagens, realidade aumentada,
reconstruo de volumes, etc.
Os erros de registro so difceis de se controlar adequadamente devido aos
requisitos de preciso e da numerosa quantidade de fontes erros. Os erros podem
ser estticos e dinmicos. Erros estticos so aqueles que causam erros de registro
mesmo quando o ponto de vista do usurio e os objetos do ambiente esto
completamente parados. Os erros dinmicos so aqueles que s aparecem quando
o usurio ou os objetos se movem.
As principais causas de erro esttico so: distoro ptica, erros no sistema
de rastreamento, desalinhamento mecnico (dos combinadores pticos, por
exemplo) e erros nos parmetros de visualizao (centro de projeo, dimenses
da janela, diferena entre a posio e orientao do rastreador e da cmera, campo
de viso).
Os erros dinmicos ocorrem devido a atrasos no sistema. O atraso
medido desde o instante no qual foi registrada uma medida do rastreador at o
instante em que a imagem final chegou aos olhos do usurio. O erro dinmico
percebido quando o usurio mexe a cabea e a cena virtual fica parada,

36
comeando a se mover alguns instantes depois. Esse erro pode causar bastante
desconforto para o usurio dos sistemas de RA e deve ser corrigido. As maneiras
de amenizar o erro so: reduzir o atraso diretamente, atravs de tcnicas de
otimizao; prever o movimento do usurio, renderizando a cena atravs da
posio prevista ao invs da posio medida [8]; ou sincronizar os quadros da
imagem real e virtual atravs de sistemas de vdeo.


Aplicao
A Realidade Aumentada e a Realidade Virtual so tecnologias que vm
sendo empregadas nas mais diversas reas.
Na medicina, atravs da simulao cirrgica, visualizao de imagens de
ultra-som sobre o corpo do paciente, estudo de anatomia, entre outros. A Figura
29 ilustra a visualizao em tempo real de uma biopsia em uma mama.


Figura 29: Visualizao em tempo real de uma biopsia em uma mama.
Fonte: Comp. Science Dept., Univ. of North Carolina.
Na rea de manuteno e construo, marcadores podem ser anexados a
objetos onde as pessoas esto trabalhando e o sistema de realidade aumentada
pode mostrar as instrues de manuteno.
Os militares tm empregado a realidade virtual e a realidade aumentada no
intuito de prover tropa informaes vitais sobre seus arredores. Vrios exemplos
podem ser citados: construes inimigas podem ser marcadas virtualmente atravs
de dados obtidos pela inteligncia; regies minadas podem ser rastreadas e
identificadores virtuais colocados sobre o solo; a simulao de um tiro de
artilharia pode ser executada e a regio atingida pode apresentar uma exploso
virtual, juntamente com os dados de correo do tiro; movimentos de tropas
inimigas que esto camufladas podem ser previstos e apresentados na forma
virtual; apresentao do mapa de batalha virtual (Figura 30), simuladores de vo,
entre outros.

37

Figura 30: Visualizao do campo de batalha em uma Workbench.
Fonte: US Naval Research Laboratory.
A RA pode ainda ser empregada na rea de educao e informao.
Eventos histricos podem ser recriados em ambientes de sala de aula e museu,
permitindo que crianas e adultos possam participar da Histria.
H tambm, obviamente, aplicaes de RV e RA na rea de
entretenimento, onde personagens de jogos de aventura podem aparecer sobre
uma mesa [42] ou, com o auxlio de equipamentos portteis, o jogador pode sair
pela rua perseguindo inimigos, como no jogo ARQuake [33].
Os sistemas de realidade virtual vieram para revolucionar a forma como
ns interagimos com sistemas complexos em computador. As aplicaes so
muitas e difcil predizer onde os ganhos e os benefcios da Realidade Virtual
sero mais significativos. O certo que no haver um nico padro nas interfaces
de RV. A tecnologia e as limitaes de custos faro com que o tipo de aplicao
defina o nvel de sofisticao da tecnologia a ser aplicada.
Neste cenrio, muitas aplicaes, na busca de solues para problemas
especficos, acabaro por gerar novos usos e solues para problemas de outras
reas.

Ferramentas
Os sistemas de RV precisam de um software para apresentar aplicao
para o usurio final. Os softwares de RV so complexos, pois os dispositivos de
RV so complexos. A fim de facilitar a criao de aplicaes de RV varias
solues foram sendo criadas com o intuito de prover um ambiente de
desenvolvimento para RV. Um ambiente de desenvolvimento permite que o
usurio se concentre no desenvolvimento da aplicao de RV ao invs de se
preocupar na gerncia do ambiente de RV.
O ambiente de desenvolvimento de RV define uma arquitetura que inclui
componentes para gerncia de dispositivos de entrada, apresentao das sadas
visual, auditiva e outras, alm de um mecanismo de configurao. Alguns
ambientes ainda estendem a arquitetura a fim de gerenciar tambm recursos como,
alocao de memria, multi-tarefas e comunicao.
Existem ainda ambientes de desenvolvimento de RA cuja finalidade
abstrair a etapa de calibrao da cmera e reconhecimento de padres atravs do
fornecimento de uma matriz de transformao que ir posicionar corretamente os
objetos do mundo virtual sobre o ambiente real.

38
Vrias ferramentas para desenvolvimento de aplicaes em RV e RA
existem disponveis comercialmente ou gratuitamente, entre elas, o Avango [41],
Vess [12], Diverse [5], VRJuggler [9], ViRAL (Virtual Reality Abstraction
Layer), ARToolkit [24] e OpenCV [22]. Neste trabalho foram analisados o
VRJuggler e o ViRAL. As outras bibliotecas serviram como referncia para
pesquisa, mas no foram profundamente analisadas.


VRJuggler
O VRJuggler uma biblioteca de realidade virtual, com cdigo aberto,
multi-plataforma e independente de dispositivo [9]. Ela fornece uma abstrao dos
dispositivos de entrada e sada.
Junto a ela, qualquer biblioteca de grafo de cena (OpenGL Performer,
OpenSceneGraph, OpenSG) pode ser usada para renderizar a cena, porm a
integrao do VRJuggler com essas bibliotecas exige que toda a biblioteca seja
recompilada.
O VRJuggler composto de vrios mdulos, sendo vrj, jccl, gadgeteer e
vpr os principais. O mdulo vrj responsvel pela integrao dos outros mdulos.
Ele fornece uma camada acima do sistema operacional, permitindo que uma
aplicao desenvolvida com o VRJuggler possa executar em diferentes sistemas,
no s sistemas operacionais, mas em diversos sistemas de RV, como em um
monitor, em uma CAVE ou em um HMD.
O mdulo jccl um sistema de configurao baseado em XML. O usurio
utiliza arquivos de configurao para definir quais os dispositivos de entrada sero
utilizados e a disposio dos dispositivos de sada. O desenvolvedor no precisa
se preocupar com qual dispositivo o usurio ir utilizar para interagir com a
aplicao, ou como ele ir visualiz-la. Baseado nos arquivos de configurao, a
biblioteca carrega os drivers adequados.
O mdulo gadgeteer o sistema de gerncia de dispositivos. Ele trata da
configurao, controle, aquisio e representao do dado dos dispositivos de RV.
Finalmente, o mdulo vpr responsvel por prover uma abstrao
independente de plataforma para threads, sockets (TCP/UDP) e comunicao
serial.
Uma aplicao no VRJuggler um objeto e sua classe deve derivar da
classe de aplicao da biblioteca. A Figura 31 ilustra as principais classes de
aplicao disponveis nativamente no VRJuggler.

39

Figura 31: Hierarquia de classes de aplicao do VRJuggler.
A classe vrj::App uma interface que define os principais mtodos que
uma aplicao deve implementar. A classe vrj::GlApp , tambm, uma interface
para uma aplicao que ir utilizar OpenGL, e a classe vrj::PfApp uma interface
para uma aplicao que ir utilizar Perfomer. Derivadas de vrj::GlApp esto as
aplicaes que utilizam grafos de cena para renderizao, como a vrj::OsgApp
que utiliza o OpenSceneGraph e a vrj::OpenSGApp, utilizando o OpenSG.
Ao definir a interface da aplicao, o VRJuggler tem controle do lao
principal aplicao. A funo main de uma aplicao desenvolvida com o
VRJuggler deve ser algo do tipo:

#include <vrj/Kernel/Kernel.h>
#include <simpleApp.h>
int main( int argc, char *argv[] )
{
1 vrj::Kernel *kernel=vrj::Kernel::instance(); // Get the kernel
2 simpleApp *app = new SimpleApp(); // Create the app object
3 kernel->loadConfigFile(...); // Configure the kernel
4 kernel->start(); // Start the kernel thread
5 kernel->setApplication( app ); // Give application to kernel
kernel->waitForKernelStop(); // Block until kernel stops
return 0;
}
Tabela 2: Funo main de uma aplicao utilizando o VRJuggler.
A linha identificada como 1 na Tabela 2 retorna o objeto ncleo (kernel)
do VRJuggler. Na linha 2, um objeto da aplicao (SimpleApp) instanciado. Na
linha 3, os arquivos de configurao so passados para o objeto kernel para que
ele se configure. Na linha 4, o VRJuggler comea a ser executado. Nesse
momento, o kernel cria uma nova thread de execuo e comea o seu
processamento interno. Qualquer mudana de estado do kernel a partir de agora

40
exige uma reconfigurao do VRJuggler, seja atravs da incluso de novos
arquivos de configurao ou da mudana da aplicao ativa. A aplicao que seria
executada pelo kernel foi configurada na linha 5.
A Tabela 3 apresenta algumas vantagens e desvantagens no uso da
biblioteca VRJuggler:

Vantagens Desvantagens
Cdigo aberto;
Multi-plataforma, multi-dispositivos de RV;
Abstrao dos dispositivos atravs de
arquivos de configurao;
Desenvolvimento da aplicao simples,
bastando criar uma classe que derivar de
alguma das inter-faces ilustradas na Figura
31;
Compilao de uma nova aplicao
bastante rpida (tendo j os arquivos
binrios pr-compilados do ncleo do
VRJuggler).

O arquivo de configurao no fcil de ser
editado manualmente;
A interface de edio de arquivos de
configurao, desenvolvida em Java,
complicada e no permite que novos
dispositivos sejam configura-dos atravs
dela;
A compilao dos mdulos do VRJuggler
bastante complicada, exigindo que sejam
sempre utilizados os arquivos binrios pr-
compilados;
O VRJuggler depende de muitas bibliotecas
externas, tornando ainda mais difcil a sua
compilao;
O usurio no possui controle do lao
principal da aplicao;
Uma aplicao desenvolvida com o
VRJuggler completamente imersiva, ou
seja, no possvel utilizar ao mesmo tempo
o VRJuggler e um sistema de dilogos
(menus, listas, botes, etc.);
Os eventos gerados pelos dispositivos de
entrada so pr-definidos e no podem ser
estendidos.
Tabela 3: Vantagens e desvantagens do VRJuggler.

ViRAL (Virtual Reality Abstraction Layer)
O ViRAL uma ferramenta utilizada para facilitar o desenvolvimento de
aplicaes de RV. As aplicaes criadas com o ViRAL so independentes de
dispositivo porque o ViRAL abstrai o contexto onde elas sero executadas. As
aplicaes que utilizam o ViRAL no precisam saber, por exemplo, em quantas
janelas, com quantos usurios ou com quais dispositivos ela ir executar. Todas
essas variveis so configuraes definidas pelo operador.
O ViRAL pode ser usado de duas maneiras: como a aplicao principal ou
embutido (embedded). Ao ser executado como a aplicao principal, ele carrega

41
as suas janelas e menus e os diversos plugins criados pelos desenvolvedores,
sendo um deles a aplicao propriamente dita. Um plug-in um arquivo utilizado
para alterar, melhorar ou estender as operaes de uma aplicao principal (no
caso, o ViRAL).
A segunda maneira de se utilizar o ViRAL embuti-lo em uma aplicao.
O ViRAL funciona como escravo e a aplicao principal o mestre. O ViRAL
possui seis sistemas que podem ser utilizados embutidos em uma aplicao, sendo
eles, o sistema de ambiente, usurio, janela, dispositivo, cena e plug-in.

Sistema de Cenas
Uma cena uma aplicao que carregada com um plug-in pelo ViRAL.
O sistema de cenas o mais simples de todos. Ele unicamente responsvel por
armazenar todas as cenas que foram carregadas pelo sistema de plugins.

Sistema de Usurio
O termo usurio no ViRAL se refere entidade que est visualizando
a cena, ou seja, ele uma cmera no mundo virtual. Um usurio pode ser a
viso de uma pessoa real posicionada em uma CAVE, uma viso externa dessa
pessoa, ou uma cmera mvel, por exemplo.
O usurio possui como atributos a distncia entre os olhos (para
visualizao estereoscpica), a orientao da cabea e a posio e orientao do
corpo. Outro atributo importante que o usurio possui a cena da qual ele ir
participar. Alm disso, o usurio pode estar acompanhado de vrias superfcies
de projeo. A Figura 32 ilustra a interface de configurao de usurio.

Figura 32: Interface de configurao de usurio no ViRAL.


42
Sistema de Janela
Uma aplicao mestre (ou um plug-in de cena), pode ser executada em
diversas configuraes de janelas. Para cada janela est associada uma projeo.
A projeo a conexo da janela com a cena, pois uma projeo pertence ao
usurio e o usurio contm uma cena.
Uma janela possui um Canal que define como ser exibida a projeo: viso
mono, do olho esquerdo, do olho direito ou em estreo. A Figura 33 ilustra a
interface de configuraes de janelas no ViRAL.

Figura 33: Interface de criao de janelas no ViRAL.

Sistema de Plug-in
No ViRAL existem 3 tipos de plugins: de dispositivo, de cena e de objeto
de cena. Cada um desses plugins herdam de uma classe especfica do ViRAL e
exportam seus mtodos. O sistema de plugins responsvel pelo carregamento
dinmico e conexo de eventos. A Figura 34 mostra alguns plugins que foram
carregados pelo sistema.


43

Figura 34: Gerenciador de plugins do ViRAL.
Um dispositivo novo criado como uma biblioteca de carregamento
dinmico. Nessa biblioteca, o desenvolvedor deve criar uma classe que herda sua
interface da classe vral::Device. A Tabela 4 mostra a interface dessa classes e os
principais mtodos que devem ser implementados.

namespace vral : public Object
{
class Device
{
virtual const Object * getSender() const;
virtual const Object * getReceiver() const;
virtual void dispatchChanges() = 0;
virtual QWidget * loadPropertyFrame();
};
}
Tabela 4: Interface da classe vral::Device.
De baixo para cima, o mtodo loadPropertyFrame responsvel por
retornar o dilogo (QWidget) do Qt de configurao daquele dispositivo. A Figura
35 ilustra o dilogo de configurao de uma luva de realidade virtual. O mtodo
dispatchChanges transmite os eventos de um dispositivo, geralmente uma vez a
cada passo de execuo. O sistema de eventos no ViRAL utiliza o mecanismo de
signal/slot do Qt. Esse mecanismo utilizado para comunicaes entre objetos.
Os sinais (signals) so emitidos por objetos quando os mesmo mudam de estado.
As aberturas (slots) so utilizadas para receber sinais.

44

Figura 35: Configurao de uma luva de RV no ViRAL.
Os mtodos getSender e getReceiver so utilizados para implementao de
uma mecanismo de redirecionamento (proxy). Um exemplo de uso desse
mecanismo quando se desejar transformar um usurio do ViRAL em um
dispositivo. O usurio no um dispositivo, mas a partir de um dispositivo de
redirecionamento, os eventos podem ser enviados a ele. Dessa forma possvel
modificar a orientao e a posio do usurio atravs de um dispositivo de RV.
Os plugins de cena e de objetos de cena possuem o mesmo princpio de
funcionamento dos plugins de dispositivo, porm as interfaces desses plugins so
definidas pelas classes vral::Scene e vral::SceneObject, como visto na tabela
Tabela 5.


namespace vral
{
class SceneObject : public Object
{
virtual QWidget * loadPropertyFrame() = 0;
};

class Scene : public SceneObject
{
virtual bool isReady() const = 0;
virtual bool checkTranslation() = 0;

virtual void initializeContext() = 0;
virtual void preDrawImplementation);
virtual void drawImplementation();
};
}
Tabela 5: Interface das classes vral::Scene e vral::SceneObject.

45
No ViRAL existe uma hierarquia que define quem cena e quem objeto
de cena. Uma cena a raiz dessa hierarquia e todos os seus filhos so objetos
dessa cena. O mtodo loadPropertyFrame carrega o dilogo de configurao do
objeto de cena. isReady informa ao ViRAL que a cena est pronta para ser
executada. O mtodo checkTranslation valida uma movimentao dentro do
ViRAL.
As cenas so responsveis por configurar o estado do OpenGL para que o
ViRAL possa utiliz-lo para renderizao. Para isso existe o mtodo
initializeContext. Os mtodos preDrawImplementation e drawImplementation tm
por finalidade atualizar a cena e renderiz-la, respectivamente. O ViRAL calcula
automaticamente as matrizes para serem carregadas pelo OpenGL baseado nas
configuraes de projeo e do modo de exibio de um canal.
A Figura 36 ilustra a interface de configurao de uma cena com um
objeto de cena.


Figura 36: Interface de configurao de uma cena: armScene01 uma cena e arm01
um objeto de cena.

Sistema de Dispositivo
O sistema de dispositivo responsvel pela conexo e transmisso de
eventos. Os eventos so conectados atravs da interface ilustrada na Figura 37. A
cada quadro o ViRAL chama o mtodo dispatchChanges dos seus plugins. Apesar
dos plugins poderem funcionar em threads independentes, os dados s devem ser
transmitidos mediante essa chamada de mtodo.


46

Figura 37: Interface de conexo de eventos no ViRAL.


Sistema de Ambiente
O Sistema de Ambiente responsvel pela gravao e leitura de dados de
uma configurao do ViRAL. Ele armazena os arquivos utilizando um formato
XML comprimido.
Esse sistema visita todos os objetos instanciados dentro do ViRAL
(dispositivos, janelas, cenas, etc.) e grava as suas informaes utilizando um
padro de projeto chamado Memento [21]. Todo plug-in criado para o ViRAL
deve implementar dois mtodos herdados de sua classe base. A Tabela 6 ilustra
como um plug-in de cena grava e recupera as informaes de um arquivo. A
classe vral::DataNode a classe que implementa o padro Memento.

47

class CaptureDevice : public vral::Device
{
// Mtodos para gravao e leitura de dados
virtual void getMemento( vral::DataNode &node )
{
// include the parent's memento
Object::getMemento( node );

node.setInt( "gridSize", mGridSize );
node.setInt( "cameraNumber", mCameraNumber );
}
virtual void setMemento( const vral::DataNode &node )
{
mGridSize = node.getInt( "gridSize" );
mCameraNumber = node.getInt( "cameraNumber" );
}

// Atributos que devem ser gravados
int mCameraNumber;
int mGridSize;
}
Tabela 6: Plug-in de cena com mtodos de gravao e leitura de arquivo.
A Figura 38 ilustra a interface de carregamento de um ambiente dentro do
ViRAL.

Figura 38: Carregando um ambiente no ViRAL.


48
Vantagens e Desvantagens
A Tabela 7 apresenta algumas vantagens e desvantagens da utilizao do
ViRAL. A utilizao do Qt [35] pelo ViRAL traz uma grande vantagem que a
rpida construo de interfaces grficas, multi-plataforma.

Vantagens Desvantagens
Interface grfica atravs do Qt.
Uso de sistema de plugins;
Uso embutido permite integrar aplicaes
desktop e aplicaes imersivas;
Rpido desenvolvimento de novos plugins;
Criao de eventos arbitrrios permitindo
programao de componentes;
Reconfigurao em tempo de execuo.
Exige conhecimento de orientao a objeto,
tornando o uso para leigos mais demorado;
Novas aplicaes ou plugins devem ser
desenvolvidas com Qt, que uma
ferramenta comercial;
Tabela 7: Vantagens e desvantagens do ViRAL.





49
Concluso
Este documento teve como um dos objetivos apresentar o conceito de
grafo de cena e mostrar sua importncia para a visualizao em tempo real. A
visualizao em tempo real , por sua vez, requisito bsico de aplicaes de
realidade virtual.
A introduo a conceitos bsicos de RV foi outro dos objetivos do texto,
que fez um apanhado geral dos tipos de RV, dispositivos utilizados e tecnologias
correlatas, como a realidade aumentada.
Finalmente, foram apresentadas duas ferramentas de software para a
gerao de aplicaes de RV utilizando a noo de abstrao de dispositivos,
caracterstica fundamental nas ferramentas de RV atuais.
Foram apresentados o VRJuggler, que uma das ferramentas mais
conhecidas internacionalmente e o ViRAL, desenvolvido no TecGraf/PUC-Rio
para suprir algumas necessidades encontradas com o uso do VRJuggler.
A utilizao do ViRAL mostrou-se bastante fcil e rpida, apesar de exigir
conhecimentos mais avanados de orientao a objetos, padres de projeto e
programao de componentes.
A combinao de grafos de cena e ferramentas de realidade virtual est se
consolidando como uma das maneiras de se desenvolver aplicaes em ambientes
complexos de navegao e interao. Esse fato muito importante, pois ambas as
tecnologias procuram fornecer uma interface de mais alto nvel, restando ao
desenvolvedor apenas a imaginao para criar novas aplicaes.





Referncias Bibliogrficas

1 AGRAWALA, M., BEERS, A., FROEHLICH, B., HAN- RAHAN, P., MCDOWALL, I., AND BOLAS,
M. The Two-User Responsive Workbench: Support for Collaboration through Individual Views of a
Shared Space. In Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH, p. 327-
332, Los Angeles, 1997.
2 AKENINE-MLLER, T., HAINES, E. Real-time Rendering. 2 edio, A K Peters, Massachusetts, 2002.
3 ALLARD, J., GOURANTON, V., LAMARQUE, G., MELIN, E., RAFFIN, B. Softgenlock: Active Stereo
and GenLock for PC Cluster. VII International Immersive Projection Technologies Workshop, IX
Eurographics Workshop on Virtual Environments, 2003.
4 ARAJO, R. B. Especificao e anlise de um sistema distribudo de realidade virtual. Tese de
Doutorado, Departamento de Engenharia de Computao e Sistemas Digitais, Escola Politcnica da
Universidade de So Paulo, So Paulo, Junho, 1996.
5 ARSENAULT, L., KELSO, J., KRIZ, R., DAS-NEVES, F. DIVERSE: a Software Toolkit to Integrate
Distributed Simulations with Heterogeneous Virtual Environments. Technical Report TR-01-10,
Computer Science, Virginia Tech, 2001.
6 AUKSTAKALNIS, S., BLATNER, D. Silicon Mirage: The Art and Science of Virtual Reality. Editora
Peatchpit Press, Berkeley, CA, 1992.
7 AZUMA, R. T. A Survey of Augmented Reality. In Presence: Teleoperators and Virtual Environments,
pp. 355-385, Agosto, 1997.
8 AZUMA, R., BISHOP. G. Improving Static and Dynamic Registration in a See-Through HMD.
Proceedings of SIGGRAPH, In Computer Graphics, Annual Conference Series, pp. 197-204, 1994.
9 BIERBAUM, A. VR Juggler: A Virtual Platform for Virtual Reality Application Development.
Master Thesis, Iowa State University, 2000
10 BURDEA, G., COIFFET, P. Virtual Reality Technology. Editora John Wiley & Sons, Nova Iorque, 1994.
11 CRUZ-NEIRA, C., SANDIN, D. J., DEFANTI, T. A. Surround-Screen Projection-Based Virtual
Reality: The Design and Implementation of the CAVE. ACM Computer Graphics, vol. 27, nmero 2 ,
pp 135-142, Julho, 1993.
12 DALY, J., KLINE, B., MARTIN, G. A. VESS: Coordinating Graphics, Audio, and User Interaction in
Virtual Reality Applications. IEEE Virtual Reality, Maro, 2002.
13 Demeter Terrain Engine. http://demeter.sf.net (Janeiro 2004).
14 FERREIRA, A. G. Uma Arquitetura para a Visualizao Distribuda de Ambientes Virtuais.
Dissertao de Mestrado, PUC/RJ, 1999.
15 FUHRMANN, A. HESINA, G., FAURE, F., GERVAUTZ, M. Occlusion in Collaborative Augmented
Environments. Proceedings 5
th
Eurographics Workshop on Virtual Environments, pp. 179-190, 1999.
16 GAMMA, E., HELM, R., JOHNSON, R., VLISSIDES, J. Design Patterns - elements of reusable object-
oriented software. Addison-Wesley Longman, Inc., 1995.
17 GIBSON, W. Neuromancer. Editora Ace Books, 1984.


18 GOURAUD, H. Continuous Shading of Curved Surfaces. IEEE Transactions on Computers, C-
20(6):623-629, Junho, 1971.
19 GREENE, N., KASS, M., MILLER, G. Hierarchical Z-Buffer Visibility. Computer Graphics, volume 27,
Annual Conference Series, pp. 231-238, 1993.
20 How does the DTI display work? Dimension Technologies Inc.
http://www.dti3d.com/technology.asp (Dezembro 2003)
21 HUDSON, T., et al. Accelerated Occlusion Culling using Shadow Frusta. Symposium on Computational
Geometry, pp. 1-10, 1997.
22 Intel Open Source Computer Vision Library. Intel Research.
http://www.intel.com/research/mrl/research/opencv (Janeiro 2004).
23 JACOBSON, L. Virtual Reality: A Status Report. AI Expert, pp. 26-33, Agosto, 1993.
24 KATO, H., BILLINGHURST, M., POUPYREV, I., TACHIBANA, K. Virtual Object Manipulation on a
Table-Top AR Environment. In Proceedings of ISAR, Outubro, 2000.
25 KRUEGER, M. W. Artificial Reality II. Editora Addison-Wesley, Massachussets, 1991.
26 LUEBKE, D., et al. Level of Detail for 3D Graphics. Morgan Kaufmann; 1 edio, Julho, 2002.
27 MATOS, A., GOMES, J., PARENTE, A., SIFFERT, H., VELHO, L., O sistema Visorama: Um novo
sistema de Multimdia e Realidade Virtual. II Workshop Multimedia and Hypermedia System, So
Carlos, Brasil, Maio 1997.
28 MORIE, J. F. Inspiring the Future: Merging Mass Communication, Art, Entertainment and Virtual
environments. ACM SIGGRAPH Computer Graphics, 28(2), pp. 135-138, Maio 1994.
29 OpenGL

- The Industry Standard for High Performance Graphics http://www.opengl.org
(Janeiro 2004).
30 OpenGL Performer Getting Started Guide. SGI Document Number 007-3560-004, Janeiro, 2004.
31 OsgVortex Simulation Framework http://www.vrlab.umu.se/research/osgvortex/
(Janeiro 2004).
32 PHONG, B. Illumination for Computer Generated Pictures. CACM, 18(6), Junho, 1975.
33 PIEKARSKI, W., THOMAS, B. ARQuake: the Outdoor Augmented Reality Gaming System. Comm.
ACM, vol. 45, no. 1, pp. 36-38, Janeiro 2002.
34 POULIN, P., FOURNIER, A. A Model for Anisotropic Reflection. Proc. Siggraph, Agosto, 1990.
35 Trolltech - Creators of Qt - The multi-platform C++ GUI/API.
http://www.trolltech.org/ (Fevereiro 2004).
36 ROLLAND, J., HOLLOWAY, R., FUCHS, H. A Comparison of Optical and Video See-Through Head-
Mounted Displays. SPIE Proceedings volume 2351: Telemanipulator and Telepresence Technologies, pp
293-307, 1994.
37 SHERMAN, W. R., CRAIG, A. B. Understanding Virtual Reality: Interface, Application, and Desing.
Editora Morgan Kaufmann, 2003.


38 SILVA, M. H. Tratamento Eficiente de Visibilidade Atravs de rvores de Volumes Envolventes.
Dissertao de Mestrado, PUC/RJ, 2002.
39 STEFANI, O., HOFFMANN, H., RAUSCHENBACH, J. Design of Interaction Devices for Optical
Tracking in Immersive Environments. In: Human-Centred Computing: Cognitive, Social and Ergonomic
Aspects, Volume 3 of the Proceedings of HCI International, Junho 2003.
40 SUTHERLAND, I. Sketchpad: The First Interactive Computer Graphics. Tese de Ph.D., Mass.
Institute of Technology, 1963.
41 TRAMBEREND, H. Avango: A Distributed Virtual Reality Framework. Proceedings of Afrigraph '01,
ACM, 2001.
42 ULBRICHT, C., SCHMALSTIEG, D. Tangible Augmented Reality for Computer Games. Relatrio
Tcnico TR-186-2-03-02, Institute of Computer Graphics and Algorithms, Vienna University of
Technology, Fevereiro, 2003.
43 WALSH, A. E. Understanding Scene Graphs. Dr Dobbs Journal, 27:7, 17-26, 2002.
44 WOO, M., NEIDER, J. DAVIS, T., SHREINER, D. OpenGL(R) Programming Guide: The Official
Guide to Learning OpenGL, Version 1.2. Addison-Wesley Pub Co, 3 edio, Agosto, 1999.
45 ZHANG, H., MANOCHA, D., HUDSON, T., HOFF, K. Visibility Culling using Hierarchical Occlusion
Maps, Computer Graphics SIGGRAPH 97 Proceedings, pp. 77-88, Agosto 1997.

Você também pode gostar