为避免发生2-D裁片“穿越”人体模型和裁片间相互“穿越”现象,当检测到碰撞发生时,要立即进行碰撞响应处理。碰撞响应的处理方法一般有两种:一种是对碰撞质点施加几何约束;另一种是在人体模型和2-D裁片周围设置一个向量场,或对碰撞质点施加一个向外的瞬间足够大的力。第二种碰撞响应方法中向量场或约束反力的大小不易控制,当向量场或约束反力过小时,起不到约束的作用,容易产生碰撞现象;当向量场或约束反力过大时,则容易使2-D裁片产生“边缘跳动”现象,甚至导致系统求解失败。
发生碰撞时,受摩擦力和碰撞产生的冲力的作用,质点运动状态发生变化。检测到碰撞之后,需要准确确定质点碰撞后的位置及速度,避免发生“穿越”现。本文采用质点位置和速度修正的方法解决响应问题。
(1)质点位置修正
设2-D裁片上质点m与人体模型三角面S发生碰撞,N为三角面S的法向量。设置距离阈值dmin(图5-9)。
图5-9 碰撞时位置关系图
当质点m位于doff和dmin之间时,质点位置合理,不需修正,质点碰撞后的初始位置为当前碰撞位置。
当质点m处于dmin内时,需要调整质点位置,使其处于doff和dmin之间。
设碰撞前质点m的位置矢量为p1,碰撞后质点m的位置矢量为p2,则质点的位置修正方程为:
(www.xing528.com)
(2)质点速度修正
设2-D裁片质点m与人体模型在其表面P点接触,为P点处的法向量。F是使m与人体模型表面保持接触的力,是F的法向分量,是F的切向分量。kf为滑动摩擦系数(kf∈R+)。
若,质点m保持不动,无滑动摩擦力,。
若,质点m平行于人体模型表面移动,存在滑动摩擦力。
大小为:
设为碰撞前质点速度,为碰撞后质点速度。是垂直于人模表面的分量,是其切向分量。kd是衰减系数,kd∈[0,1]。
由于碰撞产生的力F与碰撞速度呈正比关系,碰撞速度越大则产生的反力越大,可近似认为;同时,由于质点的速度在[t0,t0+Δt]之间是基本恒定,可近似认为。
则碰撞后质点速度修正方程为:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。