SlimDX Direct3D11中的线框

时间:2012-09-23 11:53:28

标签: c# 3d slimdx direct3d11

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

谷歌搜索后我只发现了高级主题,而不是如何在SlimDX中绘制线框。 他们说我必须使用着色器来做它。

由于我是DirectX的新手,我不太了解HLSL。

我该如何画画?如果真的需要使用着色器,有人可以给我一个示例或提示吗?

2 个答案:

答案 0 :(得分:3)

由于你使用Direct3D 11,你需要使用着色器绘制任何东西(固定功能已从directx10中删除)。

对于线框,你确实需要设置光栅化器状态,​​这是一个例子(我也删除了那里的剔除:

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             
};

然后应用此状态,

RasterizerState rs = RasterizerState.FromDescription(device, rsd);
device.ImmediateContext.Rasterizer.State = rs;

在我承认SlimDX没有那么多教程之后,对于c ++来说,有

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

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

答案 1 :(得分:0)

这是我发现的,它对我有用:

device.SetRenderState<FillMode>(RenderState.FillMode, FillMode.Wireframe);