【发布时间】: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)
【问题讨论】: