我正在实现一个自定义对象编辑器,该编辑器主要导入STL文件,但也接受OBJ和其他格式。然后,编辑器应允许对这些模型进行CSG操作。
我为此选择了threejs和CSG端口,将模型导入为Geometry(BufferedGeometry显然根本不起作用),仍然会收到“不支持Givn geometry”错误,并且在执行CSG操作时对导入的对象产生了奇怪的结果(参见图片)。
然后我尝试了babylonjs,但是我有一个问题,即CSG方法期望使用Mesh对象,但是在导入时只能得到AbstractMesh,而我找不到转换这种方法的方法。这是一些代码:
BABYLON.SceneLoader.ImportMesh('test', '/assets/', 'test.stl', this.scene, function (newMeshes) {
this.camera.target = newMeshes[0];
var a = new BABYLON.Mesh('', this.scene, newMeshes[0]);
var b = BABYLON.Mesh.CreateBox("box", 100, this.scene);
var aCSG = BABYLON.CSG.FromMesh(a);
aCSG.subtract(BABYLON.CSG.FromMesh(b));
});
现在,我想实现add()和减去()在自定义模型(不是标准的立方体或球体网格)上工作,并且我对任何方法都持开放态度。因此,我正在寻找一种可行的解决方案来解决这个问题。