论文部分内容阅读
在过去几十年里,计算机仿真技术一直是研究者们感兴趣的研究领域。随着三维动画和虚拟现实技术的发展,以及三维电脑游戏和服装CAD等领域的迫切需要,计算机动画的一个重要组成部分——布料的实时动态模拟,吸引了越来越多的研究者。虽然已经有了大量对布料动态模拟的研究,但是布料的自动撕裂模拟仍然没有一个有效的方法。为解决这个问题,本文提出了一种基于质点-弹簧模型的布料自动撕裂模拟算法。首先,本文阐述了布料动态模拟的基本建模方法。布料建模是布料动态模拟的基础,本文首先讨论了用于布料建模的纯几何法、纯物理法以及混合几何物理法各自的优缺点,并用质点-弹簧模型这种物理建模方法对布料进行了建模。还讨论了布料模拟中的各种数值积分求解方法的优缺点,最终选择显式欧拉方法对布料模拟的动力学微积分方程进行数值求解。其次,提出了改进的质点-弹簧模型,实现了布料的自动撕裂模拟。本文先分析了当前布料撕裂模拟的方法,并指出其存在的缺陷。然后从质点-弹簧模型的结构出发,提出了“弹簧承受力”的概念,并分析总结出“弹簧承受力”的计算公式。当施加在布料上的外力超过“弹簧承受力”时,则弹簧断裂从而模拟出布料撕裂的效果。实验表明该改进的质点-弹簧模型能较好的实现布料的自动撕裂模拟。本文还讲述了布料的碰撞检测算法。分别为布料和场景中其他物体构造AABB二叉层次包围盒树,从而解决了布料的碰撞检测和自碰撞检测问题。当布料发生碰撞后,利用自底向上的方法来更新布料的二叉层次包围盒树,并做碰撞响应。最后,本文还给出了布料自动撕裂模拟实验的设计和实现。在实验中应用面向对象的编程思想,按照布料模型初始化、质点受力计算、撕裂判断、数值求解、碰撞检测和响应的次序实现了布料的自动撕裂模拟。结果显示,本文的布料自动撕裂模拟系统能达到实时模拟的要求,且模拟效果逼真,为进一步研究打下了基础。