Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
18 Revisão bibliográfica<br />
quantida<strong>de</strong> <strong>de</strong> oclusão <strong>de</strong> visibilida<strong>de</strong>.<br />
2.2.1 Open Inventor e OpenGL Performer<br />
A mais popular das bibliotecas gráficas baseadas em grafo <strong>de</strong> cena é o Open Inventor [Wer-<br />
necke, 1994], produzida pela mesma <strong>de</strong>senvolvedora do OpenGL, a SGI - Silicon Graphics, Inc. [SGI,<br />
2007b], e <strong>de</strong>rivada do IRIS Inventor [Strauss, 1993]. Sua introdução no mercado teve como objetivo<br />
estimular o <strong>de</strong>senvolvimento <strong>de</strong> novas aplicações baseadas em OpenGL, uma vez que muitas apli-<br />
cações <strong>de</strong>ixavam <strong>de</strong> utilizar o OpenGL em razão da dificulda<strong>de</strong> <strong>de</strong> aprendizado para <strong>de</strong>senvolvedores<br />
pouco familiarizados com teoria <strong>de</strong> Computação Gráfica <strong>3D</strong>. Com o Open Inventor, aplicações <strong>de</strong><br />
gráficos <strong>3D</strong> com interação po<strong>de</strong>riam ser criadas com mais facilida<strong>de</strong> e em menor tempo <strong>de</strong> <strong>de</strong>sen-<br />
volvimento.<br />
O Open Inventor é constituído <strong>de</strong> uma biblioteca em C++ e fornece uma camada <strong>de</strong> abstração <strong>de</strong><br />
alto nível para visualização e interação usando OpenGL. Novos objetos são criados a partir <strong>de</strong> ob-<br />
jetos mais simples (e.g, caixas, esferas, cilindros) <strong>de</strong>finidos como nós <strong>de</strong> um grafo dirigido acíclico.<br />
Relações <strong>de</strong> hierarquia são utilizadas para encapsular objetos mais complexos e criar roteiros <strong>de</strong><br />
animação. A <strong>de</strong>terminação <strong>de</strong> visibilida<strong>de</strong> também é realizada internamente, e um conjunto <strong>de</strong> fer-<br />
ramentas <strong>de</strong> manipulação é disponibilizado ao <strong>de</strong>senvolvedor para criar funcionalida<strong>de</strong>s <strong>de</strong> interação<br />
usando manipulação direta.<br />
O Open Inventor está baseado fundamentalmente numa base <strong>de</strong> dados que contém uma represen-<br />
tação da cena <strong>3D</strong> (o scene database) como um grafo. Cada elemento (chamado <strong>de</strong> no<strong>de</strong>) <strong>de</strong>sse grafo<br />
representa um <strong>de</strong>terminado objeto, que po<strong>de</strong> ser uma forma geométrica (shape no<strong>de</strong>), um atributo da<br />
forma geométrica (property no<strong>de</strong>) ou um nó que conecta outros nós em grafos e subgrafos (group<br />
no<strong>de</strong>). Também são disponibilizados nós que representam câmeras e luzes. As ações realizadas sobre<br />
as formas geométricas são igualmente tratadas como objetos.<br />
A aplicação <strong>de</strong> uma ação a uma <strong>de</strong>terminada cena <strong>de</strong>fine um objeto que percorre, em profundi-<br />
da<strong>de</strong>, o grafo <strong>de</strong> cena. Esse novo objeto é utilizado para realizar operações tais como ren<strong>de</strong>rizar a<br />
cena, calcular o volume envoltório <strong>de</strong> um objeto ou grupo <strong>de</strong> objetos, realizar uma procura ou gravar<br />
a cena em arquivo. O comportamento po<strong>de</strong> ser especificado pelo próprio nó, impondo à ação um<br />
<strong>de</strong>terminado modo <strong>de</strong> travessia do subgrafo subseqüente.<br />
Determinados nós do group no<strong>de</strong> funcionam como separadores (separator no<strong>de</strong>s), e têm a pro-<br />
prieda<strong>de</strong> <strong>de</strong> gravar o estado atual do grafo, restaurando-o após a passagem da ação. A utilização<br />
<strong>de</strong>ssa separação é <strong>de</strong>sejável quando ocorrem várias instâncias <strong>de</strong> um mesmo objeto na mesma cena,<br />
impedindo que a alteração <strong>de</strong> um <strong>de</strong>les implique na alterações dos outros. O Open Inventor também<br />
permite reunir características <strong>de</strong> uma cena em um subgrafo chamado no<strong>de</strong> kit, que po<strong>de</strong> ser utilizado<br />
e repetido arbitrariamente na cena principal.