我修改了平面几何图形的顶点以创建新的几何图形。
但是,当我导出几何图形时,它仍然是平面几何图形,并且不包括修改后的顶点。
如何将新的几何图形导出为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.Geometry
或THREE.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/