我想在运行时启用/禁用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的整数,对象似乎会消失。奇异的样本没用,所以我需要在那里有更大的值。我做错了吗?
答案 0 :(得分:0)
目前,monogame不支持MSAA。请改用https://github.com/SeriousMaxx/FXAAMonoGame。
它将提供非常高质量的后期处理AA。