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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
5.1 Requisitos 97<br />
durante o processamento realizado no fluxo <strong>de</strong> ren<strong>de</strong>rização. I<strong>de</strong>almente, <strong>de</strong>vem ser consi<strong>de</strong>-<br />
radas <strong>de</strong>formações com relação aos vértices e com relação aos fragmentos produzidos durante<br />
a rasterização. Em razão da complexida<strong>de</strong> envolvida no tratamento <strong>de</strong> geometria que sofreu<br />
<strong>de</strong>formações com relação aos seus fragmentos, restringimos o escopo da arquitetura <strong>de</strong> modo a<br />
tratar, <strong>de</strong> forma transparente à aplicação, somente <strong>de</strong>formações arbitrárias dos vértices. Para a<br />
modificação <strong>de</strong> atributos <strong>de</strong> fragmentos, a arquitetura possibilita que a aplicação forneça seus<br />
próprios procedimentos <strong>de</strong> tratamento <strong>de</strong> tais modificações.<br />
Diferentes tipos <strong>de</strong> atributos geométricos <strong>de</strong>vem ser calculados na GPU para representações <strong>de</strong><br />
superfícies suaves por malhas triangulares <strong>de</strong> modo a tornar possível a realização <strong>de</strong> um mapea-<br />
mento entre os pontos da superfície ren<strong>de</strong>rizada na tela e os pontos da superfície original (i.e.,<br />
antes das <strong>de</strong>formações na GPU), ou ainda a reconstrução, na CPU, da geometria <strong>de</strong>formada a<br />
partir da obtenção <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial dos pontos da superfície amostra-<br />
dos durante a ren<strong>de</strong>rização. A arquitetura também <strong>de</strong>ve permitir que a aplicação escolha essas<br />
proprieda<strong>de</strong>s a partir <strong>de</strong> uma paleta <strong>de</strong> atributos geométricos calculados na GPU, e possibilitar<br />
a adição <strong>de</strong> novos atributos com semântica <strong>de</strong>finida pela aplicação.<br />
• Eficiência. A integração da arquitetura <strong>de</strong> interação com a atual arquitetura <strong>de</strong> hardware grá-<br />
fico <strong>de</strong>ve herdar as vantagens provenientes do uso da GPU como um processador <strong>de</strong> fluxo <strong>de</strong><br />
propósito geral: alto po<strong>de</strong>r computacional e processamento assíncrono com relação à CPU.<br />
Para isso, o processamento associado à estimativa das proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial<br />
<strong>de</strong>ve ser realizado completamente na GPU usando a geometria armazenada na memória <strong>de</strong><br />
ví<strong>de</strong>o local. Tal estimativa exige o acesso a informações <strong>de</strong> conectivida<strong>de</strong> da malha triangu-<br />
lar, informações essas que geralmente não são fornecidas automaticamente pelas atuais GPUs<br />
(GPUs compatíveis com o mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r 4.0 suportam tal acesso, mas ainda <strong>de</strong> forma limi-<br />
tada). Para contornar essa limitação, tanto os atributos geométricos como atributos topológicos<br />
<strong>de</strong>vem ser armazenados na memória <strong>de</strong> ví<strong>de</strong>o, organizadas como texturas em formato <strong>de</strong> ponto<br />
flutuante. Neste caso, as texturas são utilizadas como áreas <strong>de</strong> memória genérica, e contêm<br />
dados como a posição dos vértices, vetor normal e índices <strong>de</strong> vértices adjacentes.<br />
A obtenção dos resultados do processamento <strong>de</strong> atributos na GPU requer transferências <strong>de</strong><br />
dados entre a GPU e a CPU através do barramento AGP (Advanced Graphics Port) ou PCI (Pe-<br />
ripheral Component Interconnect) Express. Essa transferência po<strong>de</strong> ser ineficiente caso uma<br />
gran<strong>de</strong> quantida<strong>de</strong> <strong>de</strong> dados precise ser transferida a cada quadro <strong>de</strong> exibição. Além disso, re-<br />
quer a sincronização <strong>de</strong> processamento entre as duas unida<strong>de</strong>s <strong>de</strong> processamento, o que reduz<br />
o <strong>de</strong>sempenho associado ao processamento paralelo. Supomos que, em nossa arquitetura, essa<br />
característica não representa um problema significativo, porquanto a quantida<strong>de</strong> <strong>de</strong> pixels lidos