2010-06-22 69 views
5

无论使用任何特定的语言,创建雨水效果或水滴的原理是什么。我已经在Flash中看到了一些令人印象深刻的雨水和水效果,但它是如何工作的?创建雨水效果/水滴的算法?

Rain Effect Example

Rain Drop Water Effect Example

+0

你应该为你定义一个令人印象深刻的雨水效果(它可以是很多不同的东西)。如果您有这些链接,请链接到示例。 – Unreason 2010-06-22 16:02:06

+0

@unreason:查看我上面发布的链接。 – 2010-06-22 18:19:28

+0

:)因为我认为 - 这两个例子有很少共同点......好吧,我会提出一个答案 – Unreason 2010-06-23 08:41:29

回答

2

你问了一个问题,如果这两个例子是有关工作要做,但你确实有

1)模拟雨滴在空气中(下降步道;简单,但现实取决于照明大)看到

此您可以模拟下列事件:

for each time step: 
    create new drops 
    move existing drops vertically down 
    remove (or/and animate) the drops hitting the ground 

正如其他答案中指出的,可以使用各种算法创建新滴(大小和位置)。至于他们以恒定速度移动的速度。 终于展现你的创新,你需要看看简单projections

2)模拟溅波(水模拟,并在例如一个反射面所示)

对于这一点,你只需要知道在哪里下降秋天,它们有多大,其余的是波浪传播。但是,如果有反思,那才真正可见,这可能有点棘手。

注意: 有很多事情决定了现实主义,但主要是它归结为细节。 例如,通常只有在奇怪的照明条件下才能清楚地看到下雨 - 接近灯或高对比度背景。否则它是非常暗淡的。

此外在交互中的细节 - 飞溅在它撞击的表面上,可能会留下气泡(如果足够接近可以注意到)或创建波浪。另一个例子 - 如果你看看这个tutorial,这不太现实,但它确实说明了一点,你会看到,尽管下雨看起来更像是一场雪,但它暴露了第一个例子的“平坦性” (它绝对没有深度)。

所以,这是关于细节。

尝试模拟你必须模拟的事件,然后分别模拟每个事件 - 例如使用分形来播种雨水可能是一种矫枉过正,但是如果你很好地模拟了你的工作,你可以从随机开始播种和后者替代更准确/复杂的方法。

1

他们可能使用particle effects居多。

+1

在这种情况下,粒子系统会过度杀伤,特别是如果你想要一个大的可见雨区。如下所示,存在更简单的解决方案。 – tenpn 2010-06-22 16:31:00

3

这是Mandelbrot和Lovejoy的paper,这是引用最多的作品之一,用于开发代表降雨的分形模型。

+0

无法获得工作链接:(说出关于会话cookie的一些东西:) – cwap 2010-06-22 15:51:13

+0

现在应该修复。 – Jory 2010-06-22 15:56:42

+1

找不到页面:( – Mark 2010-06-26 16:13:42

1

古老的学校便宜的方式是使用调色板循环。基本上,您可以设置颜色渐变,并以固定间隔将一种颜色移动到下一个颜色。移动的颜色给运动的幻觉。我曾在雨,风,雪,瀑布,火等等的游戏中使用调色板循环进行动画制作。这是一个垂死的艺术,但它仍然有效。 :)