【发布时间】:2015-03-14 09:54:54
【问题描述】:
我首先要道歉,我非常怀疑我是否会使用任何正确的术语,不幸的是经过几个小时的原始测试并将我的头撞到墙上我可以弄清楚这一点。
我使用一个引擎,它使用底部对齐系统来定位它的模型。这意味着 z 轴(在 z 向上系统中)是 z - 半径 = 原点,或者如果模型位于 0,0,0,则所有 tris 都将位于正 z 空间中。
我正在集成子弹,它是一个中心对齐系统,这意味着对象的原点位于质量中心(在本例中是一个简单的 aabb 立方体)。
我遇到的问题是,我传入渲染器的偏航俯仰滚动和原点在 z+ 方向上被半径偏移。现在最大的问题是当俯仰或滚动变为 0 以外的值时。因为子弹的中心对齐系统,围绕俯仰旋转并围绕中心滚动,并且渲染围绕底部旋转。所以模型和边界框的排列位置有明显的区别。
那么有没有一种算法可以从这两种形式的方向转换?
【问题讨论】:
-
我认为这个问题可能会很有趣,但对我来说,如果你用一小段代码来说明一个具体的例子会更清楚。
-
很难用代码说明我可以给你看一些图片,这样会更清楚。 link橙色框是blenders aabb,立方体是引擎模型渲染,火球粒子是中心原点。如您所见,模型从原点底部渲染。所以基本上我需要一个让盒子对齐的算法:)盒子的宽度高度和深度是4.0。
标签: c++ math 3d bullet calculus