3DMAX到DX坐标系的转换公式

  使用PHYSX物理引擎大概有几年了,最近发现一BUG,convex物理实体跟引擎模型对应不上(很惭愧,才发现)。

  Physx物理引擎有3DMAX的物理插件,能做刚体。。。还经常出BUG,就不吐槽了,但还是忍不住说一句,烂得一逼,

尤其是布娃娃插件,坑了我一年多,前阵子痛定思痛,和同事做了布娃娃插件。这插件设计上是支持刚体和关节的,但目前

不够完美,刚体制作只能依靠PHYSX的官方插件。

  3DMAX的坐标系是右手Z-UP,DX是左手Y-UP。

  顶点转换:YZ交换。 (顶点位置)

  四元数:YZ交换,W取反。(模型的旋转矩阵以及偏移旋转矩阵)

  在这特别说明下,对于旋转矩阵来说,它的转换是2、3行交换,第一行取反(如果我没记错的话)。之所以不用矩阵,

原因有二,一是用矩阵推导这个关系颇为难理解,而四元数的转换很好理解。二是因为PHYSX物理实体的位置设置是用四元数

PxQuat和位置PxVec3,无法设置缩放系数,仅仅从外部对物理刚体旋转90度无法解决这一问题,仔细想想便可理解这一点。

  测试了十几个刚体,暂未发现问题。如果发现问题,之后会更新。

  

 

posted on 2017-09-07 16:10  牛盾  阅读(323)  评论(0)    收藏  举报