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