WebGL将32位索引缓冲区拆分为16位索引缓冲区

时间:2014-05-06 09:56:20

标签: algorithm opengl-es indexing webgl vertex

由于webgl索引缓冲区的限制,只允许16位,这表明我们不能使顶点缓冲区大小大于65536.对于加载大网格模型,必须将顶点缓冲区拆分为多个并重新索引相应的索引缓冲。如果只有一个索引缓冲区对应一个顶点缓冲区,则拆分算法不复杂且有效。但是,如果一个大的顶点缓冲区对应于几个索引缓冲区(例如一个点索引缓冲区,一个行索引缓冲区,一个三角形索引缓冲区等......),那么拆分缓冲区会有点复杂变成多个。有没有算法将顶点缓冲区和多个索引缓冲区分成多个子顶点缓冲区(缓冲区大小< = 65526)和多个子索引缓冲区?

我编写了一个算法来处理分裂,但是效率不高。我的想法是,每次使用一个索引缓冲区创建新的子顶点缓冲区时,我们需要循环其他索引缓冲区以提取新创建的子顶点缓冲区中存在的元素。最后,我们可以在每个src索引缓冲区中留下一些索引,我们只是尝试追加到一个新的子顶点和子索引缓冲区。

这是一个不高效的坏主意。是否有任何算法或替代方法有效地执行此操作?

任何建议都将不胜感激。

0 个答案:

没有答案