首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ThreeCSG没有给出预期的结果

ThreeCSG没有给出预期的结果
EN

Stack Overflow用户
提问于 2019-05-20 15:23:24
回答 1查看 32关注 0票数 0

我想在three.js中为这个应用程序创建一个简单的应用程序,我需要减去两个网格,我发现ThreeCSG可以做到这一点。但不知何故,我没有得到预期的结果。

我从一个例子中复制了代码,但即使这样也不能正常工作。

尝试一些其他的功能,比如联合。但是,它不是将两个网格合并为一个网格,而是将其移除。

链接到ThreeCSG:https://github.com/chandlerprall/ThreeCSG/blob/master/ThreeCSG.js

result that I get when subtracting

result that I get when I use union

代码语言:javascript
复制
var materialNormal = new THREE.MeshNormalMaterial( { side: THREE.DoubleSide } );
var diceCube = new THREE.Mesh( new THREE.BoxGeometry(10,10,10), materialNormal);

diceCube.position.x = 0;
diceCube.position.y = 5;
diceCube.position.z = 0;

diceCube.geometry.computeFaceNormals();
diceCube.geometry.computeVertexNormals();

var cubeBSP = new ThreeBSP(diceCube);

var sphereGeometry = new THREE.SphereGeometry(7.5,16,8);
var sphereMesh = new THREE.Mesh(sphereGeometry, materialNormal);

sphereMesh.scale.x = 0.17;
sphereMesh.scale.y = 0.17;
sphereMesh.scale.z = 0.17;

//coords of the spheres 
var xPositions = [ 0, 3 ]; // coordinates for xPositions of sphereMesh
var yPositions = [ 10, 10 ];
var zPositions = [ 0, 0 ];

var diceDots    = new THREE.Geometry();

for(var i = 0; i < xPositions.length; i++){
    sphereMesh.position.x   = xPositions[i];
    sphereMesh.position.y   = yPositions[i];
    sphereMesh.position.z   = zPositions[i];
    sphereMesh.updateMatrix();
    diceDots.merge( sphereMesh.geometry, sphereMesh.matrix );
}

var material = new THREE.MeshPhongMaterial( { color: 0xffaa00 });
var dotsMesh = new THREE.Mesh(diceDots);
dotsMesh.geometry.computeFaceNormals();
dotsMesh.geometry.computeVertexNormals();

var dotsBSP = new ThreeBSP(dotsMesh);
var resultBSP = cubeBSP.subtract(dotsBSP);

result = resultBSP.toMesh(material);
scene.add(result);
EN

回答 1

Stack Overflow用户

发布于 2019-05-21 15:27:02

我找到了一个解决方案。我使用的threeCSG被破坏了,这一次它的工作方式是必须的。

指向工作ThreeCSG的链接:https://github.com/oathihs/ThreeCSG/blob/master/dist/THREE.CSG.js

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

https://stackoverflow.com/questions/56216077

复制
相关文章

相似问题

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