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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

16 Revisão bibliográfica<br />

da caneta óptica a pontos, curvas ou interseções entre curvas, ajudando assim o usuário a posicionar<br />

e criar objetos com maior precisão. Tarefas básicas como posicionar e selecionar objetos gráficos<br />

utilizando um dispositivo apontador, e o uso <strong>de</strong> funções <strong>de</strong> restrição do posicionamento do cursor<br />

<strong>de</strong> acordo com a geometria manipulada, tornaram-se difundidas entre aplicações <strong>de</strong> <strong>de</strong>senho por<br />

computador e hoje são amplamente utilizadas em sistemas gráficos e jogos.<br />

A manipulação direta através <strong>de</strong> dispositivos apontadores 2D é hoje o método <strong>de</strong> interação mais<br />

utilizado em sistemas <strong>de</strong> janelas. Em particular, <strong>de</strong>s<strong>de</strong> a introdução em 1984 do sistema <strong>de</strong> janelas<br />

System 1 nos computadores Macintosh, X Windows System no sistema operacional UNIX, e a poste-<br />

rior popularização da interface gráfica do Microsoft Windows, o uso <strong>de</strong> um mouse como dispositivo<br />

apontador para selecionar e arrastar elementos gráficos tornou-se padrão em praticamente todas as<br />

aplicações nesses sistemas.<br />

Jogos <strong>de</strong> vi<strong>de</strong>o game também são exemplos evi<strong>de</strong>ntes do uso <strong>de</strong> manipulação direta em uma<br />

interface gráfica. Com pouco treinamento, os usuários são capazes <strong>de</strong> utilizar controles (joysticks) que<br />

mapeiam as ações físicas que o usuário impõe sobre botões e alavancas para ações correspon<strong>de</strong>ntes<br />

da personagem na tela. Entretanto, o uso do dispositivo apontador é mais comumente empregado em<br />

jogos <strong>de</strong> computador, seja para selecionar e arrastar elementos gráficos, seja para <strong>de</strong>finir a orientação<br />

da personagem ou câmera que está sendo controlada.<br />

Tradicionalmente, as tarefas <strong>de</strong> manipulação direta são feitas através <strong>de</strong> algoritmos executados na<br />

CPU, como tratadores <strong>de</strong> eventos disparados por um sistema <strong>de</strong> janelas. Em particular, a tarefa <strong>de</strong><br />

seleção usando um dispositivo apontador 2D é reduzida à <strong>de</strong>terminação <strong>de</strong> todos os objetos do banco<br />

<strong>de</strong> dados da cena que geram interseções com um raio que passa por dois pontos: a posição do cursor<br />

captada pelo sistema <strong>de</strong> janela e a posição da câmera <strong>de</strong>finida pela aplicação. A figura 2.1 ilustra este<br />

procedimento. Essa técnica, conhecida como ray picking, é a mais utilizada pelas atuais bibliotecas<br />

gráficas <strong>3D</strong>. No restante <strong>de</strong>sta seção, sintetizamos a evolução <strong>de</strong>stas bibliotecas, com o intuito <strong>de</strong><br />

mostrar que as capacida<strong>de</strong>s das GPUs têm sido pouco consi<strong>de</strong>radas. Em todas as bibliotecas analisa-<br />

das, as operações <strong>de</strong> interação são realizadas na CPU através do acesso aos mo<strong>de</strong>los geométricos em<br />

um banco <strong>de</strong> dados <strong>de</strong> cena. Isto tem gerado um distanciamento, cada vez maior, entre o que se po<strong>de</strong><br />

visualizar e o que tais bibliotecas po<strong>de</strong>m oferecer em relação ao <strong>de</strong>senvolvimento <strong>de</strong> aplicativos com<br />

manipulações diretas.<br />

Na década <strong>de</strong> 1980 surgiram as primeiras bibliotecas gráficas <strong>3D</strong> baseadas em uma organização da<br />

cena através <strong>de</strong> estruturas <strong>de</strong> dados hierárquicas para facilitar o <strong>de</strong>senvolvimento <strong>de</strong> aplicativos intera-<br />

tivos <strong>3D</strong>. Nessa época, a ACM SIGGRAPH (Special Interest Group on Graphics, da Association for<br />

Computing Machinery [ACM, 2007]) havia proposto um padrão <strong>de</strong> APIs <strong>de</strong> gráficos in<strong>de</strong>pen<strong>de</strong>ntes<br />

do dispositivo, chamado <strong>de</strong> <strong>3D</strong> Core Graphics System (ou simplesmente Core) [Committee, 1977].<br />

Com base nesse padrão, foi <strong>de</strong>senvolvida em 1985 a biblioteca GKS (Graphics Kernel System) com

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

Saved successfully!

Ooh no, something went wrong!