2

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

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

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

我怎么画它?如果真的需要使用着色器,谁能给我一个例子或提示?

4

2 回答 2

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

您至少可以在其中找到一些基本的着色器示例。

于 2012-09-28T16:55:31.047 回答
0

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

device.SetRenderState<FillMode>(RenderState.FillMode, FillMode.Wireframe);
于 2014-04-09T04:07:22.547 回答