2017-07-31 64 views
0

它說:Invalid vs_2_0輸出語義SV_Target錯誤:無效的vs_2_0輸出語義

因此,由於某些原因,Visual Studio 2017正在編譯我的像素着色器,就好像它是頂點着色器。但在屬性面板中,我將它指定爲ps_5_0。有什麼我錯過了,應該指定?

頂點着色器: -

cbuffer ConstantBuffer : register(b0) 
{ 
    matrix World; 
    matrix View; 
    matrix Projection; 
} 

struct Input { 
    float3 Pos : POSITION; 
    float4 Color: COLOR; 
}; 

struct VS_OUTPUT 
{ 
    float4 Pos : SV_POSITION; 
    float4 Color : COLOR0; 
}; 

VS_OUTPUT main(Input input) 
{ 
    VS_OUTPUT output = (VS_OUTPUT)0; 

    output.Pos = mul(input.Pos, World); 
    output.Pos = mul(output.Pos, View); 
    output.Pos = mul(output.Pos, Projection); 

    output.Color = input.Color; 
    return output; 
} 

像素着色器: -

struct VS_OUTPUT 
{ 
    float4 Pos : SV_POSITION; 
    float4 Color : COLOR0; 
}; 

float4 main(VS_OUTPUT input) : SV_Target 
{ 
    return input.Color; 
} 

而且here是我對像素着色器設置。 我希望有人能幫助我。

+0

您是否在屬性面板中檢查了目標和平臺,VS2017在過去的版本中行爲發生了重大變化,並且面板不再以當前的IDE設置打開並跟蹤自己的行爲。 – galop1n

回答

0

公開賽在HLSL編譯器/一般/着色器類型的屬性頁.hlsl文件,並選擇的Pixel Shader