【问题标题】:Export ThreeJS Geometry to JSON将 ThreeJS 几何导出为 JSON
【发布时间】:2017-01-11 17:05:19
【问题描述】:

我需要将三个几何图形导出为 JSON,以便与 xml3D 一起使用。

我试图找到 THREE.GeometryExporter() 但我找不到。它已被完全弃用吗? 这里提到了

一旦我有了三个 JSON,我应该能够使用这个转换器来获取 xml3D JSON。

以前有人试过吗?

【问题讨论】:

    标签: three.js xml3d


    【解决方案1】:

    你应该试试toJSON() 方法:

    var json = geometry.toJSON();
    

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

    【讨论】:

    • 解释为什么它被删除:)
    • 我认为(不确定)THREE.GeometryExporter() 已被 toJSON() 取代
    • 我也不确定,没用过。不过值得一试。
    • 对于几何图形,它可以工作并导出顶点、面、法线等。但如果它是 BoxGeometry 类型,它不会导出顶点、面、法线等。我需要找到一种解决方法。
    • 看来你需要转换BoxGeometries:看看this threadthis one
    【解决方案2】:

    Realease 68 似乎是示例文件夹中包含 GeometyExporter 的最后一个。 https://github.com/mrdoob/three.js/tree/r68/examples/js/exporters

    不确定您希望它如何输出为 xml3D 格式(我从未尝试过),但如果需要更改它应该不会太难。

    这个three.js json to xml3d 转换器可能会派上用场。 https://github.com/xml3d/threejs-to-xml3d

    【讨论】:

    • 那个转换器肯定有帮助,但需要修改。据我所知,对于 xml3d v5,JSON 格式将发生变化。
    【解决方案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]
    })
    

    我在这里分享了一个类似问题的解决方案: Create CANNON.RigidBody from THREE.Mesh or THREE.Geometry

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 根据您的建议更新
    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多