需要在导入的自定义模型上执行CSG操作

时间:2019-05-09 14:36:10

标签: three.js babylonjs csg

我正在实现一个自定义对象编辑器,该编辑器主要导入STL文件,但也接受OBJ和其他格式。然后,编辑器应允许对这些模型进行CSG操作。

我为此选择了threejs和CSG端口,将模型导入为Geometry(BufferedGeometry显然根本不起作用),仍然会收到“不支持Givn geometry”错误,并且在执行CSG操作时对导入的对象产生了奇怪的结果(参见图片)。

mesh gets messed up instead of one model propery subtracted from the other

然后我尝试了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()和减去()在自定义模型(不是标准的立方体或球体网格)上工作,并且我对任何方法都持开放态度。因此,我正在寻找一种可行的解决方案来解决这个问题。

0 个答案:

没有答案