Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用MonoGame将游戏移植到OSX:奇怪的颜色问题_Macos_Mono_Xna_Monodevelop_Monogame - Fatal编程技术网

Macos 使用MonoGame将游戏移植到OSX:奇怪的颜色问题

Macos 使用MonoGame将游戏移植到OSX:奇怪的颜色问题,macos,mono,xna,monodevelop,monogame,Macos,Mono,Xna,Monodevelop,Monogame,我的游戏项目在MonoDevelop中运行,在OSX上使用MonoGame,但是游戏中的颜色非常混乱。例如,黄色显示为蓝色。这可能是什么原因造成的?我的游戏是从XNA移植的。android和iOS端口没有这种颜色问题 所有的颜色都是错误的颜色。应该显示的颜色会显示为其他颜色。例如,黄色显示为蓝色,蓝色显示为橙色,等等。。否则,图形显示正确 我只是直接在缓冲区中使用SpriteBatch,没有对其运行任何效果或后期处理。我的Begin()代码如下: spriteBatch.Begin(Sprite

我的游戏项目在MonoDevelop中运行,在OSX上使用MonoGame,但是游戏中的颜色非常混乱。例如,黄色显示为蓝色。这可能是什么原因造成的?我的游戏是从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);

我试着用.xnb文件替换所有的.png文件,游戏仍然运行,但是我仍然得到了相同的错误颜色


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

听起来像是RGB对BGR的问题(红色和蓝色通道被交换)。如果这是MonoGame中的一个bug,我也不会感到惊讶。另外:
BlendState.Alpha
是首选-但它要求您的内容被预乘(默认情况下由XNA内容管道完成)。您好,David,您是在MacOS项目中使用xnbs还是在本机位图(png、jpeg等)?请确保您是根据monogame开发分支的最新版本进行构建,或者把它们合并到你的叉子里。我知道在过去的几个月里,在这个领域发生了几次修复。