论文部分内容阅读
近几十年来,由于影视动画、虚拟现实和计算机游戏等领域的不断发展,基于物理的计算机动画成为人们研究的热点方向,它通过探索真实世界中自然现象的物理本质,利用计算机为物体建立精确的运动模型,从而更加逼真的表现物体的形象和运动。但是,由于物理方程计算的复杂性,基于物理的计算机动画总是存在耗时严重的问题,满足不了许多对时间要求较高的图形学应用领域的要求。本文以基于物理的计算机动画作为研究目标,试图在物理模拟的真实感和效率之间寻求一个良好的平衡点,从而满足计算机游戏领域的需求。本文对这一课题的研究主要集中在以下两个方面:第一,提出了一种基于物理模型的布料动画仿真方法。本文通过分析真实布料的物理机械原理,在质点-弹簧模型的基础上,提出用可变长度的细长杆代替弹簧的策略来模拟布料的压缩和弯曲现象,并且采用稳定而快速的Verlet数值积分法求解布料的运动方程。与别的方法相比,本文的方法更加逼真的表现了布料的柔软特性。另外,在处理布料与周围物体碰撞时,为了达到实时效果,本文针对发生碰撞的具体对象设计了简单易行的碰撞检测方法,并且采用效率较高的投射法来处理碰撞;同时针对布料的自碰撞,介绍了一种有效避免布料发生自碰撞的方法以及相应的加速处理方法。最后,在GPU上加速实现了布料模拟算法,利用最新的顶点纹理拾取技术建立布料的几何模型,并利用GPU的通用计算能力进行数值积分,大大提高了系统的性能。实验证明,本文实现的布料动画模拟系统是稳定而快速的,它兼顾了系统对真实感和实时性两方面的要求。第二,研究基于物理的水流动画技术。本文通过利用最新图形硬件的通用计算能力加速求解二维波动方程,从而获得水流表面的高度图,然后利用最新的顶点纹理拾取技术,得到水流的几何模型,这种技术避免了CPU和GPU之间相互传输数据,大大加快了水流模拟的速度。此外,为了更加逼真的模拟水流动画,本文还实现了几种增强水面真实感的技术:根据不同视点下的场景动态生成水面的折射和反射纹理,然后直接从pBuffer中读入纹理数据,利用Fresnel反射系数模拟水面的折射和反射效果;使用一种简化的处理方法模拟了水面的刻蚀;用纹理贴图的方法真实模拟了小船在水面上行驶时形成的尾痕。