XNA Antialias问题!

时间:2009-11-23 16:54:06

标签: xna antialiasing multisampling

我遇到了XNA和抗锯齿问题。我可以使用

激活它
        graphics.PreferMultiSampling = true;
        graphics.ApplyChanges();
然而,它只有2倍的抗锯齿效果。即使我设置

graphics.GraphicsDevice.PresentationParameters.MultiSampleType = MultiSampleType.SixteenSamples;

它只能保持2倍的抗锯齿效果。如果我转到我的图形驱动程序设置(NVIDIA GeForce 9800 GT)并将应用程序中的Antialiastype设置为16x,那么我会得到漂亮而干净的抗锯齿。但是,如果它设置在'应用程序决定'上我不会超过2倍

有人知道为什么吗? 谢谢!

1 个答案:

答案 0 :(得分:4)

我会尝试在MSDN上按照这些说明操作。在XNA论坛的this thread中,Shawn Hargreaves告诉另一个人(使用类似于你的代码),这不是设置多重采样的方法。他表示在创建设备时应该在参数中指定它。 MSDN文章显示了在适当的时间设置抗锯齿的事件。 This thread基本上也表示同样的事情:你应该在事件处理程序中执行这种类型的设置。

另外,我相信MSDN示例会检查4XAA和2XAA,因此您可能需要更改代码以支持16XAA。虽然看了这个,但我在第一个链接的XNA线程中看到了这句话:

  

另外,我知道没有GPU支持16个子样本进行多重采样。例如,您在Nvidia的8000和9000系列上看到的模式名称“16x”实际上使用了4个样本,质量级别为“2”IIRC。 GPU支持的最多是8个子样本,对应于“8xQ”和“16xQ”设置。

所以,我不知道你必须使用什么设置来获得16XAA;你可能不得不玩一下。