gpt4 book ai didi

opengl-es - 处理 OpenGL ES 中缺少 glDrawElementsBaseVertex

转载 作者:行者123 更新时间:2023-12-01 02:14:19 29 4
gpt4 key购买 nike

我正在将 Direct3D 地形渲染器移植到 Android,并且刚刚了解到 OpenGL 没有等效于 DrawIndexedPrimitive 的 BaseVertexIndex 参数,直到 3.2 版引入了 glDrawElementsBaseVertex 方法。该方法在 OpenGL ES 中不可用。

D3D 地形渲染器使用单个大型顶点缓冲区以 LRU 方式保存事件地形补丁。相同的 16 位索引用于绘制每个补丁。

鉴于 OpenGL ES 中缺少基本顶点索引偏移,我不能使用相同的索引来绘制每个补丁。此外,缓冲区对于 16 位绝对索引来说太大了。我确定的替代方案是:

  • 每个补丁使用一个 VBO 或顶点数组。
  • 使用 32 位索引并为 VBO 中的每个 block 生成新索引。
  • 根据需要停止使用索引和复制顶点。请注意,大多数顶点出现在六个三角形中。切换到三角形 strip 可能会有所帮助,但仍然会使顶点数量增加一倍。

  • 与 D3D 中的可能相比,这些似乎都不是很有效。还有其他选择吗?

    最佳答案

    您没有指定 VBO 的确切数据布局,但如果您的基本顶点偏移量不是负数,您可以在将 VBO 绑定(bind)到顶点属性 (glVertexAttribPointer) 时应用偏移量。

    关于opengl-es - 处理 OpenGL ES 中缺少 glDrawElementsBaseVertex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330807/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com