javascript - Three.js - 有没有办法在 Raycaster 中使用选择框?
问题描述
我有一个 GLTF 场景,我在其中尝试了示例选择框(代码)来选择多个网格。
但是,结果是不准确的,因为它基于每个网格的质心进行挑选,并且还会获取相机不可见的网格(查看房屋模型的一侧会选择框方向上的所有墙壁)。
我还尝试过使用Raycaster,它非常适合使用鼠标/指针进行选择。
有没有办法在 Raycaster 中使用一个选择框或两个 Vector3(框的起点和终点)?
解决方案
您可以使用 aRaycaster
创建一个Frustum
.
- 创建两个
Plane
对象来表示相机的near
anffar
平面。 - 使用 将
Raycaster
选择区域的起点/终点与Plane
对象相交。 - 使用交点来定义
Frustum
. - 使用
Frustum.containsPoint
andFrustum.intersectsObject
查看特定对象是否在您的选择区域内。
推荐阅读
- javascript - Tictactoe 获奖声明
- spring - 如何将来自 RestController 的结果添加到 Spring 中的自定义包装器对象
- ruby-on-rails - 使用 RSpec 的 Guard 无法正常运行,它卡在 14:39:11 - INFO - Guard::RSpec 正在运行
- java - 如何解决:类型 Node 不是通用的;它不能用参数参数化
- laravel - 为什么此 Excel 导入到我的数据库时,行包含数据时为空?
- linux - 在 bash 脚本中停止 Ping 进程?
- laravel - 查询包括模型的方法
- sql - 将约束设置为从 0 开始,然后仅从 9 开始并包含 11 位数字?
- jquery - 表格排序器不适用于带时区的日期格式
- android - Android上小部件的NativeScript崩溃