将ThreeJS几何体导出为JSON格式

3

我需要将Three的几何体导出为JSON,以便与xml3D一起使用。

我正在尝试查找THREE.GeometryExporter(),但是我找不到它。它已经完全过时了吗?可以在这里找到相关信息。

一旦我有了Three JSON,我应该能够使用此转换器获取xml3D JSON。

有人之前试过这个吗?

3个回答

4
您应该尝试使用toJSON()方法:
var json = geometry.toJSON();

该方法适用于几何体、材质、灯光、网格等...

1
解释为什么它被移除了 :) - 2pha
我认为(不确定)THREE.GeometryExporter()已被toJSON()所取代。 - jeum
我也不确定,从未使用过。不过可以一试。 - 2pha
对于几何图形,它可以工作并导出顶点、面、法线等。但如果它是BoxGeometry类型,则不会导出顶点、面、法线等。我需要找到一种解决方法。 - PolGuixe
1
看起来你需要转换BoxGeometries:可以参考这个线程这个 - jeum

3

geometry.toJSON() 没有按照我需要的格式输出所需信息。我的解决方案如下:

cannonPoints = geometry.vertices.map(function(v) {
    return new CANNON.Vec3( v.x, v.y, v.z )
})

cannonFaces = geometry.faces.map(function(f) {
    return [f.a, f.b, f.c]
})

我曾在一个相似的问题上分享了这个解决方案: 从THREE.Mesh或THREE.Geometry创建CANNON.RigidBody


虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案可能会因为链接页面的更改而变得无效。-【来自审核】 - Mark Rotteveel
根据您的建议进行了更新。 - Tyler Wolf

3

那个转换器肯定会有帮助,但需要进行修改。至于xml3d v5,据我所知JSON格式将会被更改。 - PolGuixe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接