问题标签 [simplex-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 投票
1 回答
605 浏览

java - 使 Perlin 噪声可扩展

我得到了一个 perlin 噪声算法和一个 opensimplex 噪声算法,它根据给定的 X 和 Y 值返回一个双精度值。我正在设计软件,我想知道如何:

  • 使用 0-1 双精度值缩放柏林噪声
  • 允许以不同的分辨率(即 1024、2048)构建 perlin,但仍保持比例,但添加额外的细节。
  • 允许用户更改世界大小,这也会影响比例

我目前的代码:

0 投票
1 回答
187 浏览

javascript - 对数组的单工噪声参考

编辑:我一直在调整 Simplex 噪声构造函数上的滑块。我使用了更软的浮点数,并且看到条形的数量减少了。可能的解决方案?

我正在使用单纯形噪声来生成更好的伪随机噪声。我正在尝试创建一个基本的贴图生成器,我希望使用生成的 Simplex 噪声与预定义的纹理数组相关。我正在使用从joshforisha解释的算法来选择一个缩放到数组长度的 Simplex 数。

我在这里创建了一个简化版本。在获得代码之前,您可能需要多次刷新代码,但您应该会看到重复的“非单纯形”样式行标出单纯形噪声。

我对这种情况的理解是,返回的随机数没有被映射到数组的长度,或者它跳过了太多的数字,但我不确定。

以下是如何从阵列中获得噪声选择。我省略了对其他已定义代码的引用,以使此示例尽可能简短。

0 投票
1 回答
1146 浏览

android - 与 webgl 相比,android 上的着色器精度不准确

基于此示例,我正在尝试在 android 上发出单纯形噪声:

https://github.com/ashima/webgl-noise/blob/master/src/noise2D.glsl

转换代码并在设备上编译后,我意识到模式远非随机。我已经将代码分解为最基本的部分,我仍然看到桌面(我在http://glslsandbox.com/e上测试这些)和移动设备之间存在很大差异,我已经得到了这个。

将它们分成几行的目的是我之前也遇到过这种错误。 GLSL ES 片段着色器在不同设备上产生非常不同的结果

在设备上,此代码(#ifdef 和 #extension 已删除,并且统一变量设置正确)会产生白屏。(在多个设备上测试,使用 #version 300 es 并使用较旧的着色器版本,结果始终相同。)

这个错误是由 floor() 不准确引起的吗?

或者有没有办法在没有这些 mod289 函数的情况下生成单纯形噪声?(2d 噪音运行得很好)

0 投票
2 回答
2135 浏览

javascript - Smoothly mapping a 2D uv point onto a 3D xyz sphere

I have been trying to procedurally generate a sphere's surface using simplex noise, and I figured that in order to get smooth, non-distorted noise I need to map each uv pixel to an xyz coordinate. I have tried a few different algorithms, with the following being my favourite:

While the points generated look continuous, there is severe distortion around the texture seams, and where the texture is stretched the most:

simplex noise

I am aware what I am trying to do is called UV mapping, yet I'm struggling to implement it correctly. Either I get severe distortion, or ugly seams. To render the sphere I am using Three.JS MeshPhongMaterial and for the noise I am using noisejs.

0 投票
0 回答
44 浏览

algorithm - 如何使用索引导出二维单纯形噪声中的伪随机梯度

当使用单纯形噪声时,它的主要特征之一是动态生成梯度。此处描述了此算法。问题在于,即使在专利中,梯度生成算法也仅在三个维度上进行了描述(见下文)。

具体的新技术如下:六位索引分为(i)一个低三位量,用于计算x、y和z中的每一个的0或1的幅度,以及(ii)一个高三位数量,用于确定所得梯度的八分圆(x、y 和 z 中的每一个中的正号或负号)。

如果 bit1bit0=0,则令 (p,q,r)=(x,y,z)。否则,令 (p,q,r) 为 (x,y,z) 到 (y,z,x) 或 (z,x,y) 顺序的旋转,分别为 bit1bit0=1 或 2,并将 q 或 r 设置为零,分别为 bit2=0 或 1。

000 p = x q = y r = z
001 p = y q = z r = 0
010 p = z q = x r = 0
011 p = x q = y r = 0
100 p = x q = y r = z
101 p = y q = 0 r = x
110 p = z q = 0 r = y
111 p = x q = 0 r = z

然后你基本上继续并翻转生成的渐变组件的符号。

问题基本上是上面的旋转算法是如何转化为二维的?

0 投票
1 回答
1166 浏览

unity3d - Determinisitic Compute Shader For Simplex Noise In Unity

So I have been trying to use the power of compute shaders to speed up the process of generating simplex noise for my map terrain generation in unity. The problem is that for the game to work it requires everything to be deterministic in order to prevent desync in its lockstep simulation. To do this I need to use some sort of fixed point math in order to avoid the nondeterministic mess that is floats :( . Wondered if anyone could help with this as can't seem to figure out how to achieve this in a reasonable run time

0 投票
1 回答
855 浏览

python - OpenSimplex 噪声生成问题(似乎是随机的,我的函数错了吗?)

我正在 pygame 中开发一个基于 2d 瓷砖的游戏,我正在尝试使用噪声图来生成我的地图。

我已经安装了 OpenSimplex 库,那里一切正常。问题是我似乎没有得到平滑的随机梯度,它看起来更像是随机噪声。

这是我用来生成图像的函数:

Tile 然后被添加到 sprite 组并在屏幕上绘制。我确信有更好的方法可以做到这一点,但它似乎应该工作。val 用于在绘制瓷砖时对其进行着色,将其映射在 0 和 1 之间并乘以 255。

这是我得到的图像(当我尝试不同的种子时,我得到了相似的图像): open simplex noise gen

这是标准化的图像,因此所有大于 0.5 的值都变为 1,所有小于 0.4 的值都变为 0,介于两者之间的所有值都设置为 0.5。这样做是为了尝试绘制任何我可能看不到的隐藏渐变,但它所做的只是: 在此处输入图像描述

如您所见,它看起来完全随机。我究竟做错了什么??谢谢

0 投票
1 回答
166 浏览

python - OpenSimplex 和 PyQt5:为什么我的函数需要这么长时间?

我正在尝试使用 PyQt5 和 Python 实现 Simplex Noise 以创建程序生成的高度图以用于模拟目的。我选择了 PyQt5,因为那是我最熟悉的 GUI。这是我使用 OpenSimplex 库生成高度图的代码。

这是我用来绘制这个高度图的 PyQt5 代码

当我对 draw_noise_grid() 计时时,我得到了将近 1.5 秒的时间来渲染它,而一半的时间它会破坏 python 并关闭。我的问题是我做错了什么导致它变得异常缓慢?还是我需要选择一个新的 GUI?任何帮助将不胜感激!

0 投票
1 回答
2248 浏览

python - Python Procedural 2d 地图生成器说明

所以我在 Python 中找到了一个特定的程序地图生成器,我理解它的一部分,但我很难将它拼凑在一起以便能够修改它以满足我的需要,所以我想知道是否有人可以解释一步一步地生成器究竟做了什么。总的来说,我理解这个概念,但它的编写方式让我很难理解所涉及的数学。

生成器在这里 ,一些解释会受到欢迎,并且可能会帮助任何其他试图学习过程生成的人,因为这个例子诚实地产生了漂亮的结果。

0 投票
2 回答
151 浏览

three.js - THREE.js 根据 mp3 中的数据改变平面的顶点

所以我被困了一段时间,因为我一直无法根据 mp3 的频率数据动态改变位置几何形状中的顶点形状,我遇到了两个主要问题:

1) mp3 生成的数组的值太多,无法快速渲染出顶点,因此,我正在使用此代码获取频率数据。

2) 每次频率数据更改时重新渲染平面都会导致极端的性能问题,以至于它不再渲染出来

我一直在使用单纯形噪声来使顶点变形,并且它确实有效,直到显然我传入频率数据并且一切都中断了,这是我试图用来根据音乐变形平面顶点的代码.

这是我的平面对象:

我非常感谢您的帮助,我正在尽我所能掌握三个.js :)