错误:vs_2_0输出语义无效

问题描述 投票:3回答:2

它说:Invalid vs_2_0输出语义SV_Target

因此,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是我对像素着色器的设置。我希望有一个人可以帮助我。

hlsl
2个回答
6
投票

打开.hlsl文件的“属性”页面,在“HLSL编译器/常规/着色器类型”中选择“像素着色器”。


0
投票

并且不要忘记将此属性设置为调试和发布。

© www.soinside.com 2019 - 2024. All rights reserved.