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大型VBO和VAO_Opengl_Vbo_Vao - Fatal编程技术网

OpenGL大型VBO和VAO

OpenGL大型VBO和VAO,opengl,vbo,vao,Opengl,Vbo,Vao,我对使用VAO绘制大型VBO有异议,因为VBO有超过65536个顶点,而我的VAO只是uint,最大有65536个顶点 所以我的问题是,当VBO有超过65536个顶点时,如何绘制它?您是否将其拆分为更小的VBO,然后创建更多的VAO 假设你有257x257个顶点的地形,现在我可以画256x256个顶点,但是我会错过513个顶点 有人能给我指个地方,我可以在哪里了解这个问题 比你们所有人都多。你们使用4字节索引吗?我很确定这是可行的。。。“我的VAO只是uint,最大值为65536。”。。。沃特?

我对使用VAO绘制大型VBO有异议,因为VBO有超过65536个顶点,而我的VAO只是uint,最大有65536个顶点

所以我的问题是,当VBO有超过65536个顶点时,如何绘制它?您是否将其拆分为更小的VBO,然后创建更多的VAO

假设你有257x257个顶点的地形,现在我可以画256x256个顶点,但是我会错过513个顶点

有人能给我指个地方,我可以在哪里了解这个问题


比你们所有人都多。

你们使用4字节索引吗?我很确定这是可行的。。。“我的VAO只是uint,最大值为65536。”。。。沃特?这根本没有道理。GLuint是一个32位的整数,所以它的最大值要高于这个值。VAO OpenGL对象存储在32位整数中的事实与它可以存储的顶点的大小无关。现在,我使用无符号short[]来存储索引,我在DLL模块中生成它,它不允许我使用比65536更大的值。我是OpenGL新手,所以我很感激每一条建议。@DanielVališuint(4字节)!=短(2字节)。解决方案:在索引缓冲区中使用uint,而不是短的uint。如果您无法从外部更改它,我现在会问您是否可以使用不同的参数多次调用该方法,也许您可以稍后合并数据?我现在更改了它,并且它可以正常工作。。我不知道为什么我没有想出这个解决方案。。。非常感谢各位。还有一个问题。从2^32个指数跑出来是真的吗?或者我不应该做这样的事,因为HW不可能画那么多+如果你从上面的评论中做出回答,我给你+1。