【发布时间】:2012-09-10 12:10:30
【问题描述】:
我想在绘制三角形时启用抗锯齿,如下图所示:
我在this page 上找到了使用 XNA 的方法,但我想对 SlimDX 做同样的事情。
【问题讨论】:
标签: geometry antialiasing slimdx multisampling
我想在绘制三角形时启用抗锯齿,如下图所示:
我在this page 上找到了使用 XNA 的方法,但我想对 SlimDX 做同样的事情。
【问题讨论】:
标签: geometry antialiasing slimdx multisampling
在 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。
【讨论】: