fish的小屋

fish的小屋

导航

随笔分类 -  刚体模拟

Impluse based simulation, constraint based simulation, collision detection
My Physics Engine V0.1
摘要:Feature:Collision Detection 碰撞检测(Narrow Phase:凸包Vs凸包,凸包Vs组合体,Concave Mesh Vs凸包,Box-Box etc ,Broad Phase:静态AABBtree,Sweep And Prun,动态AABB tree,Space Sparse Hash)Rigid Body Simulation 刚体模拟Fluid Simulati... 阅读全文

posted @ 2010-05-10 23:06 fish.shadow song(若愚.影歌) 阅读(592) 评论(4) 推荐(0)

共轭梯度(Conjugate gradient)
摘要:http://class.htu.cn/nla/chat5/sect5_1.htm最速下降http://class.htu.cn/nla/chat5/sect5_2.htm共轭梯度介绍和证明都很详细易懂,先收藏了,没时间仔细看粗略看了下。 最速下降法,是从一个正定对称阵构造出一个2次型多项式,求解多项式的最小值出的X值,来得到方程解,所谓最速下降就是给定X0,从该点寻找一个满足一定条件的下降方向和... 阅读全文

posted @ 2010-05-02 14:19 fish.shadow song(若愚.影歌) 阅读(469) 评论(1) 推荐(0)

convex cast vehicle simulation
摘要:这段时间一直没有想到一个强壮而且快速的柔体vs刚体碰撞的算法,所以决定放一段时间在想,无聊中看了一些车辆模拟的小介绍,做了个现在比较流行的基于ray-cast的vehicle 模拟,当然因为感到raycast 并不好 它把整个车轮模拟成一个点了,越过障碍时会出现突然的上升和下降,所以我自己采用了convex cast 方法,下一步要做Concavemesh和convex的碰撞检测,估计会出现的问题... 阅读全文

posted @ 2009-11-26 21:55 fish.shadow song(若愚.影歌) 阅读(348) 评论(0) 推荐(0)

基于GJK的Convex Cast存在的Numerical问题
摘要:这几天碰巧看到Gino 的 ppt<<Continuous Collision Detection: Progress and Challenges>>,里面讲了使用GJK方法来实现两个Convex的Cast方法,一开始以为很简单,而且正好在做车辆的模拟仿真,正好用这种方法来做车轮和地面的Cast,可是我想简单了,刚把自己写好的方法运用上去以后发现车身抖个不停,轮子还不停穿... 阅读全文

posted @ 2009-11-21 23:08 fish.shadow song(若愚.影歌) 阅读(394) 评论(0) 推荐(0)

测试了一下NGS 和split impluse两种方法的Position Correction
摘要:测试了一下NGS 和split impluse两种方法的Position Correction,感觉NGS虽然效果稍微好一些但是在某些极端情况下仍然存在oscillations现象(比如连接2个hing Joint的物体一个重0.1一个重1,然后将一个重10的物体砸向重0.1的那个),虽然oscillation幅度明显小于split impluse方法,但是由于该方法的非线性性质导致运算量很多,综... 阅读全文

posted @ 2009-09-20 23:21 fish.shadow song(若愚.影歌) 阅读(628) 评论(5) 推荐(1)

Position Correction
摘要:在模拟中由于timestep的关系,实际上是假定了一个系统的Jacobian矩阵在该时间步长timestep中是个常量,由此而得到的是一个关于约束的线性系统,也就是认为在(t,t+detat)时间段内该矩阵处处相等,但是实际上并非如此,该矩阵实际在这个时间段中一直是变化的,所以其实这是一个非线形的系统,应次timestep越大,导致使用线形系统描述非线性系统的误差越大,有时候就会出现比如铰链断裂的... 阅读全文

posted @ 2009-08-28 23:02 fish.shadow song(若愚.影歌) 阅读(314) 评论(0) 推荐(0)

Joint Sample
摘要:Hinge Joint 测试成功目前Hinge Joint 除了支持Joint Limit和Joint Motor,此外由于在真实环境中就Joint本身在转轴处也存在摩擦力,这里是摩擦矩,和接触情况下的摩擦力有类似的性质,所以还加了一个额外的类似摩擦力的约束用来模拟转轴处的摩擦矩,摩擦矩的最大值由用户定义,其它性质都和摩擦力相同,图中的绿色部分表示Joint 2段是2个连接的物体。今天无聊翻出5年... 阅读全文

posted @ 2009-08-05 22:50 fish.shadow song(若愚.影歌) 阅读(304) 评论(0) 推荐(0)

Joint进展
摘要:今天总算把,Revolution Joint,Ball Joint,和Slider Joint都写完了,累死了,特别是Ball Joint Limit,由于文章上都是介绍Hinge Joint和Slide Joint的Joint Limit,所以只能自己创造了一个,现在基本是定义一个Ball Socket cone来限制Ball Joint的角度,不过感觉还不够比如模拟人体肩部关节的时候各个轴的最... 阅读全文

posted @ 2009-07-29 23:55 fish.shadow song(若愚.影歌) 阅读(292) 评论(0) 推荐(0)

完成了基本的刚体模拟>.<
摘要:历经4个多月,看了不少论文,昨天终于完成了刚体模拟的基本Demo Box的堆叠,下图是一个Box冲向一堆,堆叠在一起box后的几个瞬间的截图,整个系统采用constraint based方法模拟,PGS迭代器求解LCP问题,效率还不错,系统框架已经支持Joint,只需在以后把每一种Joint的Jacobian参数正确填入即可,所以未来几周加入Joint应该不会很困难。贴图庆祝下,希望完成Joint... 阅读全文

posted @ 2009-07-19 11:42 fish.shadow song(若愚.影歌) 阅读(692) 评论(5) 推荐(0)