2011-08-05 50 views
0

我有一些精灵,当它们重叠时,我希望它们将它们的颜色rgb值'添加'到(可能)变白,精灵也具有应该保持不变的changin alpha值。我已经尝试使用所有的spritebatch选项alphablend,添加剂等...XNA在重叠时添加颜色

这是可能的通过spritebatch或将我需要着色器?

谢谢, 保罗。

+1

添加剂没有给你想要的效果? –

+0

不,它不会添加只是将颜色添加到一起 - 所以绿色绿色使绿色色调更强 - 通过组合颜色来组合颜色。 – Paul

回答

0

在XNA 4中使用预乘Alpha模式,可以通过将纹理绘制在0 alpha处来进行叠加混合。因为这意味着纹理完成了0次遮挡,然后将RGB添加到它后面的像素,则可以获得叠加混合。

只需使用spritebatch模式'Alphablend'绘制0 alpha的纹理。要降低可加性,请增加alpha。为了减少可见度,降低RGB。

我强烈建议您确保您的内容中的任何纹理在其属性中勾选了“预乘Alpha”选项,如果使用此选项。

+0

虽然我不是在单独的通道寻找添加剂--RGB,所以在上面的绿色绿色产生更强的绿色色调,但我所寻找的是当颜色重叠相同的颜色时它变白其他的。 – Paul

+0

正是这样做,如果你做得对。如果你只有绿色,增加更多的绿色会让你......更明亮的绿色。在那里扔一点红/蓝,你就会得到你的结果。 –

+0

我知道这样做,但那不是我所追求的 - 我寻找绿色的绿色(即相同的颜色以及替代品)以产生白色。 我会考虑hlsl作为一个选项。 – Paul