Color.FromNonPremultiplied与BlendState.NonPremultiplied的不同着色

时间:2012-12-30 19:12:05

标签: colors xna alphablending premultiplied-alpha

在我的XNA项目中,我使用未经处理的图像并使用BlendState.NonPremultiplied绘制它们,使它们在边缘看起来很正常。但是当我在Color.FromNonPremultiplied(12, 34, 56, 78)方法中使用非白色(SpriteBatch.Draw)时,如果将BlendState设置为默认值,则不会对精灵进行着色。

如何实现与默认blendstate相同的着色,而无需切换到它?

1 个答案:

答案 0 :(得分:2)

文档说明了Color.FromNonPremultiplied Method:将非预乘的alpha颜色转换为包含预乘alpha的颜色。

基于此,您应该使用其中之一 BlendState.NonPremultipliedColor(12, 34, 56, 78)

OR

BlendState.AlphaBlendColor.FromNonPremultiplied(12, 34, 56, 78)

在一起。