1
내 프로토 타입 시스템에는 Collada 파일을 클릭 할 때 교차를 감지하는 기능이 있습니다.Collada (Ray Casting)의 Three.JS- 교차로 교차
function Intersectfun (event) {
mouse.x = (event.clientX/window.innerWidth) * 2 - 1;
mouse.y = - (event.clientY/window.innerHeight) * 2 + 1;
var vector = new THREE.Vector3(mouse.x, mouse.y, 1);
var toIntersect = [];
THREE.SceneUtils.traverseHierarchy(scene, function (child) {
if (child instanceof THREE.Mesh) {
toIntersect.push(child);
}
});
// Unproject the vector
projector.unprojectVector(vector, camera);
var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(toIntersect);
if(intersects.length){
target = intersects[0].object;
}
}
하지만이 사용할 때 : :이 교차 기능은 다음과 같습니다
controls = new THREE.TrackballControls(camera, renderer.domElement);
을 매트릭스가 비어 교차 및 교차를 감지 할 수 없습니다!
하지만 사용할 때 :
controls = new THREE.TrackballControls(camera);
내가 교차 행렬을 얻을 수 있습니다 그것은 매우 잘 작동하지만, 또 다른 문제가 드러난다 (에서 이쪽을 봐 : Three.JS -- conflict Camera controls with a textbox in a scene)
코드가에 있습니까 위의 함수? 자세한 내용은 간단한 카메라를 사용했습니다.
camera = new THREE.PerspectiveCamera(40, window.innerWidth/window.innerHeight, 1, 10000);
감사합니다.