java - 高效合并交错索引数据

标签 java opengl collada

this 所示问题,我已经从索引交错的格式 (COLLADA) 加载了一些顶点和索引数据。答案建议使用缓冲区纹理,但也警告渲染性能损失,这是我想避免的。
因此,问题是将所有交错索引和顶点数据合并到多个 VBO 和单个索引缓冲区中。
数据是这样给出的

P N P N P N P N P N P N ...
0 0 1 0 2 0 7 1 6 1 5 1 ...

其中每个P指的是一个位置,每个N指的是一个法 vector 。

解决此问题的一种方法是跟踪列表中的所有元组(在本例中为两个元组)。如果我读取下一个元组,我会在列表中搜索该元组,如果它存在,那么我使用这个位置作为新的索引数据,如果不存在,我构造一个新的顶点并将该元组放在列表中。
当然,这非常慢,因为它包括将这些元组与每个现有元组进行比较。

是否有更有效的方法来实现这一目标?

最佳答案

所以真正慢的部分是在列表中搜索 - 所以不要这样做。在这种情况下,使用哈希表将大大加快速度 - 我实际上已经实现了类似的东西,并且它确实工作得非常好 - 只要您能为哈希表提供额外的内存。

关于java - 高效合并交错索引数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217536/

相关文章:

java - 应用程序启动后在服务器中创建文件的正确方法是什么?

java - AspectJ autoproxy 在 GigaSpaces 8 和 Spring 3 中失败,因为类是由不同的类加载器加载的

java - 如何使用 GWT AutoBean 反序列化 BigDecimal?

c++ - 识别展开的网格 UV 区域

javascript - 更改 Three.js collada 对象的纹理和颜色

在Three.JS中通过鼠标点击选择Collada对象

java - 流口水:insertLogical 和 retract

opengl - 与片段着色器中的所有顶点不同,没有插值。为什么不?

c - 取消索引 Collada

java - 使用纹理对象使用 JOGL 进行基本纹理绘制