我正在使用 3D OpenGL ES 视图创建 android 应用程序,该视图将由从波前 obj 文件导入的 3D 模型组成。一个典型的 Wavefront obj 文件将只包含三角对象,它可能看起来像:
v 1.00000 1.00000 0
v 1.00000 -1.00000 0
v -1.00000 -1.00000 0
vt 1.00000 1.00000 0
vt 1.00000 -1.00000 0
vt -1.00000 -1.00000 0
vn 1.00000 1.00000 0
vn 1.00000 -1.00000 0
vn -1.00000 -1.00000 0
f 1/1/1 2/2/2 3/3/3
最后,所有这些都将转换为一个(一维)浮点数组。问题是这个文件很大,将它作为字符串加载,处理需要大量时间。(我们需要将文件加载到行中,然后将它们拆分为令牌,这需要大量时间和内存)我正在寻找替代方法和解决方案来存储一个准备好的数组。我唯一的想法是读取 .obj 文件并创建所需的数组。之后序列化数组,每次下一次执行应用程序时只需读取序列化数组。这是一个好主意还是在android上有其他更好的方法。请记住,有大量数据需要处理!我正在寻找的是好的解决方案,我认为我们不需要关心硬盘上的空间只关心加载时间和内存使用!