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.

186 Interface <strong>de</strong> programação<br />

Cada instância <strong>de</strong> CIntManager gerencia um conjunto <strong>de</strong> instâncias <strong>de</strong> CIntObj. Tais ins-<br />

tâncias <strong>de</strong> CIntObj correspon<strong>de</strong>m a mo<strong>de</strong>los geométricos que vão gerar um mesmo conjunto<br />

<strong>de</strong> tipos <strong>de</strong> atributos. Por outro lado, cada instância po<strong>de</strong> estar associada a um tipo diferente <strong>de</strong><br />

sha<strong>de</strong>r <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices e sha<strong>de</strong>r <strong>de</strong> modificação <strong>de</strong> fragmentos para o<br />

mo<strong>de</strong>lo representado.<br />

Po<strong>de</strong>mos supor que, para uma melhor flexibilida<strong>de</strong>, a escolha dos tipos <strong>de</strong> atributos que <strong>de</strong>verão<br />

ser calculados po<strong>de</strong>ria ser uma funcionalida<strong>de</strong> da classe CIntObj em vez <strong>de</strong> uma funcionalida<strong>de</strong><br />

da classe CIntManager, como foi implementado. Por outro lado, verificamos que os mo<strong>de</strong>los que<br />

requerem a geração <strong>de</strong> diferentes conjuntos <strong>de</strong> tipos <strong>de</strong> atributos produzem, internamente, diferentes<br />

conjuntos <strong>de</strong> sha<strong>de</strong>rs para os estágios <strong>de</strong> processamento da arquitetura na GPU. De modo a reduzir<br />

o número <strong>de</strong> troca <strong>de</strong> estados <strong>de</strong>sses sha<strong>de</strong>rs e com isso aumentar o <strong>de</strong>sempenho, cada instância <strong>de</strong><br />

CIntManager processa todos os mo<strong>de</strong>los (i.e., instâncias <strong>de</strong> CIntObj) que utilizam os mesmos<br />

tipos <strong>de</strong> atributos. Se essa estratégia não fosse adotada, os mo<strong>de</strong>los em CIntManager não seriam<br />

or<strong>de</strong>nados por atributos e trocas redundantes <strong>de</strong> estados po<strong>de</strong>riam ocorrer.<br />

A utilização <strong>de</strong> sha<strong>de</strong>rs na biblioteca requer a existência <strong>de</strong> hardware gráfico compatível com o<br />

mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r 3.0. Isto é necessário porque os estágios <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices<br />

utilizam amostragem <strong>de</strong> texturas no sha<strong>de</strong>r <strong>de</strong> vértices, característica esta suportada apenas a partir<br />

<strong>de</strong>ste mo<strong>de</strong>lo. Além disso, este é o primeiro mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r a suportar a quantida<strong>de</strong> <strong>de</strong> instruções<br />

e registradores utilizada nos sha<strong>de</strong>rs <strong>de</strong> estimativa <strong>de</strong> elementos <strong>de</strong> geometria diferencial.<br />

No restante <strong>de</strong>ste capítulo, apresentamos a sintaxe e <strong>de</strong>scrição <strong>de</strong> cada um dos comandos imple-<br />

mentados na biblioteca.<br />

C.1 Conjunto <strong>de</strong> funções <strong>de</strong> interação<br />

De modo a integrar a arquitetura <strong>de</strong> interação às atuais APIs gráficas, propomos um conjunto <strong>de</strong><br />

aproximadamente 50 comandos divididos entre as classes CIntObj e CIntManager. Descreve-<br />

mos a seguir os comandos implementados na biblioteca para para realizar as seguintes tarefas da<br />

arquitetura proposta:<br />

• Enviar os dados necessários à execução da arquitetura <strong>de</strong> interação, segundo a interface <strong>de</strong><br />

entrada <strong>de</strong>scrita na seção 5.4.2;<br />

• Executar os estágios <strong>de</strong> processamento da arquitetura <strong>de</strong>scritos na seção 5.4;<br />

• Receber os resultados do processamento segundo a interface <strong>de</strong> saída <strong>de</strong>scrita na seção 5.4.3.<br />

Essas funções são <strong>de</strong>talhadas a seguir.

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

Saved successfully!

Ooh no, something went wrong!