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.

3.2 Estudo <strong>de</strong> casos 51<br />

forma assíncrona com o processamento na CPU, o que possivelmente aumenta o <strong>de</strong>sempenho geral<br />

da aplicação, uma vez que esta po<strong>de</strong> realizar outras tarefas enquanto a consulta <strong>de</strong> visibilida<strong>de</strong> está<br />

sendo realizada. Esta funcionalida<strong>de</strong> po<strong>de</strong> ser utilizada para implementar um algoritmo <strong>de</strong> seleção<br />

eficiente que leva em consi<strong>de</strong>ração tanto a <strong>de</strong>formação <strong>de</strong> geometria com relação aos vértices como<br />

com relação aos fragmentos produzidos no rasterizador. Inicialmente, as dimensões do volume <strong>de</strong><br />

visualização são reduzidas <strong>de</strong> modo a envolver apenas o pixel apontado pelo cursor. Todos os obje-<br />

tos são ren<strong>de</strong>rizados em um buffer <strong>de</strong> ren<strong>de</strong>rização não visível, com escrita habilitada no buffer <strong>de</strong><br />

profundida<strong>de</strong>. Os objetos são então ren<strong>de</strong>rizados mais uma vez, <strong>de</strong>sta vez sem escrita ao buffer <strong>de</strong><br />

profundida<strong>de</strong>, mas com o teste <strong>de</strong> profundida<strong>de</strong> habilitado <strong>de</strong> modo a <strong>de</strong>scartar fragmentos que estão<br />

sendo encobertos por objetos já ren<strong>de</strong>rizados. Para cada objeto ren<strong>de</strong>rizado, habilita-se a consulta <strong>de</strong><br />

visibilida<strong>de</strong> <strong>de</strong> modo a verificar se algum fragmento foi ren<strong>de</strong>rizado. Os objetos selecionados serão<br />

aqueles que produziram fragmentos visíveis segundo o teste <strong>de</strong> visibilida<strong>de</strong>. Embora seja eficiente,<br />

essa abordagem não é capaz <strong>de</strong> retornar informações adicionais sobre os pontos visíveis da superfície,<br />

como posição <strong>3D</strong> e vetor normal. Dessa forma, não po<strong>de</strong> ser utilizada para implementação <strong>de</strong> tarefas<br />

<strong>de</strong> posicionamento com restrição e prover realimentação visual apropriada (seção 3.2.2).<br />

Apesar das diversas formas para realizar uma seleção, o método <strong>de</strong> ray picking é ainda popular<br />

em aplicações <strong>de</strong> mo<strong>de</strong>lagem geométrica, animação, pintura <strong>3D</strong> e jogos. Esta popularida<strong>de</strong> se <strong>de</strong>ve<br />

ao fato <strong>de</strong>le também permitir retornar todos os objetos intersectados pelo raio <strong>de</strong> seleção, incluindo os<br />

objetos não visíveis ao observador, na forma <strong>de</strong> um conjunto <strong>de</strong> valores que i<strong>de</strong>ntificam tais objetos.<br />

Dentre os principais aplicativos <strong>de</strong> mo<strong>de</strong>lagem geométrica que adotam a estratégia <strong>de</strong> ray picking<br />

po<strong>de</strong>mos citar Auto<strong>de</strong>sk AutoCAD [Auto<strong>de</strong>sk, 2007b], Auto<strong>de</strong>sk 3ds Max [Auto<strong>de</strong>sk, 2007a] e Au-<br />

to<strong>de</strong>sk Maya [Auto<strong>de</strong>sk, 2007c]. Em relação aos principais aplicativos <strong>de</strong> pintura <strong>3D</strong> temos o Right<br />

Hemisphere Deep Creator/Deep Paint <strong>3D</strong> [Hemisphere, 2007], Pixologic ZBrush [Pixologic, 2007]<br />

e Interactive Effects Amazon Paint [Effects, 2007]. Seu uso também é extensivo em jogos, uma vez<br />

que as principais bibliotecas <strong>de</strong> suporte ao <strong>de</strong>senvolvimento <strong>de</strong> jogos, chamadas <strong>de</strong> game engines,<br />

disponibilizam funcionalida<strong>de</strong>s <strong>de</strong> interação baseadas em testes <strong>de</strong> interseção. Nesta categoria estão<br />

incluídas bibliotecas tais como o Torque Game Engine [GarageGames, 2007], <strong>3D</strong> GameStudio [Data-<br />

systems, 2007], Irrlicht Engine [Gebhardt, 2007], além das bibliotecas <strong>de</strong> grafo <strong>de</strong> cena tais como o<br />

OpenSceneGraph [OpenSceneGraph, 2007] e OpenSG [OpenSG, 2007].<br />

Do nosso estudo, verificamos que os únicos atributos necessários para realizar uma tarefa <strong>de</strong> se-<br />

leção usando um dispositivo apontador 2D são os valores <strong>de</strong> i<strong>de</strong>ntificação dos mo<strong>de</strong>los ren<strong>de</strong>rizados.<br />

Esses valores <strong>de</strong>vem ser disponibilizados nos pixels associados à posição corrente do cursor 2D.

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

Saved successfully!

Ooh no, something went wrong!