Articles of 单纯形噪声

逐步扫描3D噪音以生成球体的立方体贴图

这与我以前提出的一个问题有点相关如何创建一个无缝的立方体贴图噪声纹理? 我已经成功地通过3D噪声函数来创建立方体贴图纹理,然后将其应用于icosphere。 如上所述,这是通过逐步完成的。 不过,我在我的一些边缘上得到了一些混合的结果: 在这幅图中,我不确定是否清楚,但可以看到中间的缝隙。 然而,从噪音角度来看,这个“接缝”实际上是非常平滑的。 问题是,这些立方体面貌似被扭曲,就像被拖到球体上一样。 这张照片显示了其中一个角落。 再次,噪音是完美的,但我认为很明显,我沿着球体表面穿过我的噪音的方式是错误的。 这就像是在相反的方向? 从RenderDoc我能够检索生成的实际立方体贴图: 我认为这表明这个问题只在less数人脸上出现,或者至less不是全部。 我使用的代码分别通过所有的六个面(这样我就不必从球体内部产生噪声,只是表面)。 代码如下所示: … glm::vec3 origin = glm::vec3(100,100,100); // really whatever, just some arbitrary point int radius = 100; // the "size" of my textures glm::vec3 dimensions = glm::vec3(radius,radius,radius); ImageObject img1; ImageObject img2; ImageObject img3; ImageObject img4; ImageObject img5; ImageObject img6; for(int y = […]

有没有什么方法可以用Perlin / Simplex噪音产生河stream?

我意识到许多程序生成河stream的方法,但是为了工作,它们需要预先提供一个完整的高度图。 例如,他们可能需要在地图上find一个高位,并find一条通向海洋的path。 但是,当按需/即时程序生成(在移动时围绕玩家生成地图)时,这些要求是不可行的。 例如, “我的世界”没有“真实的河stream” 这条河实际上并不具有起点和终点,实际上只是划分了两个生物群落,这意味着它利用生物群系的点与边缘之间的距离来确定水应该有多深,有一些变化当然。 这个mod似乎解决了这个问题,但是怎么样? 可能它利用了这样一个事实,即所有的块都被生成,因此并不是每个位置都是完全按需的。 所以,问题是:我怎样才能按照程序按需生成河stream呢? 更精确的是,我想要一个函数f(x,y)来告诉我在(x,y)是否存在一条河stream(及其stream向)。 对我来说这似乎很难解决,但也许人们有一些解决scheme。

放大程序生成的二维地形? (LOD)

我的问题是有什么方法可以使用Perlin Noise(或Simplex)在程序生成的地图上“放大”。 如果我有例如这个生成 我想“放大”到我绘制的那个红色的小方块,我怎么能实现这个(丑陋的)例子的东西: 保持真实的上面的地形? 我听说过3D方法,但找不到2D地图的意思。 任何意见或帮助将不胜感激。

一个单一的噪音补丁总结为零?

仅仅为了感兴趣,当在任何给定维度上对单工噪声进行采样时,所有采样的总和将趋向零?

如何在较低分辨率采样噪声值之间执行插值?

我正在做一些类似于Markus Persson博客文章中描述的方法的地形生成实验,我使用3D单纯形噪声作为“密度”值。 像他一样,抽样块中的每一个位置都只是一个性能的消耗,所以我以较低的分辨率进行采样。 如果我只是使用较低分辨率的噪声值作为密度进行采样,但是这显然会导致非常“粗糙”的地形,如下所示: 用于生成构成上述地形的噪声值和体素的相关代码如下所示: // Initialize the width, height and depth of the noise values map, and initialize // the noise value map itself. int noiseValuesMapWidth = (this.ChunkWidth / this.HorizontalNoiseResolutionDivisor) + 2; int noiseValuesMapHeight = (this.ChunkHeight / this.VerticalNoiseResolutionDivisor) + 2; int noiseValuesMapDepth = (this.ChunkDepth / this.HorizontalNoiseResolutionDivisor) + 2; float[,,] noiseValuesMap = new float[noiseValuesMapWidth, noiseValuesMapHeight, […]