无论使用哪种特定语言,产生雨水效果或水滴的背后原理是什么。我已经在Flash中看到了一些令人印象深刻的雨水效果,但是它实际上是如何工作的呢?
Rain Effect Example
Rain Drop Water Effect Example
最佳答案
您要问的是两个示例是否相关,但实际上您有
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,虽然这不是很现实,但确实说明了一点,但您会看到,即使下雨看起来更像雪,它也暴露了第一个示例的“平坦度”(绝对有没有深度)。
因此,这一切都与细节有关。
尝试根据要模拟的事件来建模自己的事件,然后解决分别模拟每个事件的问题-例如,使用分形来播种降雨可能是一个过大的杀伤力,但是如果您很好地对工作进行建模,则可以从随机播种开始,用后者替代使用更准确/更复杂的方法。
关于用于创建降雨效果/水滴的算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3094720/