5

HLSL とシェーダーは初めてです。私が取り戻す色を置き換えることはできないようです。2D テキスト、つまり字幕で使用します。問題は、osd_color を main() の外側に設定すると、何も表示されないことです。Shazzam Shader Editor 1.4 を使用して効果をすばやく確認していますが、プログラムでも同じことが起こります。

sampler2D texture0 : register(s0);

float4 osd_color = float4(0,0,0,1);
struct PixelShaderInput
{
    float2 uv0: TEXCOORD0;          
    float4 color: COLOR;
};

float4 main(PixelShaderInput input): COLOR {
float4 color = tex2D(texture0, input.uv0) * osd_color;
return color;
}

お役に立てれば幸いです。

編集:

その間、影/輪郭を追加してその色も返したい場合は、どうすればよいですか? すべての変数が機能するとしましょう。また、osd_color は白、float4 のアウトラインは黒です。私はもう試した:

float4 outline = tex2D(texture0, (input.uv0 * 1.1) ) * outline_color;
return color + outline;

これで得られるのは白い色 (osd_color) だけです。

4

1 に答える 1