4

我在 OS X 上使用 MonoGame 在 MonoDevelop 中运行我的游戏项目,但是游戏中的颜色非常混杂。例如,黄色显示为蓝色。这可能是什么原因造成的?我的游戏是从 XNA 移植的。android 和 iOS 端口没有这个颜色问题。

错误的颜色是所有的颜色。应该显示的颜色改为显示为其他一些颜色。例如,黄色显示为蓝色,蓝色显示为橙色等。否则图形显示正确。

我只是将 SpriteBatch 直接用于缓冲区,而不对其运行任何效果或后处理。我的代码Begin()是这样的:

spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.LinearClamp, DepthStencilState.Default, RasterizerState.CullNone, null, SpriteScale);

当我绘制纹理时,我会像这样绘制它,例如:

spriteBatch.Draw(texture, new Vector2(0f, 0f), Color.White);

屏幕截图

我尝试将所有 .png 文件替换为对应的 .xnb 文件,游戏仍然运行,但我仍然得到相同的错误颜色。

我已经意识到这BlendState.NonPremultiplied不应该是正确的,但是当我没有设置它时,我会在不应该存在的图像周围得到这些非常糟糕的轮廓和白块。

4

0 回答 0