【问题标题】:Three.js - Is there any way to use a selection box with the Raycaster?Three.js - 有没有办法在 Raycaster 中使用选择框?
【发布时间】:2021-11-16 16:41:38
【问题描述】:

我有一个 GLTF 场景,我尝试使用 example selection box (code) 来选择多个网格。

但是,结果不准确,因为它基于每个网格的质心进行挑选,并且还会获取相机不可见的网格(查看房屋模型的一侧会选择框方向的所有墙壁)。

我还尝试过使用Raycaster,它非常适合用鼠标/指针进行选择。

有什么方法可以在 Raycaster 中使用一个或两个 Vector3(框的起点和终点)?

【问题讨论】:

    标签: javascript three.js raycasting


    【解决方案1】:

    您可以使用Raycaster 创建Frustum

    1. 创建两个 Plane 对象来代表您相机的 nearfar 平面。
    2. 使用Raycaster 将选择区域的起点/终点与Plane 对象相交。
    3. 使用交点定义Frustum
    4. 使用Frustum.containsPointFrustum.intersectsObject 查看特定对象是否在您的选择区域内。

    【讨论】:

    • 感谢您的回答。我对 Three.js 很陌生。我应该研究一些具体的东西来开始应用你的解决方案吗?我阅读了您回复中的所有概念,我有点困惑。
    • @rd05 一步一步地尝试它们。如果您遇到困难,您可以随时提出更多问题。我强烈建议您查看three.js examples,了解如何将Raycaster 之类的东西配置为使用屏幕坐标触发3D 场景。
    猜你喜欢
    • 2015-02-21
    • 2021-02-03
    • 2014-11-30
    • 2015-12-18
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2020-10-28
    相关资源
    最近更新 更多