gpt4 book ai didi

three.js - 如何在从 OBJLoader 加载的 obj 文件上获取鼠标单击位置?

转载 作者:行者123 更新时间:2023-12-04 17:51:02 25 4
gpt4 key购买 nike

我使用 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 来找到交点。我在three.js 中实现了canvas_interactive_cubes 示例( http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html)中的代码。这是查找交集的代码:
    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 坐标,无论我单击何处,它始终显示“TypeError: intersects[0] 未定义”。

我被困在这里好几天了。有人可以告诉我一种在加载的 obj 文件上获取交集的方法吗?我感谢您的帮助。

最佳答案

尝试添加递归标志,如下所示:

var intersects = raycaster.intersectObjects( objects, true );

三.js r.58

关于three.js - 如何在从 OBJLoader 加载的 obj 文件上获取鼠标单击位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com