在SlimDX(D3D9)中启用antialising [英] Enabling antialising in SlimDX (D3D9)
问题描述
我想在绘制如下图所示的三角形时启用抗锯齿功能:
我在XNA上找到了一种方法来处理本页面,但我想用 SlimDX 完成相同的操作。
code> Multisample = MultisampleType.FourSamples,
MultisampleQuality = 4
(默认情况下它是,但从来没有确定):
device.SetRenderState(RenderState.MultisampleAntialias,true );
当然有不同类型的样品,要找到质量/样品,请使用以下方法: p>
new Direct3D()。CheckDeviceMultisampleType
在dx10 +设备上,当您创建交换链时,您有一个SampleDescription参数,
因此设置样本计数/质量相应
SampleDescription samdesc = new SampleDescription(4,4);
枚举允许的samplecount / quality组合:
int maxsamplecount = Device.MultisampleCountMaximum
然后遍历样本计数使用:
int maxquality = device.CheckMultisampleQualityLevels(format,sampleCount);
如果样本数不被支持,它将返回0。
I would like to enable antialiasing when drawing triangles like on the following picture:
I found a way to do it with XNA on this page but I want to do the same with SlimDX.
On SlimDX/Directx9, when you create your swapchain, use this in PresentParameters:
Multisample = MultisampleType.FourSamples,
MultisampleQuality = 4
Also make sure that the multisample state is on (By default it is, but never sure):
device.SetRenderState(RenderState.MultisampleAntialias, true);
There's of course different type of samples, to find quality/samples, use the following method:
new Direct3D().CheckDeviceMultisampleType
On dx10+ device, when you create your swapchain, you have a SampleDescription parameter,
so set samples count/quality accordingly
SampleDescription samdesc = new SampleDescription(4, 4);
To enumerate allowed samplecount/quality combinations:
int maxsamplecount = Device.MultisampleCountMaximum
Then iterate for sample count using:
int maxquality = device.CheckMultisampleQualityLevels(format, sampleCount);
It will return 0 if sample count is not supported.
这篇关于在SlimDX(D3D9)中启用antialising的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!