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

java - Java 柏林噪音

我需要像在AS3.0中一样制造 perlin 噪音:

这是无缝的噪音:

在此处输入图像描述

我找到了很多关于它的材料,但我无法让它像我的 as3.0 图像中那样。Java代码:

请帮忙!

0 投票
1 回答
3485 浏览

opengl - C++ OpenGL Cube Map Perlin Noise to Sphere

我目前正在制作一些行星生成,主要是为了好玩,并希望最终能得到一些踢屁股的行星。我正在使用已通过标准化映射到球体的 Cube。行星地形和天空

这张照片中的地形尚未正确纹理化。这只是高度图的渲染。然而,这不是我的问题。从立方体创建球体时,您会留下 6 个弯曲成球体形状的面。因此,我没有可用于将球形高度图包裹在地形周围的纬度和经度。目前我正在使用立方体映射。但是,这会导致几个问题,如您所见: 立方体到球体映射问题 ——我的问题变得很明显。问题是由于球体仍然具有立方体的拓扑结构。我必须为每个面生成一个高度图。我目前使用 Libnoise 作为高度图,这就是大问题的开始。我可以将它导出为球形高度图(如果我有一个球体,这将很有用),或者我可以使用必须映射到所有 6 个面的平面高度图。但是,由于映射的工作方式。我可以让 3 个面在中间排列并且是无缝的,但最后一个高度图不会加入第一个高度图,因为 Lib 噪声使用边界并创建坐标网格。

球体是这样创建的——

这背后的原因可以在这里看到。

但是,球体的结构将使以后更容易以 Quad-Ttee 的形式实现 lod。无论如何我可以用 LibNoise 生成立方体贴图高度图吗?或者我可以做些什么来使球体能够使用球形高度图?

我想出了如何使用 Sphere Maps 进行渲染,但是当我开始使用四叉树时,这将不起作用。但是,它会产生一些不错的结果,例如:

在此处输入图像描述

所以,我几乎需要知道如何将噪声平铺到立方体贴图中。使用 Libnoise 或在顶点着色器中。

0 投票
1 回答
681 浏览

python - 你如何将 Python 的 Noise 1.1.1 用于坐标?

我环顾四周,似乎大多数人将它用于纹理,我发现自己一直在试图弄清楚如何将 Perlin/Simplex Noise 实现到一组二维坐标 x 和 y。

我要做的就是输入 2 个随机坐标 x & y,然后它返回一个改变的 x & y,或者这不可能吗?

我正在使用python噪声来创建坐标,但我发现柏林噪声很难理解并且无法完全理解它是如何工作的。

0 投票
3 回答
1844 浏览

r - R / Perlin噪声中的真实模拟高程数据

有谁知道如何在 R 中创建模拟栅格高程数据集 - 即现实高程值的 2d 矩阵?Rjitter似乎不合适。在 Java/Processing 中,该noise()函数使用Perlin 噪声算法来实现这一点,例如:

在此处输入图像描述

但是我在 R 文献中没有发现对 Perlin 噪声的引用。提前致谢。

0 投票
2 回答
543 浏览

java - 带有加权柏林噪声的地图生成器

我有任意数量的柏林噪声图和每个的权重。所有权重的总和为 1,但这不应该有所作为。

我想得到关于重量的最高值的噪音。

我的第一种方法是从每个 perlin 噪声中获取数字,将它们转换为百分比(我有一个循环表),乘以权重并选择最高值。但是这种方法有一个巨大的缺陷:它区分较小的权重而偏爱较大的权重,因此会打乱分布。我希望 0.2 的权重出现在 20% 中。

我想将其用于地图生成器以选择图块类型。我使用多个 perlin 噪声,因为我想使用许多不同的瓦片类型来彼此相邻,因此不能使用渐变。

有谁知道如何修复这个缺陷,或者用不同的方式生成基于瓦片的地图?

编辑:同时我想出了一个几乎可以接受的解决方案:

唯一的缺陷是不精确。即使权重为 0f,仍然会在大约 6% 的时间内返回噪声。

0 投票
2 回答
678 浏览

haskell - 在 Haskell 中优化 Perlin 噪声

