是否可以永久更改纹理的alpha值而不将其渲染到另一个表面?
答案 0 :(得分:4)
您可以使用Texture2D.GetData<Color>()
和Texture2D.SetData<Color>()
并覆盖Alpha值。
使用具有预乘alpha的纹理时,此方法可能有点棘手。
答案 1 :(得分:0)
如果您需要更改游戏中的透明度,只需将Color.White乘以您希望透明的数量。这几乎没有额外的开销,因为像素颜色值已经乘以您传递到绘制函数的颜色。它每循环只需1次额外的翻牌。
spriteBatch.Draw(texture, position, sourceRect, Color.White * 0.5f, .......)