王万新
摘要:在建立质点—弹簧模型的基础上。借助于Visual C++与OpenGL开发工具。通过受力分析得到织物变形的动力学方程。实现了织物变形仿真。
关键词:织物质点一弹簧模型仿真
1织物模拟的质点一弹簧模型
1.1模型描述
在织物模拟中,质点一弹簧模型相对简单,运算效率较高。该模型的主要思想是把一块织物划分为mxn的矩形网格,每个网格结点是一个虚拟质点,相邻的质点用弹簧相连,弹簧无质量且长度不能为零。质点与质点之间用弹簧连接,用于模拟布料内部纤维的相互作用。一般来说,弹簧分为三种类型弯曲弹簧、结构弹簧、剪切弹簧。
(1)结构弹簧:在质点Pi'j和Pi+1'j间,以及Pi'j和Pi'j+1间的弹簧为结构弹簧,结构弹簧是为了保持质点间初始状态时的距离。
(2)剪切弹簧:在质点Pi'j和Pi+1'j+1间,以及Pi+1'j和Pi'j+1间的弹簧为剪切弹簧。剪切弹簧是为了防止织物在自身平面过渡和不真实的变形,而给织物的一个剪切刚性。
(3)弯曲弹簧:在质点Pi'j和Pi+2'jj间,以及Pi'j和Pi'j+2间的弹簧为弯曲弹簧,弯曲弹簧是为了防止织物弯曲。
1.2受力分析
在模拟过程中,每一模拟粒子的运动过程就是作用其上的所有内力和外力综合作用效果的反映,而所有粒子运动的综合就是系统整体对外力作用的变形反应。考察粒子i'j的受力情况如下:
1.3织物变形模型的求解
根据牛顿动力学原理,质点Pi'j随时间运动的加速度、速度和位移表示如下:
每个质点的运动就是随时间的变化,求解以上方程组并反复迭代生成的。在质点一弹簧模型的基础上,我们把模型按质点的排列进行三角分割。其中每个三角形是构成织物的基本几何单元。
2试验结果
我们以OpenGL图形库为基础,用C++作为开发环境,实现了三维织物动感模拟系统。模拟9×9和20×20方形面料的动态下落过程,模拟结果。
3结束语
本文采用质点一弹簧织物动画模型,对织物进行模拟。该模型通过给每个质点附加一个动态的虚拟体弹簧,巧妙地展示了软体所含的体积特征,使物理弹性效果比较逼真和更加稳健。质点一弹簧模型是最接近织物本质的一个模型,质点网格划分得越细,就越接近织物内部非连续单元的尺寸,模拟的结果就越逼真。但这样无疑增加了计算量,实际上随着网格划分的细化,计算时间以几何级数增长,所以寻求更加快速、精度更高的计算方法是今后努力的方向。