1

我知道如何从搅拌机中导出 json 模型并使用 THREE.JSONLoader().load 加载它。我想在 Webgl 中使用 Threejs 构建一个模型,并从该模型创建一个 json 文件。有谁知道这是否可能?

4

2 回答 2

0

我想先了解你的问题。您是否尝试将 object3D 捆绑在 JSON 中,就像它是 .obj 一样?所以你可以在另一个地方阅读它并在另一个地方构建几何?看来您正在尝试使反向路径“blender -> json -> three.js”,对吗?

在我看来,您应该准确了解模型是如何编码为 JSON 的,这样您就可以像搅拌机一样行事,然后您应该编写类似序列化器的东西,将正确的信息捆绑在 JSON 中。

如果您只想创建一个可以充当自定义模式/模型/标准的 JSON,类似于 .obj 或 .blend 格式的替代品,那么您还应该写下一个反序列化程序。

让我解释。

您的几何体具有顶点、面、uv、法线等。您必须在序列化时按照精确的顺序指定所有这些内容,然后您就完成了。一旦你知道了范式,你就可以阅读它并对其进行反序列化。

如果我误解了什么,请告诉我。

再见

于 2013-11-14T14:15:15.800 回答
0

是的,这是可能的。您需要在搅拌机中安装一个插件才能导出到 Three.js。

下载表格 git : Blender exporter to Three.js

因此,下载它并将 io_three 文件夹放在您的 ~/.config/blender/2.69/scripts/addons/ 文件夹下。

然后,打开文件 > 用户首选项并转到插件选项卡。搜索 Three.js 并启用找到的插件。现在,您应该能够看到 File > Export > Three.js 选项。在打开的选项卡上,确保选中面材质复选框。否则,您将没有材质,Three.js 将拒绝导入您的网格。

与 Three.js 一起使用

var mesh = null;
function initMesh() {
    var loader = new THREE.JSONLoader();
    loader.load('./marmelab-logo.json', function(geometry) {
        mesh = new THREE.Mesh(geometry);
        scene.add(mesh);
    });
}
于 2016-08-30T17:10:58.383 回答