Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 从glDrawElements切换到GLDrawArray_Opengl_Graphics_Render_Gldrawarrays - Fatal编程技术网

Opengl 从glDrawElements切换到GLDrawArray

Opengl 从glDrawElements切换到GLDrawArray,opengl,graphics,render,gldrawarrays,Opengl,Graphics,Render,Gldrawarrays,我使用LWJGL和二十面体细分算法来创建二十面体网格 我用GLD元素渲染球体,它们看起来像 ,但我希望有一个更低的多边形外观 经过一些研究,我发现glDrawArrays可以实现低多边形外观,所以我切换到glDrawArrays。不改变球体本身的任何内容(顶点数组、索引数组等),它们现在看起来就像 甚至主二十面体也完全不存在。我已经使用了二十面体的基本顶点和数组(细分算法使用它们来创建球体)来查看哪里出了问题,但我无法总结出哪里出了问题 还值得一提的是,我在glDrawElements和GLDr

我使用LWJGL和二十面体细分算法来创建二十面体网格

我用GLD元素渲染球体,它们看起来像 ,但我希望有一个更低的多边形外观

经过一些研究,我发现glDrawArrays可以实现低多边形外观,所以我切换到glDrawArrays。不改变球体本身的任何内容(顶点数组、索引数组等),它们现在看起来就像

甚至主二十面体也完全不存在。我已经使用了二十面体的基本顶点和数组(细分算法使用它们来创建球体)来查看哪里出了问题,但我无法总结出哪里出了问题

还值得一提的是,我在glDrawElements和GLDrawArray中都使用了GL_三角形


任何洞察都会很好。

不知道你要做什么
glDrawArrays()
将按顶点的原始顺序使用顶点,而不使用任何索引。因此,如果你构建了依赖于索引顶点的几何体,那么它当然会呈现出完全错误的效果。我尝试手动重新排列顶点(这并不容易),但运气不佳。如果我不包括指数,模型就不会出现。这是一个很好的信息,关于glDrawArrays(),我不知道。对于GL_三角形和GL_三角形带来说都是这样吗?不清楚您认为使用gldrawArray和glDrawElements可以实现什么。它们之间唯一的区别是一个使用指数,另一个不使用指数。因此,一般来说,您不能简单地在两者之间切换并期望得到相同的结果。是的,这完全不依赖于原语类型。另一种描述方法是
glDrawArrays()
相当于将
glDrawElements()
与包含序列(0,1,2,3,…,n-1)的索引数组一起使用,其中n为顶点数。不确定要将其用于何处
glDrawArrays()
将按顶点的原始顺序使用顶点,而不使用任何索引。因此,如果你构建了依赖于索引顶点的几何体,那么它当然会呈现出完全错误的效果。我尝试手动重新排列顶点(这并不容易),但运气不佳。如果我不包括指数,模型就不会出现。这是一个很好的信息,关于glDrawArrays(),我不知道。对于GL_三角形和GL_三角形带来说都是这样吗?不清楚您认为使用gldrawArray和glDrawElements可以实现什么。它们之间唯一的区别是一个使用指数,另一个不使用指数。因此,一般来说,您不能简单地在两者之间切换并期望得到相同的结果。是的,这完全不依赖于原语类型。另一种描述方式是
glDrawArrays()
相当于使用
glDrawElements()
和包含序列(0,1,2,3,…,n-1)的索引数组,其中n是顶点数。