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.
116 <strong>Arquitetura</strong> <strong>de</strong> interação<br />
rísticas da imagem, a região <strong>de</strong> interesse po<strong>de</strong> <strong>de</strong>terminar a extensão do “campo <strong>de</strong> gravida<strong>de</strong>”,<br />
pois a aplicação po<strong>de</strong> fazer com que o cursor 2D seja atraído à característica mais próxima<br />
<strong>de</strong>ntro da região <strong>de</strong> interesse.<br />
Esses dados po<strong>de</strong>m ser fornecidos à arquitetura através do comando SetROI() que recebe<br />
como parâmetros as coor<strong>de</strong>nadas 2D do canto superior esquerdo e canto inferior direito da<br />
região <strong>de</strong> interesse.<br />
• Sha<strong>de</strong>rs <strong>de</strong> <strong>de</strong>formação <strong>de</strong> vértices, <strong>de</strong>finidos pela aplicação. Aplicam-se apenas quando há<br />
modificação dos atributos <strong>de</strong> vértices <strong>de</strong> entrada, ou dos atributos produzidos pelo estágio <strong>de</strong><br />
cálculo <strong>de</strong> atributos geométricos. Quando utilizado no primeiro estágio, o sha<strong>de</strong>r <strong>de</strong> <strong>de</strong>for-<br />
mação <strong>de</strong> vértices recebe como parâmetro <strong>de</strong> entrada os atributos da geometria original (com<br />
os tipos <strong>de</strong> dados e semântica <strong>de</strong>finidas anteriormente) e produz como saída a mesma lista<br />
<strong>de</strong> atributos, mas com valores possivelmente alterados segundo o processamento <strong>de</strong>finido pela<br />
aplicação. A entrada do sha<strong>de</strong>r <strong>de</strong> <strong>de</strong>formação <strong>de</strong> vértices utilizado no terceiro estágio inclui<br />
não só todos os parâmetros do primeiro estágio, como também os novos atributos correspon-<br />
<strong>de</strong>ntes às proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial estimadas no segundo estágio.<br />
Esses dados po<strong>de</strong>m ser fornecidos à arquitetura através <strong>de</strong> dois comandos, SetPreVertex-<br />
Deform() e SetPostVertexDeform(), que recebem como parâmetro uma string <strong>de</strong><br />
texto contendo o código do sha<strong>de</strong>r <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices. O comando Set-<br />
PreVertexDeform() recebe o sha<strong>de</strong>r a ser executado antes da etapa <strong>de</strong> estimativa <strong>de</strong><br />
proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial. O comando SetPostVertexDeform() recebe o<br />
sha<strong>de</strong>r a ser executado após a etapa <strong>de</strong> estimativa <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial.<br />
• Sha<strong>de</strong>r <strong>de</strong> <strong>de</strong>formação <strong>de</strong> fragmentos, <strong>de</strong>finido pela aplicação. Aplica-se apenas quando há mo-<br />
dificação dos atributos <strong>de</strong> entrada interpolados ao longo <strong>de</strong> cada fragmento produzido durante<br />
a rasterização. A entrada do sha<strong>de</strong>r <strong>de</strong> <strong>de</strong>formação <strong>de</strong> fragmentos recebe como parâmetros os<br />
atributos <strong>de</strong> entrada (com os tipos <strong>de</strong> dados e semântica <strong>de</strong>finidas anteriormente) interpolados<br />
linearmente pelo rasterizador, e produz como saída a mesma lista <strong>de</strong> atributos, mas com valores<br />
possivelmente alterados segundo o processamento <strong>de</strong>finido pela aplicação.<br />
Esses dados po<strong>de</strong>m ser fornecidos à arquitetura através do comando SetPixelDeform()<br />
que recebe como parâmetro uma string <strong>de</strong> texto contendo o código do sha<strong>de</strong>r <strong>de</strong> modificação<br />
<strong>de</strong> atributos <strong>de</strong> fragmentos.<br />
• Função <strong>de</strong> chamada <strong>de</strong> retorno a ser utilizada pela arquitetura quando a atualização dos atri-<br />
butos <strong>de</strong> vértices (estágio 1) e estimativa das proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial (estágio 2)