论文部分内容阅读
布料的动态模拟是计算机动画的重要组成部分,在动漫影视、三维网络游戏及虚拟服装上都有着广泛的应用。布料模拟的目标在于模拟布料真实的形变效果,研究涉及到计算机图形学、微分几何、动力学、碰撞检测以及计算机视觉等多门学科知识。由于布料复杂的物理特性和风力生成算法的复杂性,布料在随机风场中的动态仿真成为一个富有挑战的研究课题。在传统的风力生成算法中,有些研究者只是使用简单的矢量来代替风力。为了模拟布料在自然风力作用下真实的运动效果,本文在噪声理论和空气动力学的基础上,引入柏林噪声函数来产生随机风场。首先,通过柏林噪声函数产生的随机数来扰动风场模型的风速。然后,根据空气动力学中使用速度计算力的公式来计算布料网格中每个三角面片所受的风力。最后,使用改进的风力计算公式计算质点所受的平均风力,从而模拟出比较自然的风。和传统风力算法相比,利用柏林噪声函数构造的随机风场模型简单且具有较好的适用性,能够较逼真地模拟出布料及服装在风力作用下的动态效果。本文采用质点-弹簧模型构建了布料的网格模型,先对网格中的质点进行受力分析,内力包含了三种弹簧力及阻尼力,外力包含了重力和风力。完成受力分析后,利用显示欧拉法迭代更新质点的速度和位置,实现布料在随机风场中的动态模拟。然后,为防止布料在风场运动中穿透其他模型,需要对布料与其他模型进行碰撞检测,并对检测出的穿透点做出碰撞响应。本文采用AABB(Axis-Aligned Bounding Box)包围法来对场景中的模型建立包围盒,以此完成布料与其他模型的碰撞检测问题。最后,通过纹理映射增加布料模型的真实感。