实时水面漂浮

GPG6上的一篇文章看来大有启发。实时水面漂浮,对于任意多边形可以做到较真实的模拟。

主要的问题:
1、刚体物理,包括刚体动力学和运动学,高中物理的部分3D化后即可满足要求。
2、刚体体积计算,包括任意多边形的体积计算和被任意平面裁剪后的多边形体积计算。这部分利用计算几何中的有向体积可以方便的计算出来,而裁剪部分需要一点视锥裁剪知识就能很好解决。
3、数值积分和数值稳定,这部分在demo中可以简化,毕竟对一般的应用已经足够了。

主要的步骤:
1、计算待模拟的刚体体积、质量、转动惯量并指定世界常量,如重力加速度等。
2、计算水面常量,如水面法线方向,水面粘滞系数等。
3、根据刚体状态,通过计算刚体水下体积,得出浮力和重力对物体施加的影响,计算所受力和力矩。
4、根据受力状态改变刚体状态(数值积分)。
5、回到3循环计算

源代码:/Files/eygneph/buoyancy/MyBuoyancy.rar
请使用MyBuoyancy_2002.sln打开工程。

截图:








posted @ 2006-08-10 14:01  eygneph  阅读(345)  评论(1编辑  收藏  举报