我正在尝试使用SlimDX渲染一个线框3D模型。
在谷歌搜索后,我只找到了高级主题,而不是如何在SlimDX中绘制线框。他们说我必须使用着色器来完成此操作。
因为我是新接触DirectX的人,所以我并不真正理解HLSL。
我该怎么画呢?如果真的需要使用着色器,有没有人能给我举个例子或者给点提示?
发布于 2012-09-29 00:55:31
由于使用的是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
你至少可以在那里找到一些基本的着色器示例。
发布于 2014-04-09 12:07:23
以下是我的发现,它对我很有效:
device.SetRenderState<FillMode>(RenderState.FillMode, FillMode.Wireframe);https://stackoverflow.com/questions/12552140
复制相似问题