【发布时间】:2018-08-18 06:29:49
【问题描述】:
在 Unity 中,假设您有一个 3D 对象,
当然,获得AABB是微不足道的,Unity有直接的功能,
(您可能必须以通常的方式“将渲染器的所有边界框相加”,没问题。)
所以 Unity 确实有一个直接功能,可以立即为您提供 3D AABB 盒子,而不是每帧的内部网格/渲染管道。
现在,对于有问题的相机,AABB 确实覆盖了某个 2D 边界框...
事实上......有没有某种内置的直接方法可以在 Unity 中找到橙色的 2D 框??
问题 - Unity 是否有一个功能可以立即从管道中提供 2D 截锥体?
(请注意,要手动执行此操作,您只需为 AABB 的 8 个点制作光线(或使用世界到屏幕空间,就像 Draco 提到的那样);将它们封装在 2D 中以制作橙色框。)
我不需要手动解决方案,我问的是引擎是否在每一帧都以某种方式从管道中给出这个?
有电话吗?
(确实,有这个会更好……)
我的感觉是其中的一个或全部
- 尤其是遮挡系统
- 着色器
- 渲染器
肯定会知道橙色框,甚至可能知道管道内的蓝色框,就在显卡旁边,就像它知道给定网格的 AABB 一样。
我们知道 Unity 可以让您在给定网格的每一帧立即点击 AABB 3D 框:事实上,Unity 是否提供了此处所示的“2D 视锥体边界”?
【问题讨论】:
-
这是一个有趣的问题...
-
@Programmer 我想是的。
-
我也是。很明显,(1) 整体渲染引擎和/或 (2) 着色器和/或 (3) 遮挡系统,实际上必须立即知道此信息 在每个对象的每一帧内。
-
( @Hristo - 该算法实际上不起作用!想一想物体何时旋转。您将立即面临扩展/收缩侧面以包含局部截头体部分断裂的主要工作。A非常困难的问题。)
-
最后只是 FWIW,@Lotan - 我们想要的是 AABB 的“平板相机盒”。即“橙色方块”。使用 8 个极端手动(正如我解释的那样)相对容易。问题是统一是否内置(可能在金属上)。 (我关于 blue 框的附录完全不同;但谁知道呢,也许 Unity 也提供了。)
标签: unity3d 3d game-physics aabb