1
Я новичок в HLSL угодить, медведь со мной ...XNA 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_sampler» - это сэмплер для маски.
Результат содержит пиксели с 1 или 0 альфа, но маска фактически размыта и содержит разные значения альфа. Что я должен добавить или изменить, чтобы сделать то, что я хочу? В противном случае это отлично работает.