【发布时间】:2021-08-03 22:28:59
【问题描述】:
让点击目标大于实际场景对象的好方法是什么?
到目前为止,我们一直在使用更大的不可见(但可投射)对象来执行此操作,但其代价是需要两次绘制调用而不是一次。
有没有更好的解决方案?
【问题讨论】:
标签: three.js raycasting
让点击目标大于实际场景对象的好方法是什么?
到目前为止,我们一直在使用更大的不可见(但可投射)对象来执行此操作,但其代价是需要两次绘制调用而不是一次。
有没有更好的解决方案?
【问题讨论】:
标签: three.js raycasting
到目前为止,我们一直在使用更大的不可见(但可投射)对象来执行此操作,但其代价是需要两次绘制调用而不是一次。
如果您将Object3D.visible 设置为false,则不会有额外的draw call。但是,您仍然可以对不可见的 3D 对象执行光线投射。在执行相交测试时,使用Raycaster.layers 选择性地忽略 3D 对象。
所以你正在做的已经很好了。如果光线投射性能成为应用程序的瓶颈,您可能需要考虑仅针对边界体积进行光线投射。这个想法是为您的实际场景对象创建一个Box3 (AABB) 或Sphere(边界球)的实例,并且仅将其用于光线投射。
【讨论】: