在PhysX 3.2里的布料模拟(2)中,我们介绍了PhysX 3.2中创建布料对象PxCloth的过程。创建出来之后,实际游戏中我们肯定不希望把创建出来的布料就放在那里混吃等死、自生自灭了,多多少少,我们会有一些控制的动作。这一节中,我们就介绍PhysX 3.2为我们提供的更新布料状态的方法。
我们前面讲过,PhysX 3.2中的布料是在本地坐标系模拟的,碰撞形体都是本地维护的。这就意味着,布料的更新,需要包括两方面的内容:布料网格模型的更新和碰撞形体的更新。用一个简单的用例来说明这两个内容 -- 我们可以想像一下我们给一个人物加上了PhysX 布料制作的衣服,并且根据人物的建模,加上了布料的碰撞形体;某种情况下,我们需要把任务穿越到其他场景,那么就需要直接把布料的顶点都更新到新的位置去,同时,把碰撞形体的位置也一并更新过去,保证模拟结果的正确。
这种移动,要做的事情跟PhysX 2.8中没有大的差别,只是由于PhysX 3.2中布料的碰撞形体有自己来管理了,因此,这些碰撞形体的更新,也需要通过布料来进行。
我们先看如何更新布料的顶点。要更新布料的顶点,我们需要使用这个 :
virtual void setParticles(