DragonNest/Tools/Shaders/CalcNormalMap.fxh
Cussrro 243fadee1d 1
2024-12-26 14:04:28 +08:00

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; \