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.

float3 m = 0;<br />

float3x3 w = 0;<br />

// Para cada vértice da vizinhança 1-ring:<br />

int iCt = 0;<br />

while( iCt < fAdj.w )<br />

{<br />

}<br />

// Obtém índice do vértice do mapa <strong>de</strong> adjacência<br />

vAdjUVNei = I1DTo2D( fAdj.z + iCt, g_vAdjCons );<br />

fIdxNei = tex2Dlod( sAdj, float4( vAdjUVNei,0,0 ) ).x;<br />

// Obtém atributos do vértice<br />

vUVNei = I1DTo2D( fIdxNei, g_vVtCons );<br />

vPosNei = tex2Dlod( sVPos, float4( vUVNei,0,0 ) );<br />

vNormalNei = tex2Dlod( sVN, float4( vUVNei,0,0 ) );<br />

float3 e = vPosNei - vPos;<br />

float u = dot( e, vPDir1 );<br />

float v = dot( e, vPDir2 );<br />

w[0][0] += u*u;<br />

w[0][1] += u*v;<br />

w[2][2] += v*v;<br />

float3 dn = vNormalNei - vNormal;<br />

float dnu = dot( dn, vPDir1 );<br />

float dnv = dot( dn, vPDir2 );<br />

m[0] += dnu*u;<br />

m[1] += dnu*v + dnv*u;<br />

m[2] += dnv*v;<br />

iCt++;<br />

w[1][1] = w[0][0] + w[2][2];<br />

w[1][2] = w[0][1];<br />

m = ldltsv( w, m, 3 );<br />

// Grava tensor <strong>de</strong> curvatura<br />

181

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

Saved successfully!

Ooh no, something went wrong!