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.

C.1 Conjunto <strong>de</strong> funções <strong>de</strong> interação 193<br />

Se esse parâmetro é NULL, o estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices é <strong>de</strong>sabilitado.<br />

• Sintaxe: CIntObj::SetPostVertexDeform( char *szFunc ).<br />

Descrição: informa o sha<strong>de</strong>r <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices que será utilizado no<br />

estágio 3 <strong>de</strong> processamento da arquitetura (ver figuras 5.9 e 5.10), i.e., <strong>de</strong>pois da estimativa <strong>de</strong><br />

proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial.<br />

Parâmetros:<br />

– szFunc: ponteiro para uma string <strong>de</strong> texto contendo o código da função <strong>de</strong> modifica-<br />

ção <strong>de</strong> atributos <strong>de</strong> vértices, segundo a linguagem <strong>de</strong> sha<strong>de</strong>rs utilizada pela API gráfica<br />

(GLSL para OpenGL e HLSL para Direct<strong>3D</strong>). Tal função <strong>de</strong>ve ter obrigatoriamente o<br />

nome fPostVSDeform e <strong>de</strong>ve receber como parâmetro <strong>de</strong> entrada uma estrutura <strong>de</strong><br />

dados do tipo PSDEFORM. Essa estrutura contém as variáveis presentes em VSDEFORM,<br />

além <strong>de</strong> variáveis correspon<strong>de</strong>ntes às proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial estimadas no<br />

estágio 2. Por exemplo, se o vetor normal é estimado, PSDEFORM conterá a variável<br />

float3 vTN : TEXCOORD9 em HLSL e vec3 vTN em GLSL. A estimativa <strong>de</strong> ve-<br />

tores tangente e bitangente adicionará as variáveis float3 vTT : TEXCOORD10 e<br />

float3 vTB : TEXCOORD11 em HLSL (vec3 vTT e vec3 vTB em GLSL). A<br />

estimativa <strong>de</strong> curvaturas principais e direções principais adicionará as variáveis float4<br />

vP1K1 : TEXCOORD12 e float4 vP2K2 : TEXCOORD13 em HLSL (vec4<br />

vP1K1, vec4 vP2K2 em GLSL), que contém as direções principais nos três primeiros<br />

valores, e a curvatura principal no quarto valor. A estimativa dos coeficientes do tensor<br />

<strong>de</strong> curvatura adicionará a variável float3 vTensor2 : TEXCOORD14 em HLSL<br />

(vec3 vTensor3 em GLSL), contendo os coeficientes (e, f, g) do tensor. Por fim, a es-<br />

timativa dos coeficientes do tensor <strong>de</strong> <strong>de</strong>rivada <strong>de</strong> curvatura adicionará a variável float4<br />

vTensor3 : TEXCOORD15 em HLSL (vec4 vTensor3 em GLSL), contendo os<br />

coeficientes (a, b, c, d) do tensor.<br />

A função fPostVSDeform po<strong>de</strong> realizar modificações arbitrárias dos atributos <strong>de</strong><br />

PSDEFORM. O resultado <strong>de</strong>ve ser armazenado em uma nova estrutura PSDEFORM que<br />

<strong>de</strong>verá ser retornada pela função. Internamente, esses atributos serão interpolados para os<br />

fragmentos contidos em cada primitiva.<br />

Se esse parâmetro é NULL, o estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices após a esti-<br />

mativa <strong>de</strong> proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial é <strong>de</strong>sabilitado.<br />

• Sintaxe: CIntObj::SetPixelDeform( char *szFunc ).

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

Saved successfully!

Ooh no, something went wrong!