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.4 Fluxo <strong>de</strong> processamento 113<br />
cial calculados no estágio anterior. Tais atributos po<strong>de</strong>m ser modificados arbitrariamente neste<br />
estágio antes <strong>de</strong> serem interpolados para cada fragmento durante a rasterização.<br />
A inclusão <strong>de</strong>ste estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices é justificada pela necessida<strong>de</strong><br />
<strong>de</strong> dar mais flexibilida<strong>de</strong> aos tipos <strong>de</strong> transformações geométricas utilizadas no processador<br />
<strong>de</strong> vértices. Por exemplo, tal estágio é necessário para realizar tarefas tais como transformar<br />
bases tangentes recém calculadas, do sistema <strong>de</strong> coor<strong>de</strong>nadas local do mo<strong>de</strong>lo para o sistema<br />
<strong>de</strong> coor<strong>de</strong>nadas global. Como tais bases tangentes não são conhecidas no primeiro estágio, este<br />
tipo <strong>de</strong> processamento só po<strong>de</strong> ser realizado após as estimativas.<br />
4. Modificação <strong>de</strong> atributos <strong>de</strong> fragmentos. Após projetar e rasterizar a geometria resultante dos<br />
estágios anteriores, os atributos interpolados dos fragmentos po<strong>de</strong>m ser modificados. Durante<br />
a rasterização, a GPU realiza uma interpolação linear dos atributos dos vértices ao longo das<br />
primitivas. No sha<strong>de</strong>r <strong>de</strong> fragmentos correspon<strong>de</strong>nte a este estágio, os atributos interpolados<br />
po<strong>de</strong>m ser modificados por uma função <strong>de</strong>finida pela aplicação. Se essa função modificar<br />
atributos <strong>de</strong> posição e orientação <strong>de</strong> tal forma a requerer uma nova estimativa das proprieda<strong>de</strong>s<br />
<strong>de</strong> geometria diferencial, cabe à aplicação a tarefa <strong>de</strong> atualizar tais proprieda<strong>de</strong>s. Isso ocorre<br />
porque o estágio <strong>de</strong> estimativa <strong>de</strong> atributos geométricos é realizado apenas com relação aos<br />
vértices e não com relação aos fragmentos.<br />
Exemplos <strong>de</strong> processamento realizado neste estágio incluem as técnicas <strong>de</strong> mapeamento <strong>de</strong><br />
<strong>de</strong>talhes <strong>3D</strong>, execução <strong>de</strong> filtros <strong>de</strong> processamento <strong>de</strong> imagem e <strong>de</strong>scarte <strong>de</strong> fragmentos. Além<br />
disso, texturas contendo atributos <strong>de</strong>finidos pela aplicação po<strong>de</strong>m ser amostradas neste estágio<br />
<strong>de</strong> modo a obter novos atributos, a critério da aplicação.<br />
Assim como nos estágios <strong>de</strong> <strong>de</strong>formação com relação aos vértices, este estágio é disparado in-<br />
ternamente pela arquitetura através da chamada <strong>de</strong> uma função <strong>de</strong> chamada <strong>de</strong> retorno <strong>de</strong>finida<br />
pela aplicação e que contém o comando <strong>de</strong> ren<strong>de</strong>rização do mo<strong>de</strong>lo segundo a API utilizada.<br />
5. Codificação <strong>de</strong> atributos. Este procedimento é realizado no mesmo sha<strong>de</strong>r <strong>de</strong> fragmentos<br />
do estágio anterior. Os atributos <strong>de</strong>finidos para cada fragmento a partir da interpolação dos<br />
fragmentos dos vértices, possivelmente modificados pelo estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong><br />
fragmentos, são codificados como componentes <strong>de</strong> cor em buffers <strong>de</strong> ren<strong>de</strong>rização não visíveis.<br />
A funcionalida<strong>de</strong> <strong>de</strong> ren<strong>de</strong>rização simultânea em múltiplos buffers <strong>de</strong> ren<strong>de</strong>rização, existente<br />
nas GPUs atuais, é utilizada caso um único buffer <strong>de</strong> ren<strong>de</strong>rização não possua bits por pixel<br />
suficientes para armazenar todos os atributos.<br />
6. Decodificação <strong>de</strong> atributos. Neste estágio, realizado na CPU e chamado no fim do laço <strong>de</strong><br />
ren<strong>de</strong>rização, a arquitetura transfere o conteúdo dos buffers <strong>de</strong> ren<strong>de</strong>rização para a memória do