论文部分内容阅读
随着计算机图像技术的快速发展,布料仿真技术受到越来越多关注与研究。近年来,基于物理的仿真模型—质点-弹簧系统仿真模型由于其仿真效果逼真、简单易用、算法易于实现而得到了广泛应用。该算法利用质点-弹簧系统建立布料的模型并对其进行受力分析,然后,通过数值积分算法(如本文中讨论的显式Euler数值积分算法与隐式Euler数值积分算法等)求解各个质点下一个时间步长的速度和相应的位置,最后对质点的位置进行动态更新,并利用碰撞检测与响应算法处理仿真过程中的碰撞与布料与自身的碰撞,从而实现布料的仿真。 尽管目前的研究已经取得了丰富的研究成果,然而,由于布料的柔体特性,设计和实现高性能的(包括实时性、稳定性与真实性)布料仿真算法依然面临着挑战:(1)传统的质点-弹簧系统的计算模型受力繁多,且质点之间的弹簧连接不易从已知的材料性质中得到,因而使得该模型在仿真计算中的时间复杂度较高;(2)纯粹的显式Euler数值积分方法或者隐式Euler数值积分方法并不能满足现实的需求。原因在于:显式Euler数值积分方法只能在小步长的前提下才能保证快速计算的稳定性。而隐式Euler积分方法尽管避开了大步长的计算,克服了稳定性问题,但其仍然存在计算效率低的问题;(3)在质点数量的规模变得庞大时,传统的基于包围盒的自碰撞检测算法无法满足性能需求。 针对以上的三个问题,本文对原质点-弹簧系统计算模型,隐式Euler数值积分方法以及子碰撞检测算法进行了改进,并在本文设计的实验平台上对理论分析进行了检验。 本文所作的主要工作如下:(1)在分析原布料仿真模型的基础上,简化了原计算模型中剪力弹簧的一个方向的受力计算,提出了一种基于质点-弹簧系统的简化计算模型。(2)提出了一种简化隐式Euler数值积分算法,该方法通过计算当前质点的相邻点所受力的近似值来产生目标质点的速度。(3)在传统空间划分方法的基础上,将每个子空间进行划分,同时,建立每个子空间的邻接域来代替传统方法的邻接空间,提出了一种自碰撞检测的方法——子空间再分法。(4)设计并实现了一种基于OPEN GL的布料仿真实验平台,并在该平台上对本文理论进行了检验。实验结果表明,利用本文中的方法,能够在保证布料仿真实验的稳定性、真实性的基础上,提高布料仿真算法的实时性,从而有效提高了布料仿真算法的性能。