有趣的Metaball — 渲染及优化

有趣的Metaball — 渲染及优化
近来由于某些门课程设计,重拾了之前本博客中“物理引擎”系列,以C#作为平台重新实现,并且加入了一些可靠的设计模式,从而比以往的设计更加易用。在制作过程中,突然想要用粒子模拟“水”的效果,于是查阅了很多资料,SPH之类的物理算法还在研究,但就水本身的渲染而言,利用Metaball算法则是能够立竿见影的看到效果,下图就是实际效果:   本文谈论的Metaball是2D范畴的,3D范畴的Metaball和2D的Metaball原理是一致的,但是具体的算法及优化上是有一定的差异的。 首先来了解,什么是Metaball?下图来自于Metaball的Wiki页面:   Metaball算法,可以创造出多个形状光滑融合的效果,看上去就像是水滴融合一样,通过使用Metaball,可以模拟水面、颜色融合、变形球等等酷炫效果,如果你玩过LocoRoco或者黏黏世界,那么你就一定见过Metaball。 Metaball的原理很简单,Metaball的本质不是...