Alv*_*eng 10 buffer opengl-es vbo vertex
绑定到GL_ARRAY_BUFFER或GL_ELEMENT_ARRAY_BUFFER的顶点缓冲区对象是否有最大大小?
最初,我正在绘制一个由16个子网格组成的网格.对于每个子网格,我创建了一个顶点缓冲区,在渲染阶段,我调用了glDrawElements.这在iOS模拟器上运行良好,但是当我尝试渲染到我的设备时,屏幕不断闪烁并且不显示网格.
然后我做了一些阅读,发现在渲染阶段你不应该多次调用glDrawElements.我试图将所有子网格组合成一个顶点缓冲区.绑定到GL_ARRAY_BUFFER的缓冲区包含3969个顶点,其中每个顶点包含20个浮点数.所以这个缓冲区的大小是317520字节.与GL_ELEMENT_ARRAY_BUFFER绑定的指数是16425空头.因此,该缓冲区的大小为32850字节.
在OpenGL维基上,它表示对于顶点缓冲对象,"根据一个nVidia文档,1MB到4MB是一个不错的大小".
我在绑定每个缓冲区对象并调用glDrawElements之后打印出glGetError的结果,我没有看到任何错误.但是,我的网格没有正确显示.似乎只有第一个网格被正确绘制.我实施这个方法有什么可疑之处吗?我不想让这个问题太长,所以如果有任何额外的信息你需要回答这个问题让我知道.如果理论上没有什么似乎是错误的,也许我只是在实施它时犯了一个错误.