【游戏课】技术片段之——弹簧质点模型与布料动画

简介

在动画中对人物衣物的建模是非常重要的,直接影响到真实感的体验。广泛采用的技术是弹簧质点模型。弹簧质点模型是一种物理模型,其核心是把布料的形状用微分方程来表示。该模型结合布的物理属性, 如质量、硬度和弹性等布的材料属性, 运用力学理论建立起微分方程。


弹簧模型

1. 拉力弹簧: 拉力弹簧将一个质点和与它直接相连的质点连接。它产生的力用于抵抗布的拉伸或压缩。
2. 交叉弹簧: 一个交叉弹簧跨过两相邻三角形的公共边, 连接两个有公共边的三角形上的质点。在质点- 弹簧模型中, 交叉弹簧主要用于模拟布的弯曲力。


力模型

1.内力

a)弹簧力

假定一个弹簧Si, j连接两个质点Pi 和Pj。根据虎克定律, 作用力F s (Si, j) 和弹簧变化长度成正比:




其中, ks i, j是弹簧的刚度, I i, j是弹簧的矢量, l0i, j是弹簧的原长, x i和x j是质点Pi 和Pj 的位置。

b)阻尼力

动态的布模拟中, 适当的阻尼力对维持系统的稳定性是非常重要的。例如, 为了防止两质点间出现不规则的振动, 一个强张力必须伴随一个稳定的强阻尼力。在我们的质点- 弹簧模型中, 阻尼力Fd(Si, j) 和两个相连质点的速度差成正比。其公式如下: Fd(Si, j) = kd 其中, kd i, j是阻尼常数, v i和v j是两质点Pi和Pj 的速度。在质点i 上的内力Fint可以描述为:



其中, n 是直接连接质点i 的质点数目。

2.外力

a)重力

在我们的模型中, 我们用规则的网格描述布模型; 因此, 我们认为每个质点有相同的质量, 该质量等于布的总质量除质点的数量。在布模拟过程中, 作用在每个质点的重力是常数。

b)空气阻力

根据Stocke 的阻力定律, 空气阻力Fair和质点速度的n 次幂成正比。这个定律可近似表示如下:



其中, m i 是质点的质量, kr 是定义的空气阻力的正常数, vi 是速度矢量, 其大小为‖vi ‖, 方向为vdi 。在我们的模型中, 我们将指数n 选为1, 那么空气阻力表示为:



考虑重力和空气阻力, 作用在质点上的外力可以表示如下:



这样, 作用在质点上的总力为:


数值方法  欧拉方法

假设m i 是质点Pi 的质量; 在时刻t, 质点的位置为xi , 速度为vi , 加速度为ai , 作用在质点上的力为F i 。根据牛顿定律, 质点的加速度和作用力存在如下的关系: Fi = miai。因此ai =Fi/m i。

为了求出每一时刻每个质点的速度和位置, 在我们的系统中, 运用了显式的欧拉方法。这里要求迭代步长h 足够小, 而且假定在每个时间段加速度为常数。根据欧拉方法, 下一时刻( t+ h) 的速度vi ( t+ h) 和时刻t 的速度vi ( t) 存在如下关系:
vi ( t+ h) = vi ( t) + aih= vi ( t) +Fim ih 
那么, 下一时刻( t+ h) 的位置xi ( t+ h) 和时刻t 的位置xi ( t) 存在如下关系:
xi ( t+ h) = xi ( t) + vi ( t+ h) h


参考论文:《基于质点- 弹簧模型的布模拟方法》 褚莲娣 2002

注:本文仅供学习交流使用,谢绝转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值