首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DX11中的顶点缠绕顺序

DX11中的顶点缠绕顺序
EN

Stack Overflow用户
提问于 2014-05-21 17:39:21
回答 1查看 7.6K关注 0票数 3

我试图用dx11绘制一个简单的正方形,但是每个三角形的索引顺序决定了它是否出现。在栅格化状态下,我将裁剪模式设置为none,但它似乎没有改变任何东西。

如果我指定第一个三角形的顶点为0,1,2,而不是2,1,0,那么这个三角形就不会出现。所以我的问题是,我是否需要用一种特定的方式排列三角形的顶点,而不考虑裁剪模式?

我在画三角名单而不是条子。

代码语言:javascript
复制
UINT indices[] = {2, 1, 0, 
                  1, 3, 0};


MeshVertex vertices[] = 
{
    { Vector3(1.0f, 1.0f, 0.0f)}, //Top Right
    { Vector3(-1.0f, -1.0f, 0.0f)}, //Bottom Left
    { Vector3(1.0f, -1.0f, 0.0f)}, //Bottom Right
    { Vector3(-1.0f, 1.0f, 0.0f)} //Top Left
};

mesh = new Mesh(vertices, indices, 4, 6, shader);
EN

回答 1

Stack Overflow用户

发布于 2014-05-22 06:16:20

所以我的问题是,我是否需要用一种特定的方式排列三角形的顶点,而不考虑裁剪模式? **按顺时针顺序定义/绘制顶点,不要更改默认的裁剪模式。**

要确定是否可以显示三角形,必须考虑两个因素。

  1. 在默认情况下,Direct3D将按顺时针顺序定义的顶点处理为正面,而除正面以外的所有面都是背面。
  2. 在默认情况下,裁剪模式下,Direct3D将裁剪背面(按逆时针顺序定义的顶点)。

您可以在描述结构中设置正面和剔除模式。

当您将裁剪模式更改为NONE时,没有看到差异的原因是因为两个三角形的顺序是相同的,而D3D11_CULL_NONE的意思是没有选择任何面孔。

如果三角形1为顺时针顺序,而三角形2为逆时针顺序,则当您将裁剪模式设置为D3D11_CULL_FRONT或D3D11_CULL_BACK时,只会看到一个三角形,并在将其设置为D3D11_CULL_NONE时都会看到。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23790272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档