【问题标题】:Enabling antialising in SlimDX (D3D9)在 SlimDX (D3D9) 中启用抗锯齿
【发布时间】:2012-09-10 12:10:30
【问题描述】:

我想在绘制三角形时启用抗锯齿,如下图所示:

我在this page 上找到了使用 XNA 的方法,但我想对 SlimDX 做同样的事情。

【问题讨论】:

    标签: geometry antialiasing slimdx multisampling


    【解决方案1】:

    在 SlimDX/Directx9 上,当您创建交换链时,在 PresentParameters 中使用它:

    Multisample = MultisampleType.FourSamples,
    MultisampleQuality = 4
    

    还要确保多重采样状态处于打开状态(默认情况下是打开的,但永远不确定):

    device.SetRenderState(RenderState.MultisampleAntialias, true);
    

    当然有不同类型的样品,要找到质量/样品,请使用以下方法:

    new Direct3D().CheckDeviceMultisampleType
    

    在 dx10+ 设备上,当您创建交换链时,您有一个 SampleDescription 参数,

    所以相应地设置样本数量/质量

    SampleDescription samdesc = new SampleDescription(4, 4);
    

    枚举允许的样本数/质量组合:

    int maxsamplecount = Device.MultisampleCountMaximum
    

    然后使用以下方法迭代样本计数:

    int maxquality = device.CheckMultisampleQualityLevels(format, sampleCount);
    

    如果不支持样本计数,它将返回 0。

    【讨论】:

    • 非常感谢!!!!我一直在努力解决这个问题,并找到了一个糟糕的解决方法......此外,今天是我的生日,所以再次非常感谢你!享受你的赏金奖励;)
    • 谢谢,希望你生日快乐)
    • 您好 carflier,这不适用于将当前参数“windowed”设置为 false,您有什么想法吗?
    • 我创建了一个特定的问题:stackoverflow.com/questions/12899885/…
    • @tinmaru 看到了,我马上去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多