我正在尝试使用 ThreeCSG.js 对导入的 STL 网格文件执行布尔运算。这是代码..
function openFile() {
filePath = document.form.selectedFile.value;
var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {
//A simple cube geometry imported from STL file.
var geometry = event.content;
var cube_mesh = new THREE.Mesh(geometry);
cube_mesh.position.x = -7;
var cube_bsp = new ThreeBSP(cube_mesh);
//Create a sphere
var sphere_geometry = new THREE.SphereGeometry(1.8, 32, 32);
var sphere_mesh = new THREE.Mesh(sphere_geometry);
sphere_mesh.position.x = -7;
var sphere_bsp = new ThreeBSP(sphere_mesh);
//subtract cube from sphere
var subtract_bsp = cube_bsp.subtract(sphere_bsp);
var result = subtract_bsp.toMesh(new THREE.MeshLambertMaterial({shading: THREE.SmoothShading, map: THREE.ImageUtils.loadTexture('texture.png')}));
result.geometry.computeVertexNormals();
scene.add(result);
});
loader.load(filePath);
}
但这似乎不起作用。我正在使用three.js R62 并使用STLLoader.js 导入STL 文件。
我刚开始学习 Three.js,不完全确定 ThreeCSG.js 是否支持导入的网格文件。然而,理论上,CSG 操作应该在导入的网格文件上工作,因为它们在程序中创建的网格几何图形上工作。
请问有什么建议吗?