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.

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

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

Saved successfully!

Ooh no, something went wrong!