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) だけです。