Windows phone 8 如何在三角形的边上绘制边框

Windows phone 8 如何在三角形的边上绘制边框,windows-phone-8,3d,directx,hlsl,Windows Phone 8,3d,Directx,Hlsl,我正在研究用D3D绘制路线图。所以我创建了顶点缓冲区并用点来填充:{-0.5,0.5},{-0.5,-0.5},{0.5,-0.5},{0.5,0.5}。索引缓冲区如果:{0,1,2,2,3,0}。 矩形被淹没了,现在我需要在一个像素内画一个边框。请告诉我如何实现它。您可以重用顶点缓冲区,并在设备上下文中设置以下内容: deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP); 然后: device

我正在研究用D3D绘制路线图。所以我创建了顶点缓冲区并用点来填充:{-0.5,0.5},{-0.5,-0.5},{0.5,-0.5},{0.5,0.5}。索引缓冲区如果:{0,1,2,2,3,0}。
矩形被淹没了,现在我需要在一个像素内画一个边框。请告诉我如何实现它。

您可以重用顶点缓冲区,并在设备上下文中设置以下内容:

deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP);
然后:

deviceContext->Draw(4,0);

这将在矩形边框上画线。

为什么不在顶点之间画线而不是一个像素?我将画一个三角形。所以唯一的方法就是在三角形之后画线。建议:要做到这一点,你应该把顶点的z向上推,因为z缓冲区会抑制你的画。非常感谢边界正确淹没。好的一点,我不确定你是否使用深度缓冲区。您还可以在渲染线之前将深度比较设置为LESSEQUAL,通常效果很好(或在光栅化器中设置深度偏移),这样您就可以保留相同的顶点集。如何更改深度比较?此链接应该有帮助:我已经测试了LESSOREQUAL比较,它提供的质量低于通过投影矩阵移动点