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.
5.3 Codificação <strong>de</strong> atributos no domínio da imagem 101<br />
A arquitetura utiliza quaisquer primitivas suportadas pelo hardware gráfico atual. Assim, as pos-<br />
síveis representações <strong>de</strong> superfícies incluem malhas triangulares, primitivas baseadas em pontos e<br />
voxels, <strong>de</strong>s<strong>de</strong> que tais representações sejam construídas com base nas primitivas suportadas em hard-<br />
ware. Por outro lado, o cálculo <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial discreta é realizado apenas<br />
sobre vértices, sejam eles <strong>de</strong> primitivas baseadas em pontos ou malhas triangulares. Para que a ar-<br />
quitetura <strong>de</strong> interação possa extrair relações <strong>de</strong> adjacência necessárias para o cálculo <strong>de</strong> proprieda<strong>de</strong>s<br />
<strong>de</strong> geometria diferencial, a geometria enviada à arquitetura <strong>de</strong>ve ser apresentada na forma <strong>de</strong> um<br />
buffer <strong>de</strong> vértices e um buffer <strong>de</strong> índices <strong>de</strong> modo a formar uma malha triangular ou nuvem <strong>de</strong> pon-<br />
tos.<br />
Técnicas <strong>de</strong> mapeamento <strong>de</strong> <strong>de</strong>talhes <strong>3D</strong> são suportadas <strong>de</strong>s<strong>de</strong> que sejam construídas sobre mo-<br />
<strong>de</strong>los criados com as primitivas citadas. <strong>Uma</strong> vez que a estimativa das proprieda<strong>de</strong>s <strong>de</strong> geometria<br />
diferencial é realizada apenas com relação aos vértices, a técnica <strong>de</strong> mapeamento <strong>de</strong> <strong>de</strong>talhes torna-<br />
se responsável pela atualização <strong>de</strong>sses atributos caso eles sejam modificados durante a aplicação do<br />
<strong>de</strong>talhe.<br />
A <strong>de</strong>finição <strong>de</strong> atributos relativos às faces ou arestas só po<strong>de</strong> ser feita através da atribuição <strong>de</strong><br />
atributos dos vértices que compõem essas primitivas. Por exemplo, i<strong>de</strong>ntificadores <strong>de</strong> faces <strong>de</strong>vem<br />
ser adicionados como atributos dos vértices que compõem cada face. Entretanto, a i<strong>de</strong>ntificação <strong>de</strong><br />
faces e arestas não po<strong>de</strong> ser feita com geometria in<strong>de</strong>xada na qual um único vértice é compartilhado<br />
por mais <strong>de</strong> uma face ou aresta. Em tais casos, a aplicação <strong>de</strong>ve fornecer uma geometria na qual<br />
os vértices coinci<strong>de</strong>ntes sejam repetidos. Assim, embora coinci<strong>de</strong>ntes na posição, seus atributos <strong>de</strong><br />
i<strong>de</strong>ntificação <strong>de</strong> face po<strong>de</strong>m ser diferentes. A arquitetura consi<strong>de</strong>ra esse tipo <strong>de</strong> geometria como<br />
geometria não in<strong>de</strong>xada.<br />
5.3 Codificação <strong>de</strong> atributos no domínio da imagem<br />
A idéia básica da arquitetura proposta consiste em utilizar o fluxo <strong>de</strong> visualização já existente da<br />
atual arquitetura <strong>de</strong> hardware gráfico programável (figura 2.3) para processar atributos geométricos e<br />
não geométricos dos mo<strong>de</strong>los ren<strong>de</strong>rizados. Tais atributos po<strong>de</strong>m ser calculados para todos os pixels<br />
do mo<strong>de</strong>lo ren<strong>de</strong>rizado e armazenados no espaço discreto da tela em buffers <strong>de</strong> ren<strong>de</strong>rização não<br />
visíveis. Assim, cada pixel <strong>de</strong> um buffer <strong>de</strong> ren<strong>de</strong>rização não visível po<strong>de</strong> conter um valor que indica,<br />
por exemplo, o vetor normal da superfície naquele ponto, ou o i<strong>de</strong>ntificador do objeto geométrico<br />
que contém o pixel. A arquitetura disponibiliza esses atributos à CPU para que eles sejam utilizados<br />
posteriormente na aplicação. Isto possibilita a implementação <strong>de</strong> tarefas eficientes <strong>de</strong> manipulação<br />
direta <strong>3D</strong> que satisfaçam a consistência com o pressuposto <strong>de</strong> que o usuário espera interagir com o<br />
que ele está efetivamente visualizando.