5
我使用OBJLoader加載的模型,這裏是加載OBJ文件中的代碼:如何讓鼠標在從OBJLoader加載的obj文件上點擊位置?
var loader = new THREE.OBJLoader();
loader.load('obj/teeth/teeth4_5.obj', function(object) {
model = object;
scene.add(model);
objects.push(model);
});
而且我試圖用raycaster找到交集。我使用canvas.interactive_cubes示例(http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html)在three.js中實現了我的代碼。這裏是找到交集的代碼:
function onDocumentMouseDown(event){
event.preventDefault();
var mouseX = (event.clientX/window.innerWidth)*2-1;
var mouseY = -(event.clientY /window.innerHeight)*2+1;
var vector = new THREE.Vector3(mouseX, mouseY, 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[0].point);
}
不幸的是,我沒能獲得在x,y,路口的Z座標,無論身在何處,我點擊,它總是顯示「類型錯誤:相交[0 ]未定義「。
我在這裏呆了好幾天。有人可以告訴我一種方法來獲得加載的obj文件的交集嗎?我感謝您的幫助。
WOW,它的工作原理...這是那麼容易。好像我問了一個愚蠢的問題。在一個大的obj文件上找到交點需要很長的時間。非常感謝您的回答! – user2309002 2013-04-23 04:17:52
我已經在這上面花了2個小時。加',true'就行了。我從來沒有在我研究過的幾個例子中看到它。謝謝 ! – 2015-06-15 11:41:17