论文部分内容阅读
织物动态仿真技术是近年来计算机图形领域和纺织工业领域内的热点。自1998年SIGGRAPH年会中提出将织物仿真技术作为三大研究方向以来,许多学者投入了大量的精力进行研究。随着的纺织电子商务、虚拟试衣等的发展,对于织物动态仿真技术的需求在不断增加。 本文比较分析了诸多学者在织物动态仿真建模时采用的方法,结合其优缺点,将方形织物假设为由横向和纵向有序排列的质点组成,质点与其周围不同位置的质点相互连接形成三种弹簧,由不同的弹簧力来模拟织物变形时受到的力,而使织物产生形变。在整个仿真过程中再对每一个质点的速度、受力、加速度进行计算,求质点的位移从而实现织物动态运动的模型。在确定系统中质点的速度、受力、加速度及位移时,需要求解大量的微分方程组。为了提高计算效率,分别尝试采用了欧拉积分法、中点积分法和自适应的龙格库塔法求解微分方程组等方法,以便使系统有较快的仿真速度。 为了更好地检测织物与场景何时何地碰撞,将球体和立方体作为碰撞对象,设计了球体、立方体的碰撞检测算法。在复杂的虚拟环境中由于碰撞体较多,织物形状多变,以上算法完全可以用在球形包围盒和AABB包围盒的检测算法中。 在碰撞响应时,有时由于数据计算的值过火会出现个别质点“抖动”的现象。为了降低这种现象出现的概率,在响应计算时采用了质点速度、受力差异化的方法求解质点碰撞后的速度和受力。 织物动态仿真程序是在Visual C++ 6.0环境下,在OpenGL图形库的基础上编程实现的。在进行程序设计的时候,根据织物的特点,进行了一些细节上的优化,比如在纹理贴图时,将四边形网格作为纹理贴图的区域比将三角面片作为纹理区域,计算量较少,有利于提高程序运行的速度。程序最终实现了织物运动形态的模拟,仿真速度较快,效果较逼真。