1

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

4

2 回答 2

4

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

编辑:

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

于 2011-11-29T19:28:53.343 回答
0

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

spriteBatch.Draw(texture, position, sourceRect, Color.White * 0.5f, .......)
于 2011-11-30T06:20:52.953 回答