THREE.js与交叉对象有关

mrK*_*mrK 4 javascript rendering intersection three.js

我在检测与THREE.js的物体交叉点时遇到了问题.我的对象正在从2D几何体中挤出,如下所示:

var geoShape = new THREE.Shape(vertexes);
var geometry = new THREE.ExtrudeGeometry(geoShape, { bevelEnabled: false, amount: 3 });

var mesh = THREE.SceneUtils.createMultiMaterialObject(geometry,
    [new THREE.MeshLambertMaterial({ color: '#493D26' })]
);
scene.add(mesh);
Run Code Online (Sandbox Code Playgroud)

然后我试图检测这样的交叉点:

container.mousedown(function (e) {

    event.preventDefault();

    var vector = new THREE.Vector3((e.clientX / window.innerWidth) * 2 - 1, -(e.clientY / window.innerHeight) * 2 + 1, 0.5);
    projector.unprojectVector(vector, camera);

    var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

    var intersects = raycaster.intersectObjects(scene.children);

    console.log(intersects);
});
Run Code Online (Sandbox Code Playgroud)

每次,我的相交数组都是空的.如果我向场景中添加一个球体,我会得到交叉点,但只有当我放大到z <18时才会有任何建议吗?

uhu*_*ura 9

加上真的

raycaster.intersectObjects(scene.children, true);
Run Code Online (Sandbox Code Playgroud)

来自Docs:

recursive(true) - 如果设置,它还会检查所有后代.否则它只检查与对象的交叉.