14.12.2012 Views

Direct3D HLSL Programming using RenderMonkey IDE

Direct3D HLSL Programming using RenderMonkey IDE

Direct3D HLSL Programming using RenderMonkey IDE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Computing Anisotropic<br />

Lighting: Vertex Shader<br />

Compute<br />

In the vertex shader, propagate the normal vector<br />

Compute light direction camera vectors position for and both the contributing view vector lights<br />

to pixel shader<br />

…<br />

// Output the normal vector ( w component contains ambient factor)<br />

o.Normal = float4( inNormal * .5 + (float3).5, fAmbient );<br />

// Compute camera position:<br />

float4 vCameraPosition = mul( inv_view_matrix, float4(0,0,0,1) );<br />

// Calculate view vector:<br />

o.View = normalize( vCameraPosition - mul( mWorld, inPos ) );<br />

// Compute light direction vectors:<br />

light1Position = mul( inv_view_matrix, light1Position );<br />

light2Position = mul( inv_view_matrix, light2Position );<br />

o.Light1 = normalize (light1Position - inPos );<br />

o.Light2 = normalize (light2Position - inPos );<br />

Game Developer Conference, San Jose, CA, March 7 th 2003

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

Saved successfully!

Ooh no, something went wrong!