Directx 尝试使用TriangleStrip Topologu创建三角形时的奇怪行为

Directx 尝试使用TriangleStrip Topologu创建三角形时的奇怪行为,directx,directx-11,directx-10,Directx,Directx 11,Directx 10,我尝试在中创建这个2D三角形,将输入汇编程序设置为三角形带: 1.(0.0f, 0.0f, 0.5f) 2.(-0.5f, 0.0f, 0.5f) 3.(-0.5f, -0.5f, 0.5f) 但是,没有绘制三角形,事实上渲染目标上没有绘制任何东西,甚至没有绘制一条直线。我到处乱搞,然后我交换了坐标2和3,结果成功了。三角形是按我的意图画的。这种奇怪行为的原因是什么?您以逆时针顺序定义顶点,而Direct3D默认情况下将以逆时针顺序定义消隐面,因此在背面消隐期间对三角形进行消隐,因此您没有得到

我尝试在中创建这个2D三角形,将输入汇编程序设置为三角形带:

1.(0.0f, 0.0f, 0.5f)
2.(-0.5f, 0.0f, 0.5f)
3.(-0.5f, -0.5f, 0.5f)

但是,没有绘制三角形,事实上渲染目标上没有绘制任何东西,甚至没有绘制一条直线。我到处乱搞,然后我交换了坐标
2
3
,结果成功了。三角形是按我的意图画的。这种奇怪行为的原因是什么?

您以逆时针顺序定义顶点,而Direct3D默认情况下将以逆时针顺序定义消隐面,因此在背面消隐期间对三角形进行消隐,因此您没有得到任何渲染

当你在DirectX中画一个三角形时,你应该考虑两件事。< /P>
  • 定义顶点的顺序
  • 当前使用的剔除模式
  • 定义顶点的顺序决定了正面和背面。前面是按顺时针顺序定义顶点的面,请尝试按顺时针顺序定义顶点

    消隐模式指定如何消隐背面三角形,请尝试使用D3D11_CULL_NONE测试代码,这将确保无论顶点的定义顺序如何,都将渲染每个三角形

    绘制三角形条带时应小心,因为背面消隐标志在偶数三角形上自动翻转。考虑下面的图片。对于第一个三角形v1v2v3,消隐模式为逆时针方向,它将被渲染;对于第二个三角形v2v3v4,消隐模式翻转为顺时针方向,它也将被渲染。对于第三个三角形,消隐模式再次更改,依此类推。如果要渲染这样的三角形条带,应按以下顺序定义顶点:v1、v2、v3、v4、。。。越南


    您以逆时针顺序定义顶点,而Direct3D默认情况下将以逆时针顺序定义消隐面,因此在背面消隐期间对三角形进行消隐,因此不会渲染任何内容

    当你在DirectX中画一个三角形时,你应该考虑两件事。< /P>
  • 定义顶点的顺序
  • 当前使用的剔除模式
  • 定义顶点的顺序决定了正面和背面。前面是按顺时针顺序定义顶点的面,请尝试按顺时针顺序定义顶点

    消隐模式指定如何消隐背面三角形,请尝试使用D3D11_CULL_NONE测试代码,这将确保无论顶点的定义顺序如何,都将渲染每个三角形

    绘制三角形条带时应小心,因为背面消隐标志在偶数三角形上自动翻转。考虑下面的图片。对于第一个三角形v1v2v3,消隐模式为逆时针方向,它将被渲染;对于第二个三角形v2v3v4,消隐模式翻转为顺时针方向,它也将被渲染。对于第三个三角形,消隐模式再次更改,依此类推。如果要渲染这样的三角形条带,应按以下顺序定义顶点:v1、v2、v3、v4、。。。越南