C# 单游戏-混合状态-2D SpriteBatch
我需要C# 单游戏-混合状态-2D SpriteBatch,c#,.net,ios,xamarin.ios,monogame,C#,.net,Ios,Xamarin.ios,Monogame,我需要SpriteBatch以在WPF或普通UIKit应用程序中预期的方式渲染图像: 正如您所期望的那样,部分透明的PNG彼此重叠渲染 我有一个可以修改的alpha,最好是像使用Color.White和修改A值这样的东西 最近使用的是BlendState.NonPremultiplied,但我看到一些奇怪的线条,其中部分透明的PNG相互重叠 我在Windows上遇到了类似的问题,但通过更改XNA内容项目中的预乘设置来修复了它。我如何为MonoGame做类似的操作?(我希望OpenGL在这里会
SpriteBatch
以在WPF或普通UIKit应用程序中预期的方式渲染图像:
- 正如您所期望的那样,部分透明的PNG彼此重叠渲染
- 我有一个可以修改的alpha,最好是像使用
和修改Color.White
值这样的东西A
BlendState.NonPremultiplied
,但我看到一些奇怪的线条,其中部分透明的PNG相互重叠
我在Windows上遇到了类似的问题,但通过更改XNA内容项目中的
预乘设置来修复了它。我如何为MonoGame做类似的操作?(我希望OpenGL在这里会有所不同)我们通过使用两种不同的设置解决了这个问题
在Windows和XNA上:
- 使用
BlendState.非乘性
- 将所有PNG的内容项目的默认设置更改为Premultiply=False
- 要修改精灵的Alpha值,请使用
Color.White
并设置a
值
关于MonoGame和iOS:
- 使用
BlendState.AlphaBlend
- 保持PNG不变
- 要修改精灵的Alpha值,请使用
Color.White*(float)Alpha/(float)byte.MaxValue
我的PNG不是预先倍增的,它的使用和你从Photoshop中所期望的完全一样