(此程序的依赖项:vector --anyJuicyPixels >= 2。代码可用作Gist。)

我尝试将Ken Perlin 改进的噪音移植 到 Haskell,但我不完全确定我的方法是否正确。主要部分应该很好地推广到更高和更低的维度,但这是以后的事情:

这当然伴随着函数中提到的几个函数perlin3 ,我希望它们尽可能高效:

对于排列组,我只是复制了 Perlin 在他的网站上使用的一个:

而这一切都与 JuicyPixels 联系在一起:

我的问题是这perlin3对我来说似乎很慢。如果我对其进行概要分析,pixelRenderer 也会花费很多时间,但我现在将忽略它。不知道怎么优化perlin3。我试图用 bang 模式提示 GHC,这将执行时间缩短了一半,这很好。显式特化和内联对ghc -O. perlin3应该这么慢?


更新:这个问题的早期版本提到了我的代码中的一个错误。问题已经解决了; 原来我的旧版本有问题actuallyProperFraction。它隐式地将浮点数的整数部分四舍五入为Word8,然后从浮点数中减去它以获得小数部分。由于Word8只能取介于0255包含之间的值,因此对于该范围之外的数字(包括负数),这将无法正常工作。

0 投票
2 回答
341 浏览

c# - 异构瓦片和柏林噪声

我正在尝试使用异构瓷砖实现平铺游戏;不同大小的瓷砖。所有的瓷砖尺寸都是四舍五入的(到一米),以使其更容易。我正在寻找一种以伪随机顺序拟合瓷砖的算法,要求当然所有东西都必须平铺。

下面是我写的几行,但它不能按需要工作。不知何故,瓷砖之间的间距没有得到尊重。

首先,我生成了一个在旅途中创建的 perlin 噪声图。我为我的瓷砖地图使用字典。

瓷砖的对象米变量是方形瓷砖的宽度和深度,以米为单位。瓦片数组中的第一个瓦片是一个空瓦片,用于指定跳过。

编辑:我现在看到 Unity 中存在缩放问题,当我将比例 1 应用于游戏中的平面时,它会导致大小为 10。有人可以对此提供解释吗?

0 投票
3 回答
7306 浏览

directx - 单纯形噪声着色器?

我有几个关于 Simplex Noise 的问题。我正在使用 Simplex Noise 在 directx 中生成地形,但我目前正在使用类等。我可能也会将它用于纹理,那么是否有必要将其更改为着色器实现?如果是这样,这很容易做到吗?

此外,对于纹理,使用 3D 噪声还是 2D 噪声更好?

0 投票
1 回答
3791 浏览

c# - 在 C# 中创建 Perlin 噪声图像

我已经看到了很多关于柏林噪声的例子,但它们都略有不同。

我想知道如何使用 perlin 噪声算法在 c# 中创建图像。

我想要一个函数,每次我调用它时,都会生成一个新图像并将其放置在图片框中。

我看过柏林噪声伪代码,但我很困惑。我希望能够通过用户输入来操作一些属性。

但现在我的问题:

如何将 perlin 噪声集成到返回位图数据(2d)的 c# 函数中?

0 投票
1 回答
1323 浏览

c# - 使用 Perlin Noise 生成高度图返回黑色位图

如标题所示,我正在使用 Perlin Noise 制作高度图生成器。

我使用了这个站点的伪代码-> http://freespace.virgin.net/hugo.elias/models/m_perlin.htm

并转为 C# 代码。到目前为止,我已经完成了所有变量类型分配,并且代码给出了输出。不幸的是我的输出看起来像这样->在此处输入图像描述

如您所见,右边缘和下边缘从黑色到白色有轻微的渐变,但其他一切都是黑色的。

这是我的 C# 源代码->

如果有人愿意,我也可以以 zip 格式上传 Visual Studio 解决方案。

到目前为止,我发现 Noise() 函数有问题,因为它返回 -0,281 的次数最多。它应该返回介于 -1.0 和 1.0 之间的浮点数。我已经尝试过使用其他随机函数,但每次输出都一样。

我希望你们能帮助我,谢谢你的建议。