问题标签 [perlin-noise]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2556 浏览

flash - Flash 中的 Perlin-noise 是如何实现的?

gamedev.SE上,我们发现Perlin-noise 的 flash 实现似乎与其他实现有很大的不同。

我没有在网上找到任何实现细节,但我想知道是否有人能说出闪存中的 Perlin-noise 使用了哪种算法。

使用bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true);生成这样的图像,其中仅numOctaves更改了参数(1, 2,4从左到右):

闪光灯中的柏林噪声

然而 Perlin-noise 的其他实现看起来完全不同。例如,维基百科关于 Perlin-noise的文章中的图像:

维基百科上描述的 Perlin 噪声

Perlin-noise 的 Actionscript 实现也产生了完全不同的结果,如下图所示(八度音阶,1从左到右):24

柏林噪声 AS3

我最感兴趣的是只有一个八度音阶的噪音外观。在 Flash 实现中,您可以清楚地看到,噪音正在形成类似分离的斑点。

重要:闪光灯中产生的噪音false用于fractalNoise参数。如果fractalNoise设置为true,则结果实际上与 Wikipedia 和其他实现中的结果非常相似。

参数说明如下:

一个布尔值。如果该值为真,则该方法生成分形噪声;否则,它会产生湍流。具有湍流的图像在渐变中具有明显的不连续性,可以使其更好地接近更清晰的视觉效果,例如火焰和海浪。

正如我们所见,他们用湍流来描述产生噪音的方法。所以我想问题是:flash 生成的输出仍然是 Perlin 噪声吗?或者这种噪音还有别的名字吗?最重要的是:在哪里可以找到一种实现来产生这样的噪音?

0 投票
1 回答
1246 浏览

python - 使用 Python 和 NumPy 生成一批 n 维 Perlin 噪声

我设法掌握了 Perlin 噪声的工作方式,并使用这个很棒的 PDF 作为参考实现了一次像素版本,但是,很明显它非常慢。

首先想到的是批量生成它——而不是遍历从 0.0 到 1.0 的每个像素,生成一个numpy.linspace然后使用 numpy 的矢量化操作对其进行操作,但这似乎超出了我的范围,我不断迷路并删除我写的所有内容。

一种 StackOverflower 可以帮助我吗?尽可能少的示例代码和每一步的详细解释都会对我有很大帮助。

编辑:批次是指包含空间中不同点的 perlin 噪声值的数组,而不是我的 noise() 方法一次只生成一个像素。

0 投票
1 回答
2100 浏览

persistence - Java:2D Perlin 噪声创建

那里没有多少易于理解的 Perlin Noise 教程,当然也没有 Java 或 2D 教程。我按照教程进行了一定程度的操作,但它根本没有解释 2D 噪声。我知道你必须生成一个数字数组,然后对它们和所有内容进行插值。我的问题是我不知道如何实现频率、持久性或幅度来帮助影响数字的结果。谁能给我一些基本的 Perlin Noise 函数或 Java 或类似语言的 2D Perlin Noise 教程的链接?谢谢!

编辑:有人可以至少简单地解释一下这个过程,或者一个人如何实现频率、幅度和持久性来影响一代吗?请 :)

0 投票
2 回答
20438 浏览

c# - 一维的柏林噪声?

尽我所能,我找不到任何关于 Perlin\Samplex Noise in 1D 的真正教程。

我在互联网上搜索了所有内容,但找不到任何东西。我遇到的任何提到 1D perlin 噪声的网站通常都非常不清楚,或者只是显示代码

0 投票
3 回答
10895 浏览

java - 如何用 Perlin 噪声填充 2D 数组?

我设计了一个小型个人项目来帮助我学习如何使用 Perlin Noise。该项目涉及使用 Perlin Noise 算法生成的随机连贯数据填充r行和列的 2D 数组。c

现在,我刚刚花了几个小时阅读各种有关生成 Perlin Noise 的资源。然而,这一切都在我的脑海中,我完全迷失了。我了解基本概念,但我不知道如何开始在 Java 中实现它。我认为如果有人可以向我展示一些注释良好的代码来实现我的目标,那将是最有帮助的,这样我就可以向后工作并自己应用它。

0 投票
2 回答
639 浏览

javascript - 有人可以将这个简单的函数翻译成 Javascript 吗?

我正在阅读有关 Perlin Noise 的教程,我遇到了这个功能:

虽然我确实了解其中的某些部分,但我真的不明白什么是(x<<13)& 7fffffff应该是什么意思(我看到它是一个十六进制数字,但它有什么作用?)。有人可以帮我把它翻译成 JS 吗?此外,在 32 位计算机上,JS 中的普通整数是 32 位的,对吗?

0 投票
1 回答
483 浏览

c - 如何将地形写入 .raw 文件?

我想通过 Perlin 噪声生成地形并将其存储到 .raw 文件中。

Nehe 的 HeightMap 教程中,我知道 .raw 文件的读取方式如下:

}

pHeightMap是一维的,所以我不明白如何将 x,y 对应于高度值。我打算在 Ken Perlin 的页面上使用libnoise或noise2 函数,使 1024x1024矩阵中的每个值对应于点的高度,但是 .raw 文件存储在一个维度中,我该如何制作 x,你的通信工作在那里?

0 投票
1 回答
478 浏览

java - OpenGL渲染网格和旋转脚本不起作用?

我创建了一个简单的脚本,它创建了一个 perlin 噪声数组并将其呈现在屏幕上。perlin 代码是正确的,但渲染代码不是。屏幕只呈现白色,屏幕上没有任何内容。

0 投票
1 回答
5806 浏览

random - Perlin 噪声无限生成/平铺?

我从Here得到了 Perlin Noise 算法,我想知道是否有办法使地形无限。问题在于这个函数(Java):

有谁知道如何使这个函数的随机生成器依赖于当前噪声块的偏移量(这些存储在两个变量中,xOffsetyOffset)?使用类似的东西Math.pow(xOffset,yOffset)并将其设置为种子会产生不稳定的、破碎的结果,这些结果根本不起作用。有人有一些见识吗?

任何帮助将不胜感激,谢谢!

0 投票
1 回答
508 浏览

perlin-noise - Perlin\Fractal 噪声仅在值之间跳跃一个单位

首先对我的英语倾注感到抱歉。

我正在尝试制作具有地形的虚拟世界,就像在 simcity2000 或运输大亨中,地形由瓷砖制成,瓷砖高度不能在瓷砖之间跳跃超过一层,因此没有悬崖。

对于地形生成,我使用的是 perlin\simplex 噪声,但我正在使用它来适应陡峭的斜坡。

我查看了 Open Transport Tycoon 的源代码,在生成地形后,地图上的所有图块都被循环并平滑,只有一个单元的高程。

但这对我来说行不通,因为我的地图会更大,而且我无法通过循环平滑所有地图。此外,不可能仅对地形的可见部分进行平滑处理,因为它会根据从哪个瓷砖平滑开始而有所不同。

我试图编写自己的噪声函数,它返回两个点之间的线性插值值,距离等于这些点的最大高度,这样斜率不能超过 45 度,它有效,但直到你尝试总结这样一起发挥作用。

如何伪随机生成最大 45 度山坡的地形,并以其他方式接近,而不仅仅是平滑一些先前生成的地图?

现在我没有想法,并希望 Perlin 噪声可能有一些可能的选项,如“最大坡度角”,但谷歌并没有帮助我。