【发布时间】:2016-11-26 17:53:44
【问题描述】:
我想在运行时启用/禁用 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 的整数,似乎对象会消失。奇异样本是无用的,所以我需要在那里设置更大的值。我做错了吗?
【问题讨论】:
标签: c# xna monogame antialiasing msaa