【问题标题】:Algorithm for creating rain effect / water drops?创建雨效果/水滴的算法?
【发布时间】:2010-06-22 15:41:42
【问题描述】:

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

Rain Effect Example

Rain Drop Water Effect Example

【问题讨论】:

  • 你应该定义什么是令人印象深刻的雨和水效果(它可以是很多不同的东西)。如果有示例,请发布指向示例的链接。
  • @unreason:查看我在上面发布的链接。
  • :) 正如我所想 - 这两个例子几乎没有共同点......好吧,我会回答

标签: algorithm effects


【解决方案1】:

你在问一个问题,好像这两个例子是相关的,但实际上你有

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,这不是很现实,但它确实说明了一点,你会发现即使雨看起来更像雪,它也会暴露你第一次的“平坦”示例(绝对没有深度)。

所以,一切都与细节有关。

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

【讨论】:

    【解决方案2】:

    这是由 Mandelbrot 和 Lovejoy 撰写的 paper,它是开发分形模型以表示雨的被引用次数最多的作品之一。

    【讨论】:

    • 无法使链接正常工作 :( 说一些关于会话 cookie 的事情 :)
    【解决方案3】:

    第二个(Rain Drop Water Effect Example)可能是用wave equation模拟器完成的

    【讨论】:

      【解决方案4】:

      他们可能主要使用particle effects

      【讨论】:

      • 在这种情况下,粒子系统将是过度杀伤力,特别是如果你想要一个大的可见雨场。如下所示,存在更简单的解决方案。
      【解决方案5】:

      一种非常便宜的老式方法是使用调色板循环。基本上,您设置了一个颜色渐变,并以固定的间隔将一种颜色移动到下一种颜色。移动的颜色给人一种运动的错觉。我曾参与过雨、风、雪、瀑布、火等都使用调色板循环动画的游戏。这是一种垂死的艺术,但它仍然有效。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 2016-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多