03.04.2013 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!