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

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-

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

Saved successfully!

Ooh no, something went wrong!