Hi,
Can anyone tell me if something wrong with the following fx code. I am trying to import and bind the skeleton to the vertices in order to animate . Got the original code from Frank D Luna and modified a bit without the tangent part.
# include "LightHelper.fx"
cbuffer cbPerFrame
{
DirectionalLight gDirLights[3];
float3 gEyePosW;
float gFogStart;
float gFogRange;
float4 gFogColor;
};
cbuffer cbPerObject
{
float4x4 gWorld;
float4x4 gWorldInvTranspose;
float4x4 gWorldViewProj;
float4x4 gTexTransform;
Material gMaterial;
};
cbuffer cbSkinned
{
float4x4 gBoneTransforms[96];
};
Texture2D gDiffuseMap;
SamplerState samAnisotropic
{
Filter = ANISOTROPIC;
MaxAnisotropy = 4;
AddressU = WRAP;
AddressV = WRAP;
};
struct VertexIn
{
float3 PosL : POSITION;
float3 NormalL : NORMAL;
float2 Tex : TEXCOORD;
};
struct SkinnedVertexIn
{
float3 PosL : POSITION;
float3 NormalL : NORMAL;
float2 Tex : TEXCOORD;
float3 Weights : WEIGHTS;
uint4 BoneIndices : BONEINDICES;
};
struct VertexOut
{
float4 PosH : SV_POSITION;
float3 PosW : POSITION;
float3 NormalW : NORMAL;
float2 Tex : TEXCOORD;
};
VertexOut VS(VertexIn vin)
{
VertexOut vout;
vout.PosW = mul(float4(vin.PosL, 1.0f), gWorld).xyz;
vout.NormalW = mul(vin.NormalL, (float3x3) gWorldInvTranspose);
vout.PosH = mul(float4(vin.PosL, 1.0f), gWorldViewProj);
vout.Tex = mul(float4(vin.Tex, 0.0f, 1.0f), gTexTransform).xy;
return vout;
}
VertexOut SkinnedVS(SkinnedVertexIn vin)
{
VertexOut vout;
float weights[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
weights[0] = vin.Weights.x;
weights[1] = vin.Weights.y;
weights[2] = vin.Weights.z;
weights[3] = 1.0f - weights[0] - weights[1] - weights[2];
float3 posL = float3(0.0f, 0.0f, 0.0f);
float3 normalL = float3(0.0f, 0.0f, 0.0f);
for (int i = 0; i < 4; i++)
{
posL += weights[i] * mul(float4(vin.PosL, 1.0f), gBoneTransforms[vin.BoneIndices[i]]).xyz;
normalL += weights[i] * mul(vin.NormalL, (float3x3)gBoneTransforms[vin.BoneIndices[i]]).xyz;
}
vout.PosW = mul(float4(posL, 1.0f), gWorld).xyz;
vout.NormalW = mul(normalL, (float3x3)gWorldInvTranspose);
vout.PosH = mul(float4(posL, 1.0f), gWorldViewProj);
vout.Tex = mul(float4(vin.Tex, 0.0f, 1.0f), gTexTransform).xy;
return vout;
}
float4 PS(VertexOut pin, uniform int gLightCount, uniform bool gUseTexure, uniform bool gAlphaClip, uniform bool gFogEnabled) : SV_Target
{
// Interpolating normal can unnormalize it, so normalize it.
pin.NormalW = normalize(pin.NormalW);
// The toEye vector is used in lighting.
float3 toEye = gEyePosW - pin.PosW;
// Cache the distance to the eye from this surface point.
float distToEye = length(toEye);
// Normalize.
toEye /= distToEye;
// Default to multiplicative identity.
float4 texColor = float4(1, 1, 1, 1);
if (gUseTexure)
{
// Sample texture.
texColor = gDiffuseMap.Sample(samAnisotropic, pin.Tex);
if (gAlphaClip)
{
// Discard pixel if texture alpha < 0.1. Note that we do this
// test as soon as possible so that we can potentially exit the shader
// early, thereby skipping the rest of the shader code.
clip(texColor.a - 0.1f);
}
}
//
// Lighting.
//
float4 litColor = texColor;
if (gLightCount > 0)
{
// Start with a sum of zero.
float4 ambient = float4(0.0f, 0.0f, 0.0f, 0.0f);
float4 diffuse = float4(0.0f, 0.0f, 0.0f, 0.0f);
float4 spec = float4(0.0f, 0.0f, 0.0f, 0.0f);
// Sum the light contribution from each light source.
[unroll]
for (int i = 0; i < gLightCount; ++i)
{
float4 A, D, S;
ComputeDirectionalLight(gMaterial, gDirLights[i], pin.NormalW, toEye,
A, D, S);
ambient += A;
diffuse += D;
spec += S;
}
// Modulate with late add.
litColor = texColor*(ambient + diffuse) + spec;
}
//
// Fogging
//
if (gFogEnabled)
{
float fogLerp = saturate((distToEye - gFogStart) / gFogRange);
// Blend the fog color and the lit color.
litColor = lerp(litColor, gFogColor, fogLerp);
}
// Common to take alpha from diffuse material and texture.
litColor.a = gMaterial.Diffuse.a * texColor.a;
return litColor;
}
technique11 Light1
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, false)));
}
}
technique11 Light2
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, false)));
}
}
technique11 Light3
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, false)));
}
}
technique11 Light0Tex
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, false)));
}
}
technique11 Light1Tex
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, false)));
}
}
technique11 Light2Tex
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, false)));
}
}
technique11 Light3Tex
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, false)));
}
}
technique11 Light0TexAlphaClip
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, false)));
}
}
technique11 Light1TexAlphaClip
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, false)));
}
}
technique11 Light2TexAlphaClip
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, false)));
}
}
technique11 Light3TexAlphaClip
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, false)));
}
}
technique11 Light1Fog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, true)));
}
}
technique11 Light2Fog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, true)));
}
}
technique11 Light3Fog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, true)));
}
}
technique11 Light0TexFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, true)));
}
}
technique11 Light1TexFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, true)));
}
}
technique11 Light2TexFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, true)));
}
}
technique11 Light3TexFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, true)));
}
}
technique11 Light0TexAlphaClipFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, true)));
}
}
technique11 Light1TexAlphaClipFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, true)));
}
}
technique11 Light2TexAlphaClipFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, true)));
}
}
technique11 Light3TexAlphaClipFog
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, true)));
}
}
technique11 Light1Reflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, false)));
}
}
technique11 Light2Reflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, false)));
}
}
technique11 Light3Reflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, false)));
}
}
technique11 Light0TexReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, false)));
}
}
technique11 Light1TexReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, false)));
}
}
technique11 Light2TexReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, false)));
}
}
technique11 Light3TexReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, false)));
}
}
technique11 Light0TexAlphaClipReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, false)));
}
}
technique11 Light1TexAlphaClipReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, false)));
}
}
technique11 Light2TexAlphaClipReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, false)));
}
}
technique11 Light3TexAlphaClipReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, false)));
}
}
technique11 Light1FogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, true)));
}
}
technique11 Light2FogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, true)));
}
}
technique11 Light3FogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, true)));
}
}
technique11 Light0TexFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, true)));
}
}
technique11 Light1TexFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, true)));
}
}
technique11 Light2TexFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, true)));
}
}
technique11 Light3TexFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, true)));
}
}
technique11 Light0TexAlphaClipFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, true)));
}
}
technique11 Light1TexAlphaClipFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, true)));
}
}
technique11 Light2TexAlphaClipFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, true)));
}
}
technique11 Light3TexAlphaClipFogReflect
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, VS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, true)));
}
}
technique11 Light1Skinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, false)));
}
}
technique11 Light2Skinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, false)));
}
}
technique11 Light3Skinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, false)));
}
}
technique11 Light0TexSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, false)));
}
}
technique11 Light1TexSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, false)));
}
}
technique11 Light2TexSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, false)));
}
}
technique11 Light3TexSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, false)));
}
}
technique11 Light0TexAlphaClipSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, false)));
}
}
technique11 Light1TexAlphaClipSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, false)));
}
}
technique11 Light2TexAlphaClipSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, false)));
}
}
technique11 Light3TexAlphaClipSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, false)));
}
}
technique11 Light1FogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, true)));
}
}
technique11 Light2FogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, true)));
}
}
technique11 Light3FogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, true)));
}
}
technique11 Light0TexFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, true)));
}
}
technique11 Light1TexFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, true)));
}
}
technique11 Light2TexFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, true)));
}
}
technique11 Light3TexFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, true)));
}
}
technique11 Light0TexAlphaClipFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, true)));
}
}
technique11 Light1TexAlphaClipFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, true)));
}
}
technique11 Light2TexAlphaClipFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, true)));
}
}
technique11 Light3TexAlphaClipFogSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, true)));
}
}
technique11 Light1ReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, false)));
}
}
technique11 Light2ReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, false)));
}
}
technique11 Light3ReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, false)));
}
}
technique11 Light0TexReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, false)));
}
}
technique11 Light1TexReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, false)));
}
}
technique11 Light2TexReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, false)));
}
}
technique11 Light3TexReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, false)));
}
}
technique11 Light0TexAlphaClipReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, false)));
}
}
technique11 Light1TexAlphaClipReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, false)));
}
}
technique11 Light2TexAlphaClipReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, false)));
}
}
technique11 Light3TexAlphaClipReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, false)));
}
}
technique11 Light1FogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, false, false, true)));
}
}
technique11 Light2FogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, false, false, true)));
}
}
technique11 Light3FogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, false, false, true)));
}
}
technique11 Light0TexFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, false, true)));
}
}
technique11 Light1TexFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, false, true)));
}
}
technique11 Light2TexFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, false, true)));
}
}
technique11 Light3TexFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, false, true)));
}
}
technique11 Light0TexAlphaClipFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(0, true, true, true)));
}
}
technique11 Light1TexAlphaClipFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(1, true, true, true)));
}
}
technique11 Light2TexAlphaClipFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(2, true, true, true)));
}
}
technique11 Light3TexAlphaClipFogReflectSkinned
{
pass P0
{
SetVertexShader(CompileShader(vs_5_0, SkinnedVS()));
SetGeometryShader(NULL);
SetPixelShader(CompileShader(ps_5_0, PS(3, true, true, true)));
}
}
When I compile the effect file and use it to render the object the object just disappears. I mean when I loaded without trying to import the skeleton the object remained. In the graphics debugger visual studio ultimate 2013, I can make sure that in the input assembler everything is okay. I am stuck in this problem for days now and cannot debug the fx file in visual studio 2013. Can anyone give me a clue ? I have a deadline to do this project. Please give me some pointers.
About skeleton importing I used Assimp.
I stored offset matrix of every bone.
I traversed from root bone to each of the child and multiplied the child matrix with parent matrix.
I stored the weight with Bone indices in each vertices.
I think I set them correctly in the effect file.
WorldViewProj = mFX->GetVariableByName("gWorldViewProj")->AsMatrix();
World = mFX->GetVariableByName("gWorld")->AsMatrix();
WorldInvTranspose = mFX->GetVariableByName("gWorldInvTranspose")->AsMatrix();
TexTransform = mFX->GetVariableByName("gTexTransform")->AsMatrix();
EyePosW = mFX->GetVariableByName("gEyePosW")->AsVector();
FogColor = mFX->GetVariableByName("gFogColor")->AsVector();
FogStart = mFX->GetVariableByName("gFogStart")->AsScalar();
FogRange = mFX->GetVariableByName("gFogRange")->AsScalar();
DirLights = mFX->GetVariableByName("gDirLights");
Mat = mFX->GetVariableByName("gMaterial");
DiffuseMap = mFX->GetVariableByName("gDiffuseMap")->AsShaderResource();
BoneTransforms = mFX->GetVariableByName("gBoneTransforms")->AsMatrix();
I do not have anyone in my country who can help me....