我正在努力将Direct3D地形渲染器移植到Android,并且刚刚了解到OpenGL没有与DrawIndexedPrimitive的BaseVertexIndex参数等效,直到版本3.2引入了glDrawElementsBaseVertex方法。该方法在OpenGL ES中不可用。
D3D地形渲染器使用单个大型顶点缓冲区以LRU方式保存活动地形补丁。相同的16位索引用于绘制每个补丁。
鉴于OpenGL ES中缺少基本顶点索引偏移,我不能使用相同的索引来绘制每个补丁。此外,缓冲区对于16位绝对索引而言太大。我发现的替代方案是:
与D3D相比,这些似乎都不是很有效。还有其他选择吗?
答案 0 :(得分:3)
您没有指定VBO的确切数据布局,但如果您的基本顶点偏移不是负数,则可以在将VBO绑定到顶点属性(glVertexAttribPointer)时应用偏移。