在SlimDX(D3D9)中启用antialising [英] Enabling antialising in SlimDX (D3D9)

查看:366
本文介绍了在SlimDX(D3D9)中启用antialising的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