【发布时间】:2018-08-05 17:44:25
【问题描述】:
我想在用鼠标单击时在网格中选择一个面。 使用 ObjLoader 和 MtlLoader 加载网格(附加) 单击网格时,有时会检测到交叉点,但有时不会。
附加的here 是一个基于 webgl_interactive_cubes.html 和 .obj 文件的小型独立示例。 如果将变量 loadCubes 设置为 true,则原始示例按预期运行,即检测到交叉点。 如果将变量 loadCubes 设置为 false,则加载 obj 文件但未检测到交叉点。
谢谢, 阿夫纳
附言 我看过的相关链接: 类似问题描述:here和here、code pattern、raycasting documentation
【问题讨论】:
-
请在您的帖子中包含您的代码。
-
解决方案是对已接受的答案 1 中所述的代码进行 2 次调整。添加了“mtlLoader.setMaterialOptions({side: THREE.DoubleSide});”还有“child.material.side = THREE.DoubleSide;”当调用 objLoader.load - 这会显示材质的两面) 2. 调用“var intersects = raycaster.intersectObjects(scene.children, true);”检查对象的后代。谢谢。
标签: three.js