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.
172 Sha<strong>de</strong>rs <strong>de</strong> estimativa <strong>de</strong> elementos <strong>de</strong> geometria diferencial <strong>de</strong> primeira or<strong>de</strong>m<br />
/////////////////////////////////////////////////////////////////////<br />
float2 Idx1DTo2D( float iIdx, float2 vCons )<br />
{<br />
}<br />
return float2( iIdx, iIdx ) * vCons;<br />
/////////////////////////////////////////////////////////////////////<br />
// Constantes <strong>de</strong>finidas pela aplicação e utilizadas como segundo<br />
// parâmetro <strong>de</strong> Idx1DTo2D( ).<br />
/////////////////////////////////////////////////////////////////////<br />
float2 g_vVtCons; // Utilizado em mapas <strong>de</strong> atributos <strong>de</strong> vértices<br />
float2 g_vFaceCons; // Utilizado em mapas <strong>de</strong> atributos <strong>de</strong> faces<br />
float2 g_vAdjCons; // Utilizado com o mapa <strong>de</strong> relações <strong>de</strong> adjacência<br />
/////////////////////////////////////////////////////////////////////<br />
// Objetos <strong>de</strong> amostragem <strong>de</strong> textura.<br />
/////////////////////////////////////////////////////////////////////<br />
sampler sVPos; // Mapa <strong>de</strong> posições dos vértices<br />
sampler sUpdVPos; // Mapa <strong>de</strong> posições atualizadas dos vértices<br />
sampler sVTex; // Mapa <strong>de</strong> coor<strong>de</strong>nadas <strong>de</strong> textura dos vértices<br />
sampler sFace; // Mapa <strong>de</strong> faces<br />
sampler sAdjIdx; // Mapa <strong>de</strong> índices <strong>de</strong> adjacência<br />
sampler sAdj; // Mapa <strong>de</strong> relações <strong>de</strong> adjacência<br />
sampler sFaceN; // Mapa <strong>de</strong> normais às faces<br />
sampler sFaceT; // Mapa <strong>de</strong> tangentes às faces<br />
sampler sFaceB; // Mapa <strong>de</strong> bitangente às faces<br />
/////////////////////////////////////////////////////////////////////<br />
// 1o. passo: Atualiza as posições dos vértices <strong>de</strong> acordo com a<br />
// função <strong>de</strong> <strong>de</strong>formação.<br />
/////////////////////////////////////////////////////////////////////<br />
float4 UpdateVPos( float2 vTex ) : COLOR<br />
{<br />
// Lê a posição do vértice<br />
float4 vPos = tex2D( sVPos, vTex );<br />
// Chama a função <strong>de</strong> <strong>de</strong>formação <strong>de</strong>finida pela aplicação<br />
// Obs.: A função não é apresentada nessa listagem