首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带抗锯齿功能的XNA3.1 DrawUserPrimitives - MultiSampling不工作?

带抗锯齿功能的XNA3.1 DrawUserPrimitives - MultiSampling不工作?
EN

Stack Overflow用户
提问于 2012-12-11 00:54:50
回答 1查看 670关注 0票数 2

所以这是我今天早些时候提出的一个问题的延续。我已经使用XNA3.1的DrawUserPrimitives方法为自己建立了一些漂亮的丝带轨迹,本质上是通过在运动发生时扩展多边形。这一切看起来超级光滑和漂亮,除了一件事-抗锯齿。我无论如何也想不出如何应用它。

我已经在游戏构造函数中设置了这个:

代码语言:javascript
复制
graphics.PreferMultiSampling = true;

我还添加了这个来测试硬件:

代码语言:javascript
复制
        graphics.PreparingDeviceSettings += new EventHandler<PreparingDeviceSettingsEventArgs>((sender, e) =>
        {
            PresentationParameters parameters = e.GraphicsDeviceInformation.PresentationParameters;
            parameters.MultiSampleQuality = 0;

        #if XBOX
                pp.MultiSampleType = MultiSampleType.FourSamples;
                return;
        #else

            int quality;
            GraphicsAdapter adapter = e.GraphicsDeviceInformation.Adapter;
            SurfaceFormat format = adapter.CurrentDisplayMode.Format;

            if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format, false, MultiSampleType.FourSamples, out quality))
            {
                parameters.MultiSampleType = MultiSampleType.FourSamples;
            }
            else if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format, false, MultiSampleType.TwoSamples, out quality))
            {
                parameters.MultiSampleType = MultiSampleType.TwoSamples;
            }
        #endif
        });

通过添加一些打印行,我知道我的硬件可以支持4个样本AA,但这一切似乎都没有区别。我就是不能让它起作用。

以下是我的一条路线的截图,其中应用了所有代码:

如果能帮上忙我会很感激的。我在一段时间之前看过这个,以寻找不同问题的解决方案,但当时也无法让它工作。

好吧,干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-11 03:53:51

也解决了这个问题!

问题是,虽然后台缓冲区获得了正确的抗锯齿设置,但渲染目标却没有。这意味着绘制到渲染目标时没有使用AA,但随后绘制到后台缓冲区的纹理是使用AA完成的。我已经把它修好了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13805474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档