我搜索了相当多的内容,无法为我的生活找到解决方案。我正在使用Direct3D 11(在/ Sample / - the cube one下的教程中)。它使用.fx,我知道它已被弃用,但没有没有教程可以使用它。差不多,每当我构建我的程序时,我都会收到错误" fxc.exe退出代码1"。这是我的代码" Shader.fx":
// Constant buffer
cbuffer ConstantBuffer : register(b0){
matrix World;
matrix View;
matrix Projection;
}
struct VS_OUTPUT{
float4 Pos : SV_POSITION;
float4 Color : COLOR0;
};
// Vertex Shader
VS_OUTPUT VS(float4 Pos : POSITION, float4 Color : COLOR){
VS_OUTPUT output = (VS_OUTPUT)0;
output.Pos = mul(Pos, World);
output.Pos = mul(output.Pos, View);
output.Pos = mul(output.Pos, Projection);
output.Color = Color;
return output;
}
// Pixel Shader
float4 PS(VS_OUTPUT input) : SV_Target{
return input.Color;
}
在文件的属性下,我将ShaderType设置为"效果(/ fx)"。而且我在入口点名称下没有任何东西。顺便说一句,我正在使用Visual Studio 2013。
答案 0 :(得分:2)
您需要将Shader Type设置为Effect (/fx)
并将Shade Model设置为Shader Model 5 (/5_0)
以使用VS 2013构建legacy Effects 11着色器。确保为所有设置了.fx文件属性配置和所有平台。
您应该看一下使用CodePlex版本的Effects 11和已更新的各种Win32 desktop samples,以便在没有旧版DirectX SDK的情况下为VS 2013构建。
有些教程不使用遗留效果,包括Direct3D Tutorial Win32 Sample和DirectX Tool Kit的(正在进行)教程,当然还有适用于Windows 8.x的Windows应用商店应用tutorials