改正一些小问题

今天改正了一个小问题


当能量函数对某个参数的梯度为0时,直接把这个参数的增量设为0。因为说明这个参数无论怎么变化都不可能影响能量函数。

当解出参数增量不为有限值时,也把增量设为0。

把增量设为0也就是保持参数与上一帧一样。


当前发现的一个严重问题是,当Hessian不为正定时,模拟常常会出错。具体的表现是,参数突然变化很多,或求不出参数有限的增量(无效的浮点值)。

牵涉到旋转的情形比较容易出现这种情况。这时候多种参数往往会对应1个形状。例如,弯曲为0时,无论弯曲轴旋转到哪里,形状都是未弯曲的形状。


暂时没想到有效的解决方法。只能用以上粗糙的方法代替。


另一个问题是,牵涉到骨骼动画的模拟,有时候姿态会突变。我怀疑是由于内力过大造成的。

posted @ 2015-01-01 23:39  dydx  阅读(147)  评论(0编辑  收藏  举报