我成功地使用Perlin噪音来生成地形,云和一些其他漂亮的东西。但是,我现在正试图为一群飞虫(特别是萤火虫)制作动画,并建议我使用Perlin噪音。但是,我不确定如何解决这个问题。
我发现的第一件事就是给出一个像这样的噪音地图:
然而,这并不包括苍蝇到达地图边缘的情况,或者它们可能在仅绕一个轨道运行的情况。第二种情况可能不是什么大问题,但我不确定一种可靠的方法让他们转而避免与地图边缘发生碰撞。
连连呢?教程或论文(请用英文)?
答案 0 :(得分:6)
这是2D perlin噪音的一个非常好的来源。您可以遵循完全相同的原则,但不是创建渐变的2D网格,而是可以创建一维渐变阵列。您可以使用它来为特定轴创建噪声。
只需按照此配方,您也可以为每个其他轴创建类似的perlin噪音功能!结合这些动作,你手上应该有一些好看的噪音。 (您也可以将这些噪声函数用作随机加速或速度。由于Perlin噪声函数是全球单调的,因此您的苍蝇不会飞到疯狂的距离。)
http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math-faq.html
如果您对其他类型的动作感到好奇,我会建议布朗运动。这是尘埃粒子漂浮在房间周围时所表现出来的那种运动。这篇文章最后得到了一些更有趣的数学,但如果你完全熟悉Matlab,那么前几套指令应该很容易理解。如果没有,只需谷歌功能,并找到他们的环境等效物(或自己创建!)这将更加真实,计算速度比perlin噪音快得多
http://lben.epfl.ch/files/content/sites/lben/files/users/179705/Simulating%20Brownian%20Motion.pdf
快乐的飞行!
答案 1 :(得分:1)
也许你在寻找boids?
它没有原始概念中的Perlin噪音,也许你可以使用噪音来产生吸引子或反射器,因为你正试图用“飞到更轻”的行为。
PS:上面链接的页面包含指向Firefly algorithm的相关链接,也许您会对此感兴趣?