errorX3013:顶点着色器不带0个参数

时间:2012-12-22 21:30:09

标签: xna hlsl

我开始使用Shader Model 4.0,我正在尝试设置一个基本的示例项目。 (基本上渲染并点亮一个立方体)

但是atm。我完全被困在最基本的部分。我的顶点着色器将无法编译,并显示以下错误消息:

错误1错误编译... \ x.fx:

... \ x.fx(32,43):错误X3013:'VertexShaderFunction':函数不接受0参数 ... \ x.fx 32 43 ...

我的代码到现在为止:

float4x4 World;
float4x4 View;
float4x4 Projection;

struct VS_INPUT
{
    float4 Position : POSITION;
};

struct VS_OUTPUT
{
    float4 Position : POSITION;
};

VS_OUTPUT VertexShaderFunction(in VS_INPUT input)
{
    VS_OUTPUT output;

    float4 worldPosition = mul(input.Position, World);
    float4 viewPosition = mul(worldPosition, View);
    output.Position = mul(viewPosition, Projection);

    return output;
}

technique Technique1
{
    pass Pass1
    {
        SetVertexShader( Compile( vs_4_1, VertexShaderFunction() ) );
        SetGeometryShader(NULL);
        SetPixelShader( NULL );
    }
}

VS_INPUT参数明确标记为输入而不是统一。结构为每个成员(也是唯一的一个)分配输入语义。有没有人知道为什么这不能正确编译?

我正在使用 Win7 Ultimate + DirectX11 + XNA GameStudio 4.0 , 我的显卡是英特尔GMA 4500MHD (所以它应该允许着色器模型4.0)

1 个答案:

答案 0 :(得分:0)

和她我去,回答我自己的问题 - 这是一个多么愚蠢的错误(很难找到):

它是CompileShader()而不是Compile()