Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XNA反别名问题!_Xna_Antialiasing_Multisampling - Fatal编程技术网

XNA反别名问题!

XNA反别名问题!,xna,antialiasing,multisampling,Xna,Antialiasing,Multisampling,我在XNA和抗锯齿方面有问题。我可以使用 graphics.PreferMultiSampling = true; graphics.ApplyChanges(); 然而,这只是2倍的抗锯齿。即使我设定 graphics.GraphicsDevice.PresentationParameters.MultiSampleType = MultiSampleType.SixteenSamples; 它只保留2倍的抗锯齿效果。如果我转到我的图形驱动程序设置(NVID

我在XNA和抗锯齿方面有问题。我可以使用

        graphics.PreferMultiSampling = true;
        graphics.ApplyChanges();
然而,这只是2倍的抗锯齿。即使我设定

graphics.GraphicsDevice.PresentationParameters.MultiSampleType = MultiSampleType.SixteenSamples;
它只保留2倍的抗锯齿效果。如果我转到我的图形驱动程序设置(NVIDIA GeForce 9800 GT)并将“应用程序决定”中的抗锯齿类型设置为16x,那么我将获得良好且干净的抗锯齿效果。但如果设置为“应用程序决定”,我不会得到超过2倍的结果

有人知道为什么吗?
谢谢

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

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

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


所以,我不知道要获得16XAA需要使用什么设置;您可能需要对其进行一些操作。

您在哪个功能中设置图形参数?在调用ApplyChanges()之前,您是否都进行了设置?我在Game类的构造函数中调用的第一段代码和在LoadContent()函数中调用的第二段代码,之后我再次调用graphics.ApplyChanges()