首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SlimDX Direct3D11中的线框

SlimDX Direct3D11中的线框
EN

Stack Overflow用户
提问于 2012-09-23 19:53:28
回答 2查看 1.6K关注 0票数 2

我正在尝试使用SlimDX渲染一个线框3D模型。

在谷歌搜索后,我只找到了高级主题,而不是如何在SlimDX中绘制线框。他们说我必须使用着色器来完成此操作。

因为我是新接触DirectX的人,所以我并不真正理解HLSL。

我该怎么画呢?如果真的需要使用着色器,有没有人能给我举个例子或者给点提示?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-29 00:55:31

由于使用的是Direct3D 11,因此需要使用着色器绘制任何内容(修复了从directx10中删除的函数)。

对于线框图,你确实需要设置光栅化状态,这里有一个例子(我在这里也去掉了剔除:

代码语言:javascript
复制
RasterizerStateDescription rsd = new RasterizerStateDescription()
{
    CullMode = CullMode.None,
    DepthBias = 0,
    DepthBiasClamp = 0.0f,
    FillMode = FillMode.Wireframe,
    IsAntialiasedLineEnabled = false,
    IsDepthClipEnabled = false,
    IsFrontCounterclockwise = false,
    IsMultisampleEnabled = false,
    IsScissorEnabled = false,
    SlopeScaledDepthBias = 0.0f             
};

然后应用此状态,

代码语言:javascript
复制
RasterizerState rs = RasterizerState.FromDescription(device, rsd);
device.ImmediateContext.Rasterizer.State = rs;

在我承认没有那么多针对SlimDX的教程之后,针对c++的教程有

http://www.rastertek.com/tutdx11.html

你至少可以在那里找到一些基本的着色器示例。

票数 3
EN

Stack Overflow用户

发布于 2014-04-09 12:07:23

以下是我的发现,它对我很有效:

代码语言:javascript
复制
device.SetRenderState<FillMode>(RenderState.FillMode, FillMode.Wireframe);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12552140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档