【问题标题】:errorX3013: vertex shader does not take 0 argumentserrorX3013:顶点着色器不采用 0 个参数
【发布时间】:2012-12-22 21:30:08
【问题描述】:

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

但是自动取款机。我完全停留在最基本的部分。我的顶点着色器无法编译并出现以下错误消息:

错误 1 ​​编译时出错 ...\x.fx:

...\x.fx(32,43): error X3013: 'VertexShaderFunction': function does not take 0 parameters ...\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, 我的显卡是 Intel GMA 4500MHD(因此它应该允许着色器模型 4.0)

【问题讨论】:

    标签: xna hlsl


    【解决方案1】:

    我走了,回答我自己的问题 - 多么愚蠢的错误(而且很难找到):

    它是 CompileShader() 而不是 Compile()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多