physx放下了一段时间,最近重新拣起,很多东西都忘记,重新复习一下。
1,创建基本物理对象
physx的碰撞对象是actor,每个actor都可以包含任意多个基本物理模型(shape)。
shape有很多种,cube,sphere,capsule,plane,heightfield。
创建一个actor需要3个对象的信息才能创建,body描述,shape描述,actor描述。
body描述了物体的质量,重心等
shape描述的是物体的外形
actor描述位置等
如果希望创建一个静态actor,只需要设置一个空actor的body设置为null,那么在运行时这个物体将不能移动,即便是使用程序。如果希望在运行时,能够通过程序来移动物体,但是他本身是不动的,也不会被其他物体推动,那么在创建的时候,我们可以给body的flag设置一个NX_BF_KINEMATIC 标志。
动态actor必须提供一个有效的body描述,或者不提供shape描述。
质量和密度:
physx通过3种方法计算:
1) actorDesc.density == 0, bodyDesc.mass > 0, bodyDesc.massSpaceInertia.magnitude() > 0
Here the mass properties are specified explicitly, there is nothing to compute.
2) actorDesc.density > 0, actorDesc.shapes.size() > 0, bodyDesc.mass == 0, bodyDes