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.
diretamente na GPU e codificados no domínio do espaço da imagem como componentes <strong>de</strong> cor <strong>de</strong><br />
cada pixel. Esses atributos po<strong>de</strong>m ser <strong>de</strong>codificados pela aplicação <strong>de</strong> modo a realizar a tarefa <strong>de</strong><br />
interação. <strong>Uma</strong> vez que a GPU processa tais atributos, suas possíveis modificações durante o fluxo<br />
<strong>de</strong> visualização po<strong>de</strong>m ser levadas em consi<strong>de</strong>ração. Tal hipótese é <strong>de</strong>fendida pela implementação da<br />
arquitetura proposta em hardware gráfico atual (utilizando o mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r 3.0). A implemen-<br />
tação dos algoritmos <strong>de</strong> estimativa <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial é utilizada internamente<br />
pela arquitetura <strong>de</strong> modo a estimar tais proprieda<strong>de</strong>s após um estágio <strong>de</strong> modificação <strong>de</strong> atributos<br />
<strong>de</strong> vértices. Desse modo, a estimativa <strong>de</strong>ssas proprieda<strong>de</strong>s po<strong>de</strong> ser feita <strong>de</strong> tal forma a levar em<br />
consi<strong>de</strong>ração a geometria <strong>de</strong>formada no processador <strong>de</strong> vértices.<br />
A arquitetura é implementada como uma biblioteca <strong>de</strong> funções em C++ utilizando a API gráfica<br />
Direct<strong>3D</strong> ou OpenGL. Através <strong>de</strong>sta biblioteca a aplicação tem acesso a comandos que po<strong>de</strong>m ser<br />
utilizados para informar à arquitetura os atributos <strong>de</strong>sejados no espaço da imagem e os procedimentos<br />
<strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices e fragmentos dos mo<strong>de</strong>los tratados, além <strong>de</strong> comandos para<br />
executar o fluxo <strong>de</strong> processamento da arquitetura e obter os atributos calculados, <strong>de</strong> forma transpa-<br />
rente à aplicação. Utilizando esta biblioteca, conseguimos implementar diversas tarefas <strong>de</strong> interação<br />
<strong>3D</strong> baseadas nas tarefas básicas <strong>de</strong> seleção e posicionamento com restrições. Testes <strong>de</strong> <strong>de</strong>sempenho<br />
mostram que tais tarefas são eficientes se comparadas com o método tradicional <strong>de</strong> ray picking para<br />
seleção e posicionamento restrito em mo<strong>de</strong>los visíveis. A diferença <strong>de</strong> <strong>de</strong>sempenho é tanto mais sig-<br />
nificativa quanto maior é a complexida<strong>de</strong> dos mo<strong>de</strong>los tratados, uma vez que todo o processamento<br />
da geometria para estimativa <strong>de</strong> atributos geométricos e codificação <strong>de</strong>sses atributos em pixels é feita<br />
exclusivamente na GPU. Em nossos testes, esse comportamento foi observado em placas <strong>de</strong> ví<strong>de</strong>o <strong>de</strong><br />
diferentes gerações: NVIDIA GeForce 6200, NVIDIA GeForce 7900 GTX e NVIDIA GeForce 8800<br />
GTX.<br />
Requisitos <strong>de</strong> generalida<strong>de</strong>, eficiência, robustez e reusabilida<strong>de</strong> nortearam a proposta da arquite-<br />
tura. Acreditamos que, através do uso <strong>de</strong> sua implementação, mostramos que tais requisitos são<br />
preenchidos <strong>de</strong> forma satisfatória. O requisito <strong>de</strong> generalida<strong>de</strong> é preenchido como resultado do uso<br />
do próprio fluxo <strong>de</strong> ren<strong>de</strong>rização das atuais GPUs para calcular os atributos necessários às tarefas<br />
<strong>de</strong> interação. Através <strong>de</strong>ssa integração, a arquitetura é capaz <strong>de</strong> trabalhar com todas as primitivas<br />
suportadas pela GPU, e possibilita que a estimativa <strong>de</strong> atributos geométricos leve em consi<strong>de</strong>ração as<br />
<strong>de</strong>formações das primitivas em relação a seus vértices. O requisito <strong>de</strong> eficiência é satisfeito como re-<br />
flexo do uso do po<strong>de</strong>r computacional da GPU para executar o fluxo <strong>de</strong> processamento da arquitetura.<br />
Para satisfazer o requisito <strong>de</strong> robustez, empregamos técnicas inéditas <strong>de</strong> estimativa <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong><br />
geometria diferencial que, quando comparadas com técnicas anteriores, fornecem um bom compro-<br />
misso entre eficiência e robustez da estimativa para mo<strong>de</strong>los com malhas amostradas irregularmente<br />
ou com ruídos. Por fim, o critério <strong>de</strong> reusabilida<strong>de</strong> é preenchido através da <strong>de</strong>monstração da pos-<br />
155