创建虚拟生物第四部分

4 物理模拟
动态模拟被用来计算生物与一个虚拟的三维世界的交互的运动。在这个工作中
使用的物理模拟有一些组件,人工的身体动态,数值的积分,碰撞检测,碰撞
响应,摩擦力,和一个可选的粘性流体效应。这里仅有一个简明的综述,因为
物理模拟不是这篇文章的重点。

四块石的递归的人工身体方法被用来计算来自于速度的加速度和连接的刚体
部分的每个层次的外力。积分决定了从这些加速度得到的运动的结果,积分
用一个方法执行,这个 “龙格-库塔-范伯格”方法是一个第四序的龙格-库塔,
它带有附加的评估,来估计误差和采用的步长。对于1/30秒的每一个帧来说,
执行1到5之间的积分时间步长是经典的。

在这里部分的形状被表示为简单的长方体。边界盒的层次被用来减少部分之间的
碰撞检测的次数。对于碰撞,要检测世界空间的边界盒的相交情况,如果存在
的话,还有要检测与地平面的碰撞情况。如果必要的话,之间的时间步长被
缩小来保持任何新的碰撞在一个一定的误差范围之内。连接部分被允许相交,
但不是彼此完全旋转的。当检测连接部分的碰撞时,通过调整形状,可以实现。
较小部分的形状被从它的到达处,剪掉一半,所以它能自由的动作,直到它转
动,使得两个部分相接。

通过一个超级模型完成碰撞响应,使用了冲量和惩罚弹簧力。在高速时
同时性的冲量力被使用,在低速时,弹簧被使用,来模拟有随意的弹力和摩擦力
参数的碰撞和连接。

对于水下环境的模拟,一个粘性的效应被使用。对于每个暴露的移动表面,
一个粘性的力阻碍着它的速度,正比于它的表面积和正常速度量。没有包括流体
本身的运动,这是一个简单的合适的,但它仍是对于模拟看起来像游泳和划动
动态的现实,是足够的。

当生物的运动被优化时,物理模拟有合理的准确性是很重要的。任何从非注意的情况下,允许能量泄露的错误和舍入误差将被必然地发现,被虚拟生物利用。
对于高度一个物理模型系统来说,尽管这能够是一个懒的和经常有趣的方法,但
它没必要最常实践。

发布了108 篇原创文章 · 获赞 16 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/105343063