gpt4 book ai didi

javascript - 使用 STLLoader 进行 CSG 操作

转载 作者:行者123 更新时间:2023-12-02 18:00:16 26 4
gpt4 key购买 nike

我正在尝试使用 ThreeCSG.js 对导入的 STL 网格文件执行 bool 运算。这是代码..

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 操作应该处理导入的网格文件,就像处理程序中创建的网格几何图形一样。

请问有什么建议吗?

最佳答案

好的,我自己找到了答案。对于 3.js 的初学者来说,了解 UV 纹理映射的概念非常重要。看到这里http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV 。现在,没有 UV 坐标。 STL 文件中提供了这些功能,因此三个 js 函数中有许多无法按预期工作。我发现解决这个问题的一种方法是在 Blender 中导入 STL 文件并执行 UV 映射,然后将几何文件导出为 JSON 对象(您还需要使用 Blender 安装 Three.js 导出器)。然后,您可以使用 Three.js 对 JSON 几何图形执行 bool 运算

关于javascript - 使用 STLLoader 进行 CSG 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com