在研究一些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做吗?如果没有,是否有我可以使用的脚本?
由于
答案 0 :(得分:4)
根据这条线:
"generatedBy" : "OBJConverter"
该文件由OBJConverter
(来自某些.obj和.mtl文件)生成。
OBJConverter
是一个名为convert_obj_three.py
的Python脚本,位于three.js / utils / converters / obj
。
自己的脚本有关于“如何使用Blender获取正确的OBJ + MTL文件”的评论。