按照此处的示例:
http://learning Threejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/
并使用 Three.js 与https://github.com/chandlerprall/ThreeCSG,我正在尝试对模型中的节点进行 3D 布尔运算。例如,如果我有一堵有窗户的墙,我想做invert()
就这样得到了窗户。
我有一个返回节点多边形的所有顶点的函数,这是一个没有孔的对象的顶点的示例https://pastebin.com/8dhYzPwE.
我像这样使用 ThreeCSG:
const geometryThree = new THREE.Geometry();
geometryThree.vertices.push(
...vertices
);
const geometryCsg = new ThreeBSP(geometryThree);
但这就是我要进入的geometryCsg
:
"{
"matrix": {
"elements": {
"0": 1,
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 1,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 1,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 1
}
},
"tree": {
"polygons": []
}
}"
我想这是因为the geometry.faces.length is 0.
如何使顶点数组成为正确的Three.Geometry
这样脸上就不会空了?Geometry.elementsNeedsUpdate不起作用...
是否有一个示例使用形状的多边形作为 Vector3 数组并将其转换为 csg?