无法在MonoGame中启用MSAA

时间:2016-11-26 17:53:45

标签: c# xna monogame antialiasing msaa

我想在运行时启用/禁用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的整数,对象似乎会消失。奇异的样本没用,所以我需要在那里有更大的值。我做错了吗?

1 个答案:

答案 0 :(得分:0)

目前,monogame不支持MSAA。请改用https://github.com/SeriousMaxx/FXAAMonoGame

它将提供非常高质量的后期处理AA。