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.
112 <strong>Arquitetura</strong> <strong>de</strong> interação<br />
sofra alterações <strong>de</strong> seus atributos <strong>de</strong> vértices na GPU por funções <strong>de</strong> <strong>de</strong>formação <strong>de</strong>finidas<br />
pela aplicação. Para cada mo<strong>de</strong>lo geométrico sob interação, esse procedimento é iniciado<br />
pela arquitetura através da chamada <strong>de</strong> uma função <strong>de</strong> chamada <strong>de</strong> retorno (callback) previ-<br />
amente <strong>de</strong>finida pela aplicação através da interface entre a aplicação e a arquitetura <strong>de</strong> inte-<br />
raçã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 (e.g.,<br />
DrawIn<strong>de</strong>xedPrimitive() no Direct<strong>3D</strong>, ou glDrawArrays(), glBegin() e<br />
glEnd() no OpenGL). Tais funções recebem como parâmetro o buffer <strong>de</strong> vértices da geome-<br />
tria original, não <strong>de</strong>formada.<br />
No processador <strong>de</strong> vértices, funções <strong>de</strong> <strong>de</strong>formação <strong>de</strong>finidas pela aplicação modificam os atri-<br />
butos originais dos vértices e produzem a geometria final que será utilizada no cálculo da es-<br />
timativa das proprieda<strong>de</strong>s geométricas do mo<strong>de</strong>lo. Para esse propósito, a geometria resultante<br />
ainda é produzida no sistema <strong>de</strong> coor<strong>de</strong>nadas do espaço do objeto. Os atributos do mo<strong>de</strong>lo<br />
<strong>de</strong>formado são armazenados em texturas para uso posterior. Técnicas como mapeamento <strong>de</strong><br />
<strong>de</strong>slocamento por vértice e mesh skinning são executadas neste estágio, da mesma forma que<br />
quaisquer outros sha<strong>de</strong>rs que modifiquem, com relação aos vértices, os atributos <strong>de</strong> geometria<br />
utilizados no cálculo <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial e bases do espaço <strong>de</strong> textura<br />
(atributos <strong>de</strong> posição <strong>3D</strong> e coor<strong>de</strong>nadas <strong>de</strong> textura).<br />
2. Cálculo <strong>de</strong> atributos geométricos. Se a tarefa <strong>de</strong> interação <strong>de</strong>manda dados geométricos que<br />
não foram fornecidos como atributos dos vértices da geometria original (e.g., vetor normal, cur-<br />
vaturas, direções principais, bases tangentes calculadas segundo o mapeamento <strong>de</strong> coor<strong>de</strong>nadas<br />
<strong>de</strong> textura), ou que foram modificados no estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices, tais<br />
dados são calculados neste estágio <strong>de</strong> modo a levar em consi<strong>de</strong>ração a geometria <strong>de</strong>formada.<br />
A estimativa das proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial é realizada para cada vértice do mo<strong>de</strong>lo,<br />
sempre após o estágio <strong>de</strong> modificação <strong>de</strong> atributos dos vértices. Assim como no estágio ante-<br />
rior, esse procedimento é disparado internamente pela arquitetura através da chamada <strong>de</strong> uma<br />
função <strong>de</strong> chamada <strong>de</strong> retorno contendo o comando <strong>de</strong> ren<strong>de</strong>rização do mo<strong>de</strong>lo com o buffer<br />
<strong>de</strong> vértices do mo<strong>de</strong>lo original. Para cada vértice, a GPU lê os atributos modificados do vértice<br />
através da amostragem <strong>de</strong> texturas <strong>de</strong> ren<strong>de</strong>rização utilizadas no estágio anterior e através da<br />
amostragem <strong>de</strong> texturas pré-computadas contendo dados <strong>de</strong> conectivida<strong>de</strong> da geometria. Os<br />
resultados obtidos (atributos geométricos) são novamente gravados em texturas.<br />
3. Modificação <strong>de</strong> atributos <strong>de</strong> vértices. A funcionalida<strong>de</strong> <strong>de</strong>ste estágio é semelhante a do<br />
primeiro estágio. No sha<strong>de</strong>r <strong>de</strong> vértices, as texturas contendo os atributos da geometria <strong>de</strong>-<br />
formada, obtidas dos estágios anteriores, são amostradas <strong>de</strong> modo a atualizar os atributos da<br />
geometria original. Desse modo, cada vértice possui atributos adicionais <strong>de</strong> geometria diferen-