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 111<br />
<strong>de</strong>formação utilizados para modificar os atributos <strong>de</strong> vértices e fragmentos na GPU (e.g., texturas <strong>de</strong><br />
<strong>de</strong>slocamento para utilizar em mapeamento <strong>de</strong> <strong>de</strong>slocamento, parâmetros <strong>de</strong> funções <strong>de</strong> <strong>de</strong>formação e<br />
matrizes <strong>de</strong> transformação). O segundo estágio estima as proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial com<br />
base nos atributos e geometria modificados. Em um terceiro estágio, é possível alterar novamente<br />
os atributos dos vértices, que agora também contém as proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial. Tal<br />
estágio po<strong>de</strong> ser utilizado por aplicações que necessitem dos atributos <strong>de</strong> geometria diferencial para<br />
realizar algum processamento na GPU. Em seguida, os atributos dos vértices são interpolados para<br />
cada fragmento <strong>de</strong> cada primitiva. No quarto estágio é possível modificar tais atributos interpolados.<br />
O quinto estágio codifica esses atributos <strong>de</strong> fragmentos nos pixels dos buffers <strong>de</strong> visualização não<br />
visíveis.<br />
Além <strong>de</strong>ssas etapas executadas na GPU, um sexto e último estágio é executado na CPU: o procedi-<br />
mento <strong>de</strong> <strong>de</strong>codificação <strong>de</strong> atributos <strong>de</strong> fragmentos. Neste estágio, a arquitetura fornece à aplicação o<br />
acesso aos atributos processados no hardware gráfico. A partir <strong>de</strong>ssas informações, a tarefa <strong>de</strong> utilizar<br />
esses atributos para realizar a tarefa <strong>de</strong> interação e realimentação é <strong>de</strong> responsabilida<strong>de</strong> da aplicação.<br />
Como indicado pelos estágios <strong>de</strong> <strong>de</strong>cisão, as etapas <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices, cál-<br />
culo <strong>de</strong> atributos geométricos e modificação <strong>de</strong> atributos <strong>de</strong> fragmentos são opcionais. Elas são habi-<br />
litadas pela aplicação apenas nos casos em que a <strong>de</strong>formação da geometria na GPU com relação aos<br />
vértices ou fragmentos é necessária. Se a geometria não é <strong>de</strong>formada na GPU, os últimos atributos<br />
geométricos calculados ficam armazenados em uma memória <strong>de</strong> textura para utilização apenas no<br />
estágio <strong>de</strong> codificação <strong>de</strong> atributos <strong>de</strong> fragmentos.<br />
A seguir, na seção 5.4.1, <strong>de</strong>talhamos cada um dos seis estágios <strong>de</strong> processamento da arquitetura.<br />
Na seção 5.4.2 apresentamos o formato da seqüência <strong>de</strong> dados <strong>de</strong> entrada para execução da arquitetura<br />
e, na seção 5.4.3, o formato <strong>de</strong> saída dos dados computados.<br />
5.4.1 Estágios <strong>de</strong> processamento<br />
Os estágios <strong>de</strong> processamento são integrados ao laço <strong>de</strong> visualização da aplicação. Essa integração<br />
é mostrada na figura 5.10. Imediatamente antes <strong>de</strong> chamar a GPU para a ren<strong>de</strong>rização da geometria<br />
no laço <strong>de</strong> ren<strong>de</strong>rização, a aplicação invoca um comando Ren<strong>de</strong>r() da arquitetura <strong>de</strong> interação que,<br />
internamente, dispara os três passos <strong>de</strong> ren<strong>de</strong>rização relacionados aos estágios 1, 2, 3, 4 e 5. Após a<br />
ren<strong>de</strong>rização da geometria para fins <strong>de</strong> visualização, a aplicação requisita o conteúdo dos buffers <strong>de</strong><br />
ren<strong>de</strong>rização não visíveis (estágio 6) através da chamada do comando Deco<strong>de</strong>(). Cada um <strong>de</strong>sses<br />
seis estágios é <strong>de</strong>talhado a seguir. Por convenção, os procedimentos na figura 5.10 são exibidos como<br />
retângulos <strong>de</strong> bordas arredondadas, enquanto os repositórios <strong>de</strong> dados são exibidos como retângulos:<br />
1. Modificação <strong>de</strong> atributos <strong>de</strong> vértices. Esse estágio é executado caso o mo<strong>de</strong>lo original