我是HLSL的新手,请耐心等待......
这是效果文件:
sampler s0;
texture tex;
sampler tex_sampler = sampler_state{Texture = tex;};
float4 PixelShaderFunction(float2 coords: TEXCOORD0) : COLOR0
{
float4 color = tex2D(s0, coords);
float4 tex_color = tex2D(tex_sampler, coords);
if (tex_color.a)
{
// SOMETHING GOES RIGHT HERE BUT I DON'T KNOW WHAT
return color;
}
return tex_color;
}
technique Technique1
{
pass Pass1
{
PixelShader = compile ps_2_0 PixelShaderFunction();
}
}
“tex”字段是掩码。 “tex_sampler”是掩码的采样器。
结果包含带有1或0 alpha的像素,但遮罩实际上是模糊的并包含不同的alpha值。我应该添加或更改什么才能使我做到我想要的?否则这完全有效。
答案 0 :(得分:0)
我相信你需要在你的技术中设置渲染。
AlphaBlendEnable = true;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;