如何将ASCII JSON 3D模型文件转换为二进制文件?

时间:2012-02-13 15:43:28

标签: javascript json 3d three.js

在研究一些webGL示例(主要是基于Three.js的示例)时,我注意到大型模型是通过ASCII +二进制JSON的组合加载的。由于文件大小减小,这种方法对我很有吸引力。 ASCII JSON的一般格式(取自Three.js示例,webgl_geometry_large_mesh.html):

{

    "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做吗?如果没有,是否有我可以使用的脚本?

由于

1 个答案:

答案 0 :(得分:4)

根据这条线:

"generatedBy"   : "OBJConverter"

该文件由OBJConverter(来自某些.obj和.mtl文件)生成。

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

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