34 lines
1.7 KiB
HLSL
34 lines
1.7 KiB
HLSL
#define CalcNormalSpecular \
|
|
Output.Position = mul( float4( Input.Position.xyz, 1.0f ) , g_WorldViewProjMat ); \
|
|
\
|
|
Output.WorldViewTangent = mul( Input.Tangent, g_WorldViewMat ); \
|
|
Output.WorldViewBinormal = mul( Input.Binormal, g_WorldViewMat ); \
|
|
Output.WorldViewNormal = mul( Input.Normal, g_WorldViewMat ); \
|
|
\
|
|
Output.WorldViewPos = mul( float4( Input.Position.xyz, 1.0f ) , g_WorldViewMat ); \
|
|
Output.WorldViewEyeVec = -normalize( Output.WorldViewPos ); \
|
|
\
|
|
\
|
|
Output.TexCoord0 = Input.TexCoord0; \
|
|
float2 ScreenCoord = Output.Position.xy / Output.Position.w; \
|
|
Output.Fog.xy = ( ScreenCoord + 1.0f ) * 0.5f; \
|
|
Output.Fog.y = 1.0f - Output.Fog.y; \
|
|
|
|
|
|
|
|
#define CalcNormalSpecularAni \
|
|
float3 WorldViewPos = CalcBlendPosition( Input.Position, Input.nBoneIndex, Input.fWeight ); \
|
|
\
|
|
Output.Position = mul( float4( WorldViewPos, 1.f ) , g_ProjMat ); \
|
|
Output.WorldViewPos = WorldViewPos; \
|
|
Output.WorldViewEyeVec = -normalize( WorldViewPos ); \
|
|
\
|
|
Output.WorldViewNormal = CalcBlendNormal( Input.Normal, Input.nBoneIndex, Input.fWeight ); \
|
|
Output.WorldViewTangent = mul( Input.Tangent, g_WorldViewMatArray[ Input.nBoneIndex.x ] ); \
|
|
Output.WorldViewBinormal = mul( Input.Binormal, g_WorldViewMatArray[ Input.nBoneIndex.x ] ); \
|
|
\
|
|
\
|
|
Output.TexCoord0 = Input.TexCoord0; \
|
|
float2 ScreenCoord = Output.Position.xy / Output.Position.w; \
|
|
Output.Fog.xy = ( ScreenCoord + 1.0f ) * 0.5f; \
|
|
Output.Fog.y = 1.0f - Output.Fog.y; \
|