如何真实地模拟火焰效果
作者:周军
游戏制作离不开各种各样的特效,火焰效果更是这些特效当中最常用的一
种。在网上有很多的这方面的例子,但似乎都不太理想。下面我主要介绍几种有
效的火焰模拟算法。
在讲述火焰算法之前,我想先介绍一个经典的 Blur 算法,这将为我们后面
的文章提供很好的技术基础,因为这是模拟火焰的关键所在。^_^ 对于不同的
效果我们要采取不同的模糊(Blur)算法,在这里我只介绍最简单的一种。
其实 Blur 算法相当简单,并不像很多人想象的那么神秘,只要一句话就可
以解释清楚。我们所要做的不过是把屏幕上的每一个点用它周围的四个点的平均
值代替即可。即:
好了,下面我们进入主题,Let’ s get in …… FIRE ! ! !
总的来说,模拟一个火焰效果需要以下这三个步骤:放置热源、火焰上升、
减掉衰减因子。
1. 放置热源:
放置热源很好理解,也很好实现,我们只需要在屏幕的适当位置(想升
起火焰的地方)放上一些亮点就可以了,比如:
for (int i=0; i<320; i++)
putpixel (i, 199, rand()%256);