带有STLLoader的CSG操作
CSG operation with STLLoader
我正在尝试使用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操作应该在导入的网格中工作,就像它们在程序中创建的网格几何图形一样。
有什么建议吗?
OK自己找到了答案。对于任何初学three.js的人来说,了解UV纹理映射的概念是很重要的。请参阅此处http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV.现在,没有紫外线单词。STL文件中可用,因此许多三个.js函数无法按预期工作。我发现解决这个问题的一种方法是在blender中导入STL文件并执行UV映射,然后将几何文件导出为JSON对象(您还需要使用blender安装一个three.js导出器)。然后,您可以使用three.js 对JSON几何体执行布尔运算
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- jQuery:暂停按钮可以暂停所有其他操作
- 用于选择/文本框操作的JavaScript
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 通过javascript操作图像,非常简单
- 带有STLLoader的CSG操作
- bufferGeometry上的CSG操作
- 如何在csg操作后保持原始颜色(使用ThreeCSG.js)