recursion - 如何使用柏林噪声或其他算法点对点 "bolt"的闪电?

标签 recursion pseudocode procedural-generation

我遇到的 perlin 噪声生成的每个实现都是用于生成 2D 地形等。我在任何地方都找不到一个像样的点对点闪电生成示例。

是否有许多其他形式的“闪电”产生?有人告诉我这就是我想要的。 fork 闪电或 2D 树存在哪些算法(我可以将其颠倒为闪电)

我使用多种语言工作,因此伪代码示例也可以。

最佳答案

我的理解是,柏林噪声的设计使其所有模式都接近于一个“大小”,但闪电是一个分形,每个“大小”都有模式。
可能有一种方法可以使用不同尺度的多个 Perlin 噪声系统来制造闪电,但也许这些其他方法之一会更好:

中点位移法是一种非常快的算法
用于生成看起来很像闪电的形状。
唉,它只在两点之间生成一条(非常锯齿状的)线,从不 fork 。
有一些源代码和图片在
http://www.krazydad.com/bestiary/bestiary_lightning.html

概率 L 系统可用于生成看起来像闪电的形状。
我看到至少有一个人放弃了 Perlin 噪声,转而使用 L 系统来模拟闪电。
http://www.grepart.com/showcase/content/lightning_paper.pdf

随机 Lichtenberg 算法运行速度稍慢,
但它是更真实的闪电模型,并且会产生很多 fork 。
http://fisica.ciencias.uchile.cl/alejo/fractal_antenna/node7.html

这是 "Best lightning generation\simulation algorithm?" 的重复吗?题?

关于recursion - 如何使用柏林噪声或其他算法点对点 "bolt"的闪电?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3578981/

相关文章:

audio - 如何在 Lazarus/Free Pascal 中生成和播放程序声音(方波等)?

python - 如何将依赖树的输出解析为扁平结构

regex - 如何让 Spark session 递归读取所有文件?

algorithm - 快速选择两个不同的随机数

algorithm - 将冒泡排序更改为插入排序,对迭代进行少量更改

java - OpenSimplexNoise 更高的细节级别

python - 在 Python 中实现 "Wave Collapse Function"算法的问题

python - 辅助函数与主函数同名吗?

c - 在这个例子中,我如何只打印一次序列? (递归函数)

hashtable - 用两个数组创建一个哈希表