2012-02-13 302 views
1

在研究一些webGL示例(主要是基于Three.js的示例)时,我注意到大型模型通过ASCII +二进制JSON的组合加载。由于文件大小减小,这种方法对我非常有吸引力。 该ASCII JSON具有的一般格式(从three.js所采取的示例,webgl_geometry_large_mesh.html):如何将ASCII JSON 3D模型文件转换为二进制文件?

{ 

    "metadata" : 
    { 
     "formatVersion" : 3, 
     "sourceFile" : "lucy100k.obj", 
     "generatedBy" : "OBJConverter", 
     "vertices"  : 50002, 
     "faces"   : 100000, 
     "normals"  : 0, 
     "uvs"   : 0, 
     "materials"  : 0 
    }, 

    "materials": [ { 
    "DbgColor" : 15658734, 
    "DbgIndex" : 0, 
    "DbgName" : "default" 
    }], 

    "buffers": "Lucy100k_bin.bin" 

} 

如上所见,而不是包含的顶点,法线的UV等卡车负荷的截面它被全部打包到被引用的二进制文件中。有谁知道如何创建该二进制文件?我可以用Blender做到吗?如果没有,是否有我可以使用的脚本?

感谢

回答

4

根据这条线:

"generatedBy" : "OBJConverter" 

,是由OBJConverter生成的文件(一些.OBJ和.mtl文件)。

OBJConverter是一个名为convert_obj_three.py的Python脚本,位于three.js/utils/converters/obj

自己的脚本有关于“如何使用Blender获取正确的OBJ + MTL文件”的评论。

+0

非常有帮助。谢谢,胡安。 – rod 2012-02-14 19:02:59

+1

''convert_obj_three.py''更新的网站是''three.js/utils/converters/obj''。 – niekas 2015-01-17 10:26:36

+0

@niekas谢谢,更新的答案 – 2015-01-17 11:24:07

相关问题