我是 HLSL 和着色器的新手。我似乎无法替换我检索到的颜色。它用于二维文本,即字幕。问题是如果我在 main() 之外设置 osd_color 它不会显示任何内容。我正在使用 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)..