C#XNA如何更改整个Texture2D的alpha?

时间:2011-11-29 19:25:32

标签: c# xna transparency alpha texture2d

是否可以永久更改纹理的alpha值而不将其渲染到另一个表面?

2 个答案:

答案 0 :(得分:4)

您可以使用Texture2D.GetData<Color>()Texture2D.SetData<Color>()并覆盖Alpha值。

编辑:

使用具有预乘alpha的纹理时,此方法可能有点棘手。

答案 1 :(得分:0)

如果您需要更改游戏中的透明度,只需将Color.White乘以您希望透明的数量。这几乎没有额外的开销,因为像素颜色值已经乘以您传递到绘制函数的颜色。它每循环只需1次额外的翻牌。

spriteBatch.Draw(texture, position, sourceRect, Color.White * 0.5f, .......)