0

我想在绘制三角形时启用抗锯齿,如下图所示: 在此处输入图像描述

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

4

1 回答 1

2

在 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。

于 2012-09-21T12:48:49.720 回答