将包含多种材质的.obj和.mtl文件转换为json

时间:2018-03-15 08:00:42

标签: three.js .obj meshlab

我有一个包含多种材质的.obj,.mtl文件 对于指定的材质,我想打印顶点及其相应的uv坐标。 有没有办法,例如解析.obj和.mtl文件并将它们导出到json? 使用时

  • 波阵面OBJ-解析器
  • PyWavefront
  • meshlab 所有这些工具生成一个json文件我认为数据是部分的 - 我没有看到那里的材料。

编辑:

我使用示例3d model

进行了测试

step1:将.obj和.mtl与多种材质转换为.json文件

  • 按照here
  • 中的说明将扩展添加到Blender(版本2.76b)
  • 在Blender中,导入.obj,.mtl(模型显示但不显示材质)
  • 在Blender中导出为Three.json(参见here

step2:在三个示例中加载生成的.json文件(foo1.json)

  • 使用here
  • 中的示例webgl_loader_json_objconverter.html
  • 用foo1.json
  • 替换了Female02_slim.js
  • 模型Male02_dds.js已加载,但foo1.json未加载,我收到错误消息:version: '3' services: db: user: "1000:50" volumes: - /data/mysql:/var/lib/mysql container_name: k-db environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes image: XX:${KB_DB_TAG_VERSION} image: k-db ports: - "3307:3306"

某些链接表明Blender Exporter和Json File Loader不太可靠(请参阅herehereherehere in general) 有没有其他人可以推荐的.obj,.mtl到.json的转换器? (不一定与three.js有关)

假设我可以转换为glTF格式,是否有工具(例如python中的命令行实用程序)可以让我指定材质索引并获取此材质的顶点和相应的uv坐标?

解决: 我最终使用了netlab插件导出到json。它对我来说(几乎)很好

1 个答案:

答案 0 :(得分:0)

当然,你可以使用Blender和THREE JS插件(导出器):

https://www.blender.org/

https://github.com/mrdoob/three.js/tree/dev/utils/exporters/blender

如果使用JSON Loader函数

,导出的文件将材质作为数组

https://threejs.org/docs/#api/loaders/JSONLoader