我正在使用OpenGL ES 2.0在Android中创建游戏。我在Blender中建模了所有必需的对象,并将它们导出到OBJ文件中。 OBJ文件包含顶点数据和对象的面,类似于:
....
v 0.007322 -0.046194 -0.007322
v 0.005866 -0.046194 0.000000
v -0.000000 -0.042275 0.000000
v -0.000000 -0.040898 -0.010355
....
f 5 1 4
f 1 2 3
f 89 88 105
f 103 104 89
....
对于某些对象,此数据非常大。所以我的问题是,将它加载到我的应用程序中的最快方法是什么,以便我可以在FloatBuffer对象中使用它?
搜索不多时,我发现了以下几种方法:
实施例
public class ObjectData {
public float[] vertices = new float[] {
0.007322f, -0.046194f, -0.007322f, ..... // Can be more than 1000 elements!
}
}
但是这种方法会产生另一个问题,代码有时会超出Java 64K code_length限制。
任何人都可以给我一些关于哪种方法最合适的建议,或者是否还有其他更好的方法来解决这个问题?
答案 0 :(得分:0)
这是我认为最好的方式,我也在做同样的事情。对于许多大型对象,该方法非常慢,因此在应用程序运行时可能会有一些加载时间。