无法在 MonoGame 中启用 MSAA
Can't enable MSAA in MonoGame
我想在运行时 enable/disable MSAA,为了做到这一点,我有这个功能:
GraphicsDeviceManager _graphics = new GraphicsDeviceManager(this)
...
private void ChangeMsaaSetting(bool enable)
{
_graphics.PreferMultiSampling = enable;
var rasterizerState = new RasterizerState
{
MultiSampleAntiAlias = enable,
};
GraphicsDevice.RasterizerState = rasterizerState;
GraphicsDevice.PresentationParameters.MultiSampleCount = enable ? 2 : 0;
_graphics.ApplyChanges();
}
在我称之为之前一切正常:场景中的对象使用像素化边缘进行渲染。一旦调用传递 true
的函数,模型就会消失,我只剩下 CornflowerBlue 背景,我用 GraphicsDevice
清除了
但是在我调用 ChangeMsaaSetting(false)
之后对象又开始渲染了。
我做了一些实验,如果 MultiSampleCount
设置为大于 1 的整数,对象似乎会消失。奇异样本没有用,所以我需要在那里有一个更大的值。我做错了什么吗?
单人游戏目前不支持 MSAA。请改用 https://github.com/SeriousMaxx/FXAAMonoGame。
它将提供非常高质量的 post 工艺 AA。
我想在运行时 enable/disable MSAA,为了做到这一点,我有这个功能:
GraphicsDeviceManager _graphics = new GraphicsDeviceManager(this)
...
private void ChangeMsaaSetting(bool enable)
{
_graphics.PreferMultiSampling = enable;
var rasterizerState = new RasterizerState
{
MultiSampleAntiAlias = enable,
};
GraphicsDevice.RasterizerState = rasterizerState;
GraphicsDevice.PresentationParameters.MultiSampleCount = enable ? 2 : 0;
_graphics.ApplyChanges();
}
在我称之为之前一切正常:场景中的对象使用像素化边缘进行渲染。一旦调用传递 true
的函数,模型就会消失,我只剩下 CornflowerBlue 背景,我用 GraphicsDevice
清除了
但是在我调用 ChangeMsaaSetting(false)
之后对象又开始渲染了。
我做了一些实验,如果 MultiSampleCount
设置为大于 1 的整数,对象似乎会消失。奇异样本没有用,所以我需要在那里有一个更大的值。我做错了什么吗?
单人游戏目前不支持 MSAA。请改用 https://github.com/SeriousMaxx/FXAAMonoGame。
它将提供非常高质量的 post 工艺 AA。