首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >因为运动而发出的声音?

因为运动而发出的声音?
EN

Stack Overflow用户
提问于 2011-09-22 14:51:25
回答 2查看 2.1K关注 0票数 6

我正在成功地使用Perlin噪音来生成地形、云和其他一些漂亮的东西。然而,我现在正试图给一群会飞的昆虫(特别是萤火虫)动画,有人建议我也使用Perlin噪音。不过,我不太清楚该怎么做。

我想到的第一件事是,给了一张这样的噪音图:

  1. 给每只萤火虫指定一个随机的初始位置、速度和角加速度。
  2. 在机架上,将苍蝇的位置按其方向矢量推进。
  3. 在新的位置读取噪音图,并使用它来调整角加速度,使苍蝇“转向”较轻的像素。
  4. 调整角加速度再次接近其他苍蝇,以避免它们聚集在局部最大。

然而,这并不包括苍蝇到达地图边缘的情况,也不包括苍蝇可能只绕一个点运行的情况。第二种情况可能不是什么大问题,但我不确定是否有可靠的方法让它们转向以避免与地图边缘发生碰撞。

有什么建议吗?教程或论文(请用英语)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-27 06:19:23

这是一个非常好的二维perlin噪声源。您可以遵循完全相同的原则,但是您可以创建一个一维梯度数组,而不是创建一个二维梯度网格。您可以使用它来创建特定轴的噪声。

只需遵循这个配方,您就可以为您的其他轴创建类似的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

飞行愉快!

票数 6
EN

Stack Overflow用户

发布于 2011-09-22 15:00:28

也许你是在找机器人?

维基百科页面

它在最初的概念中没有Perlin噪声,也许您可以使用这个噪声来生成吸引子或排斥子,因为您正在尝试使用“飞向更轻”的行为。

PS:上面链接的页面提供了与萤火虫算法相关的链接,也许您会对此感兴趣吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7516810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档