Fat*_*tie 5 3d unity-game-engine game-physics aabb
在Unity中,假设你有一个3D对象,
当然,获得AABB是微不足道的,Unity有直接的功能,
(您可能必须以通常的方式"添加渲染器的所有边界框",没问题.)
现在,对于相关的摄像机,如同定位,AABB确实覆盖了某个2D边界框......
事实上......是否有某种内置的直接方式在Unity中找到橙色的2D盒子?
(请注意,要手动执行此操作,您只需为AABB的8个点制作光线(或使用世界屏幕空间,如Draco提到的那样);将这些光线封装在2D中以制作橙色框.)
我不需要手动解决方案,我问的是引擎是否在每一帧都以某种方式从管道中提供了这个?
有电话吗?
(事实上,拥有它会更好......)
我的感觉是一个或全部
肯定会知道橙色的盒子,甚至是管道内的蓝色盒子,就在显卡的正下方,就像它知道给定网格的AABB一样.
我们知道Unity允许您在给定网格的每一帧中立即点击AABB 3D框:事实上,Unity是否给出了"2D截头",如图所示?
然而,自己找到极端确实很容易。获取网格的边界框(屏幕截图中显示的长方体)就是这样做的,您只需在变换的空间中进行即可。
您可能还希望首先对模型执行礼品包装,然后仅处理生成的凸包(因为不属于凸包的任何点都不会超出凸包的边界)。如果您打算在模型在屏幕上移动、缩放或旋转时绘制此屏幕空间矩形,并且必须重新计算边界框,那么您将需要执行此操作并缓存结果。
请注意,如果模型有动画(例如,如果您的人形机器人站起来并做开合跳),则此方法不起作用。求解动画情况要困难得多,因为您必须将每个动画的每一帧视为原始网格体的一部分,以便进行凸包求解(以确保您的动画不会移动网格体的一部分)在凸包之外),通过幂增加复杂性。
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |