[3]2D物理引擎探索 – 粒子系统的延伸探究

上一篇文章中,我给出了一个相对完整的粒子引擎的模拟,那么关于粒子引擎的应用,我将在本篇文章中进行探讨。 首先,粒子系统主要应用于模拟火花、子弹(弹道)等,当然粒子系统还能有更大的作用,那就是模拟柔体(例如布料),那么这篇文章的主要内容就是关于扩展粒子系统使之能够模拟布料或类似布料的柔体。 要完成这样的模拟,首先就要谈谈粒子之间的“联系”,粒子之间只有能够相互作用或者影响,才能够模拟一个相对复杂的物体,在柔体模拟中,这种“联系”就是“弹簧”,也就是弹性联系,粒子与粒子之间通过一个“弹簧”来连接,弹簧的压缩或伸长都会制约两个粒子之间的移动,并使整个粒子系统趋向一个较为稳定的状态。 下图展示的就是两个粒子通过弹簧联系的示意图: 弹簧的特点就是,弹簧对物体所施加的力,只取决于弹簧的伸长(压缩)量的大小,换句话说,只要知道被联系的两者的间距有多大,就可以十分方便的获取主体粒子受到的来自其它粒子制约的力的大小。 用这张图来进行说明,假设弹簧的弹性系数为k,弹簧原始长度(无压缩或伸长)为x0: A粒子(主...