threejs - 使用ObjLoader加载并进行光线投射时拾取的鼠标不准确

时间:2018-02-26 09:53:52

标签: three.js

我想用鼠标点击网格中的一个面。 使用ObjLoader和MtlLoader(附加)加载网格 单击网格时,有时会检测到交叉点,但有时不会检测到交叉点。

附加here是一个基于webgl_interactive_cubes.html和.obj文件的小型自包含示例。 如果将变量loadCubes设置为true,则原始示例将按预期运行,即检测到交叉点。 如果将变量loadCubes设置为false,则会加载obj文件,但不会检测到交叉点。

谢谢, 阿夫纳

P.S。 我看过的相关链接: 类似的问题描述:hereherecode patternraycasting documentation

1 个答案:

答案 0 :(得分:0)

THREE.Raycaster().intersectObjects ( objects, recursive )方法。

文档说明了这种方法的参数(如果仔细观察):

objects - 要检查与光线交叉的对象。

recursive - 如果为true,它还会检查对象的所有后代。否则它只检查与对象的交叉。默认值为false。

THREE.OBJLoader(),返回THREE.Group()个对象,其THREE.Mesh()属性中包含.children个对象。

所以你的交叉检查应该是这样的:

var intersects = raycaster.intersectObjects( scene.children, true );