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.

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

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

Saved successfully!

Ooh no, something went wrong!