【发布时间】:2019-08-25 05:28:29
【问题描述】:
问题:
从一个球体中减去一个立方体会得到一个结果,其中 z 轴保留体积,但 y 和 x 轴产生平盘,如图所示。我不确定为什么球体在这些方面会失去体积。我正在使用带三个CSG 的典型减法。
代码:
var geometry = new THREE.CubeGeometry( 100, 100, 100 );
var material = new THREE.MeshLambertMaterial( {color: 0xff0000, side: THREE.DoubleSide, transparent:true, opacity: .5} );
var cutter = new THREE.Mesh( geometry, material );
var geometry2 = new THREE.SphereGeometry(60,32, 32);
var material2 = new THREE.MeshLambertMaterial( {color: 0x00ff00, side: THREE.DoubleSide, transparent:true, opacity: .5} );
var massing = new THREE.Mesh( geometry2, material2 );
var cutter_bsp = new ThreeBSP(cutter);
var massing_bsp = new ThreeBSP(massing);
var new_bsp = massing_bsp.subtract(cutter_bsp);
var result = new_bsp.toMesh(material2);
result.geometry.computeVertexNormals();
result.position.y = 200;
我使用的是 v 103,但问题似乎与版本无关,因为 77 显示相同的问题。
问题: 为什么结果的边是平的?我需要在减法运算之前以某种方式转换几何吗?
【问题讨论】:
标签: javascript three.js threecsg