XNA3.1 HLSL Vertex Shader - Czemu nie przekazuje parametru

0

Niewiem juz co z tym kodem jest źle. Pomóżcie!

Program nie przekazuje współrzędnych normalnej do Vertex Shadera. Zamiast wartosci zawsze przekazuje wektor [1, 1, 1].

Funkcja ktorej używam do rysowania:

        public void Draw()
        {
            Cam.effect.Parameters["Projection"].SetValue(Cam.Projection);
            Cam.effect.Parameters["View"].SetValue(Cam.ModelView);
            Cam.effect.Parameters["World"].SetValue(Cam.WorldMatrix);
            Cam.effect.Begin();
            foreach(EffectPass pass in Cam.effect.CurrentTechnique.Passes)
            {
                pass.Begin();
                Camera.Device.DrawUserPrimitives<VertexPositionNormal>(PrimitiveType.TriangleList, Triangle, 0, 1);
                pass.End();
            }
            Cam.effect.End();
        }

a tutaj kod Vertex Shadera:

VertexShaderOutput VertexShaderFunction(float4 Position : POSITION, float3 Normal : NORMAL)
{
    VertexShaderOutput output;
    float4 TransformedNormal = normalize(mul(float4(Normal, 0), World));
    
    float4 WorldPosition = mul(Position, World);
    float4 ViewPosition = mul(WorldPosition, View);
    output.Position = mul(ViewPosition, Projection);
    
    float NdotL = dot(TransformedNormal, -DiffuseDirection);
    
    output.Color = float4(NdotL, NdotL, NdotL, 1);
    return output;
}
0

Problem sam się rozwiązał [green] W złym miejscu wstawilem VertexDeclaration.

Temat do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1