无法在 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。