1

我有一些定义几何的 JSON 文件,这是 Three.jsJSONLoader类的 r42 所要求的。这些文件是格式的第 2 版。

在版本之间手动更新这些文件是否可行?

第一个明显的区别是文件不再是 JavaScript,而是实际的 JSON。这很容易纠正。然而,新格式有一个metadata部分,三十分钟的实验并没有让我有任何收获。

我看到问题是因为Geometry对象的material属性有一个空materials数组。生成的几何图形具有不同材料的多个部分,如 r42 所示。

有谁知道我可以如何手动调整这些 .json 文件以使用 r55?

4

4 回答 4

2

我不完全了解格式的内部结构是如何变化的,但这里有一些提示:

  • 如果您有源对象,最好的方法是重新导出/转换。如果您的源格式晦涩难懂,现在还应该有更多的转换器和导出器可供使用。如果来源未知,一些谷歌搜索可能是值得的。
  • metadata部分无关紧要,它不用于加载程序中的任何内容。
  • 没有了Geometry.materials。相反,JSONLoader 的回调将加载的材料作为单独的参数返回给回调。有关更多信息,请参阅迁移指南(r52->r53)。事实上,加载程序接口在 r46 中也发生了变化。
  • git log一些示例模型文件(如果您真的需要手动迁移,搜索更改可能是您前进的方向)表明可能存在例如 UV 翻转,这将难以手动修复,但可以在代码中解决。但首先你需要在屏幕上显示一些东西。
于 2013-02-04T08:44:46.743 回答
1

尝试将文件拖入编辑器,然后执行File/Export Geometry

于 2013-02-04T09:42:16.373 回答
1

这是拖放到编辑器中的修复。在 index.html 中的 drop 事件之前添加此代码。我在 OSX 中的 Chrome ( 24.0.1312.56 )、Safari 和 Firefox 中对此进行了测试。

        document.addEventListener("dragover", function(e) {
            e.preventDefault();
        });
于 2013-02-04T19:48:55.457 回答
0

@mrdoob 的答案在对编辑器进行了几个补丁后起作用(这里这里。)

但是值得注意的是,可以在文本编辑器中手动升级文件,尤其是在您没有任何 UV 坐标的情况下。

  • 早期版本不使用 JSON——它们是 JavaScript 文件。转换很简单。
  • 您可以忽略该metadata部分,也可以将其从评论中移植到对象中。
  • 如果您确实有 UV 坐标,那么它们必须以不同方式映射(我相信轴被翻转)
于 2013-02-24T16:08:17.183 回答