问题标签 [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.
random - GLSL 的随机/噪声函数
由于 GPU 驱动程序供应商通常不费心noiseX
在 GLSL 中实现,我正在寻找“图形随机化瑞士军刀”实用功能集,最好优化以在 GPU 着色器中使用。我更喜欢 GLSL,但任何语言都可以为我编写代码,我可以自己将其翻译成 GLSL。
具体来说,我希望:
a)伪随机函数- N 维,在 [-1,1] 或 [0,1] 上的均匀分布,根据 M 维种子计算(理想情况下是任何值,但我可以限制种子例如,0..1 表示均匀的结果分布)。就像是:
b)像 Perlin 噪声这样的连续噪声- 再次,N 维,+- 均匀分布,具有受限的一组值,而且看起来不错(配置外观的一些选项,如 Perlin 级别也可能很有用)。我希望签名如下:
我不太喜欢随机数生成理论,所以我最渴望找到一个预制的解决方案,但我也很欣赏像“这是一个非常好的、高效的 1D rand(),让我解释一下”这样的答案你如何在它上面制作一个好的 N 维 rand() ......”。
opengl - Perlin 的 OpenGL 噪声
我正在通过一些示例研究 Perlin 的噪声 @ http://dindinx.net/OpenGL/index.php?menu=exemples&submenu=shaders并且不禁注意到他的make3DNoiseTexture()
inperlin.c
使用noise3(ni)
而不是PerlinNoise3D(...)
为什么会这样?Perlin 的噪声不应该是不同噪声频率和幅度的总和吗?
Qestion 2ni, inci, incj, inck
代表什么?为什么用ni
x,y 坐标代替?为什么ni
随着
ni[0]+=inci;
inci = 1.0 / (Noise3DTexSize / frequency);
我看到 Hugo Elias 使用 x,y 坐标创建他的 Perlin2D 而增加,PerlinNoise3D(...) 也是如此。
提前致谢 :)
3d - 3D Perlin 噪声分析导数
我目前正在使用 Shader Model 4 (DirectX 10 HLSL) 实现 3D Perlin 噪声凹凸映射。产生噪声本身并不是一个大问题(周围有大量的教程和代码),但我还没有找到 3D Perlin 噪声的分析导数。
唯一考虑衍生品的网站是Ińigo Quilez 的网站和相关的GameDev.net 讨论。问题是,在第一个链接中,噪声是基于值的,而不是基于梯度的(这对我来说是一个要求),在第二个链接中,只有 2D 梯度噪声导数。
请注意,我不是在寻找数值导数,因为它们需要生成 4 个相邻的噪声样本,而且开销太大。
有人计算过这些导数吗?是否有使用它们的参考实现?
terrain - 地形的 Perlin 噪声生成
我正在尝试实现一些我在网上找到的源代码,以使用 Perlin Noise 生成高度图。我已经成功地使用noise3函数获得了高度图,第三个坐标是一个随机的“种子”,以允许随机高度图。
我的问题是生成的地形相当沉闷 - 我想要山脉,而我正在获得连绵起伏的草原。我已经阅读了一些关于 Perlin Noise 的资料(主要是在这里)。由于我发现源代码的编写显然没有考虑到可读性,而且我对 Perlin Noise 的一般概念的掌握较弱,我无法弄清楚我需要在代码中调整什么(幅度和频率?)创造更剧烈的地形。
更多关于使用 Perlin Noise、Perlin Noise 生成高度图的信息,甚至一些更易破译的代码也将受到欢迎。
编辑:我了解(某种程度上)Perlin Noise 的工作原理,例如,关于幅度和频率,我只是想知道在我上面链接的代码中要更改哪些变量,这些变量用于这两个方面。
graphics - 我的“柏林”噪声效果着色器产生全白或全黑
我正在尝试在 NVidia FX Composer 中编写一个“perlin”噪声着色器。但是,无论我如何调整噪声函数,它都会返回 100% 白色或 100% 黑色。我不知道如何解决这个问题,甚至不知道问题出在哪里。
编辑:如果你看过这个页面,你可能知道我从哪里得到代码。想我会从一个我已经在 CPU 上工作的方法开始。
请帮忙。
谢谢。
c# - 如何向我的“perlin”噪声发生器添加比例因子?
我有一个 Perlin 噪声发生器,我试图用它来创建滚动地形。
我有一个中心地形,围绕它的同一侧的八个地形(这些都工作正常)和第二个地形环,它的三倍大。对于这些,我需要我的噪声发生器输出“密集”三倍的噪声,这样我就可以将更大的地形放在更小的地形上,并且除了三倍大的图块(和地图大小)之外,它们会匹配.
我不想只生成更大的地图;这很快就会变得令人望而却步。
我不知道该怎么办; 显而易见的解决方案都以某种方式失败了。
谢谢。
c# - Random.Next() - 找到第 N 个 .Next()
给定一个一致播种的 Random:
Random r = new Random(0);
调用r.Next()
始终产生相同的系列;那么有没有一种方法可以快速发现该系列中的第N个值,而无需调用r.Next()
N次?
我的场景是通过r.Next()
. 该应用程序偶尔会从任意索引处的数组中读取一个值。我想通过消除数组来优化内存使用,而是按需生成值。但是暴力破解r.Next()
500 万次来模拟数组的第 500 万个索引比存储数组更昂贵。是否可以在没有 / 较少循环的情况下捷径到达 Nth .Next() 值?
algorithm - 包装 2D perlin 噪声
我正在使用 Perlin Noise 进行高度图生成算法,我想让它环绕边缘,以便它可以被视为连续的.. 有没有简单的方法或技巧可以做到这一点?我想我需要像球形噪声这样的东西,以便它在水平和垂直方向上环绕。我也会很高兴只有 1 个包裹轴,但两个会更好。
现在我使用的是经典算法,您可以在其中设置要添加多少个八度音阶,以及用于改变每个连续八度音阶之间波的幅度和频率的乘数。
提前致谢!
processing - 柏林噪声场如何工作?
我特别看这个例子:
http://www.airtightinteractive.com/demos/processing_js/noisefield08.html
这是它的代码:
http://www.airtightinteractive.com/demos/processing_js/noisefield08.pjs
我想我需要解释这些行在粒子类中的作用:
我知道噪声会根据给定的坐标计算一个值,但我没有得到将粒子的 x pos 除以 mouseY 或 y pos 除以 mouseY 的逻辑。我也不明白“id”是什么,它似乎是一个计数器代表什么,或者接下来的两行完成了什么。
谢谢
c++ - 帮助使用 perlin 噪声库 libnoise
当我使用 x、y 和 z 作为整数调用 libnoise 的 getvalue 函数时,结果总是返回 0。这是正常的吗?当我按照教程http://libnoise.sourceforge.net/tutorials/tutorial2.html尝试1.25、0.75、0.5 时,我得到了 0.686347 的预期结果。具体来说,我已经尝试过使用 20 以下的整数。我只是不明白它是如何工作的吗?
任何帮助是极大的赞赏。