我修改了平面几何图形的顶点以创建新的几何图形。
但是,当我导出几何图形时,它仍然是平面几何图形,并且不包括修改后的顶点。

如何将新的几何图形导出为JSON(包括所有更改)?

这是我的代码:

var seg = 5;
var dim = 70;
var zScale = 20;
var geometry = new THREE.PlaneGeometry(dim,  dim, seg, seg );
var index = 0;

for (var gridY = 0; gridY < seg; gridY++) {
    for (var gridX = 0; gridX < seg; gridX++) {
        var z = Math.random() * zScale;
        geometry.vertices[index].z = z;
        index++;
    }
}

geometry.elementsNeedUpdate = true;
geometry.verticesNeedUpdate = true;
var expJson = geometry.toJSON();
console.log(expJson);


我导出的数据如下所示:

{
    height: 70
    heightSegments: 5
    metadata: {
        generator: "Geometry.toJSON"
        type: "PlaneGeometry"
    },
    version: 4.4
    type: "PlaneGeometry"
    uuid: "5F071B03-15EA-43CE-B4B3-4944E13D781C"
    width: 70
    widthSegments: 5
}

最佳答案

请参见https://github.com/mrdoob/three.js/issues/5483以获取解释,如果需要原始数据,为什么需要转换为THREE.GeometryTHREE.BufferGeometry



一个更简单的方法是(来自Export ThreeJS Geometry to JSON

var rawGeometry = new THREE.BufferGeometry().fromGeometry(geometry);
var expJson = rawGeometry.toJSON();


要么

var rawGeometry = new THREE.Geometry();
rawGeometry.merge( geometry );
var expJson = rawGeometry.toJSON();

关于javascript - 使用Three.js将修改过的平面几何图形导出为JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40769013/

10-13 05:32