首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用STLLoader进行CSG手术

用STLLoader进行CSG手术
EN

Stack Overflow用户
提问于 2013-12-16 01:17:34
回答 1查看 828关注 0票数 0

我试图使用ThreeCSG.js对导入的STL网格文件执行布尔操作。这是密码。

代码语言:javascript
复制
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操作应该在导入的网格文件上工作,因为它们在程序中创建的网格几何图形上工作。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-21 22:57:36

好吧,我自己想出答案。对于任何使用three.js的初学者来说,理解UVs纹理映射的概念是很重要的。看这里,http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV。现在,没有紫外线的配合。在STL文件中可用,因此许多three.js函数无法按需要工作。我发现克服这个问题的一种方法是在搅拌器中导入STL文件并执行UV映射,然后将几何文件导出为JSON对象(您还需要安装带有搅拌器的three.js导出程序)。然后,可以使用three.js对JSON几何图形执行布尔操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20602045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档