2015-02-06 109 views
0

我搜索了这个相当多的东西,找不到解决方案为我的生活。我正在使用Direct3D 11(在教程/ Sample/- 多维数据集之一中)。它使用.fx,我知道它已被弃用,但没有任何教程不使用它。非常多,每当我构建我的程序时,我都会收到错误“fxc.exe退出代码1”。这是我在“Shader.fx”代码:遇到此FXC错误?

// 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。

回答

2

您需要将Shader Type设置为Effect (/fx),Shade Model设置为Shader Model 5 (/5_0)才能使用VS 2013构建传统Effects 11着色器。确保您为所有配置和所有平台设置了.fx文件属性。

fx file property page

你应该看看使用Effects 11 CodePlex上版本已更新,以建立VS 2013,而不遗留的DirectX SDK中的各种Win32 desktop samples

而且有教程不使用传统的影响,包括Direct3D Tutorial Win32 Sample和(中)教程DirectX Tool Kit,当然Windows应用商店的应用程序适用于Windows 8.x的tutorials

+0

谢谢!那样做了!我也必须在这里进行一些调整,但它的工作! (调整是与代码无关的代码块中的错误) – AceDawg45 2015-02-07 21:10:02