我有一個問題檢測對象與THREE.js交集。我的對象正在從2D幾何體擠壓喜歡這樣:與交叉對象THREE.js問題
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);
我再試圖檢測這樣的交集:
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);
});
每次,我相交數組爲空。如果我在場景中添加一個球體,我會得到十字路口,但只有當我放大到z < 18.任何建議?
您的畫布元素是全屏嗎? – uhura
@uhura現在,是的。我稍後可能會改變這一點,但當我談到它時,我可以處理這個問題。 – mrK
嘗試將true添加到'raycaster.intersectObjects(scene.children,true);' – uhura