我正在尝试使用SlimDX渲染线框3D模型。
谷歌搜索后我只发现了高级主题,而不是如何在SlimDX中绘制线框。 他们说我必须使用着色器来做它。
由于我是DirectX的新手,我不太了解HLSL。
我该如何画画?如果真的需要使用着色器,有人可以给我一个示例或提示吗?
答案 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);