【发布时间】:2014-07-06 03:25:18
【问题描述】:
好的,我知道如果顺序错误,它肯定会影响结构。 但是我有两组索引,我认为它们对于渲染立方体是正确的。 当我使用其中一个时,立方体被正确渲染,但对于另一个它不是(检查图像)。
这是我正在使用的: 以下渲染正确
GLubyte cubeIndices[24]={0,3,2,1,2,3,7,6,0,4,7,3,1,2,6,5,4,5,6,7,0,1,5,4};
glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,&cubeIndices);
这个渲染不正确
GLubyte cubeIndices[24]={1,2,3,4,5,8,7,6,1,5,6,2,2,6,7,3,3,7,8,4 ,5,1,4,8};
glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,&cubeIndices);
我使用两个顶点的相同集合。谁能告诉我为什么不工作???
【问题讨论】:
-
顶点序列
0,3,2,1和1,2,3,4可以相同吗?它们指的是不同的顶点。此外,您在“错误”缓冲区中没有0索引。无论如何,您可以自己做一个简单的研究,为顶点添加不同的颜色。这样你就可以看到事情的变化。或者使用任何图形调试工具。 -
是的,这些根本不一样。他们甚至没有使用相同的顶点。第一个使用索引范围为 0..7 的顶点,第二个使用范围为 1..8 的顶点。
-
@ASHUTOSH 我的意思是如果
0,3,2,1属于一张脸,那么4和1,2,3属于不同的脸。 -
@RetoKoradi 有帮助。第一组指标是我自己计算的指标。第二组是用blender生成的。不知道为什么blender用的是1-8而不是0-7。
-
@ASHUTOSH 网格格式的索引通常从 1 开始。这只是设计使然,我们必须忍受它,每次减去一个;)
标签: c++ opengl rendering vertices