[Catlike Coding][Hex Map 4] Irregulatity

该教程介绍了如何通过引入可复制的柏林噪声来为六边形地图添加不规则性,使其看起来更自然。噪声纹理用于在编辑时保持一致性,同时产生平滑的扭曲效果。通过在不同颜色通道中存储噪声值,可以在一个纹理中实现多种噪声模式,用于3D失真。
摘要由CSDN通过智能技术生成

不规则

对噪波纹理进行采样。

扰动顶点。

保持细胞扁平。

细分单元边。

本教程是关于 hexagon maps系列的第四部分。到目前为止,我们的网格是一个严格的蜂窝。在本期中,我们将引入不规则性,使地图看起来更自然。

 不再规则的六边形

1. 噪声

为了增加不规则性,我们需要随机化。但不是真正的随机性。我们希望在编辑地图时保持一致。否则,每次我们做出改变时,事情都会发生变化。所以我们需要一种可复制的伪随机噪声。

柏林噪声是一个很好的选择。它在任何点上都是可复制的。当多个频率组合在一起时,它也会产生噪声,这些噪声在长距离内变化很大,但在小距离内保持相当相似。这会产生相对平滑的扭曲。靠得很近的点往往粘在一起,而不是在相反的方向上扭曲。

我们可以通过编程生成柏林噪声。“噪波”教程介绍了如何执行此操作。但我们也可以从预先生成的噪声纹理中进行采样。使用纹理的优点是,它比计算多频率柏林噪声更容易、速度更快。缺点是纹理占用更多内存,只覆盖一小部分噪波。因此,它需要是一个平铺纹理,并且必须相当大才能使平铺不那么明显。

1.1 噪声贴图 

我们将使用纹理,因此您现在不必阅读“噪波”教程。这意味着我们需要这样的纹理。这里有一个。

 平铺分形柏林噪波纹理。

上面的纹理包含平铺多频柏林噪波。这是一个灰度图像,平均值为0.5,极值接近0和1。

但是等等,这只是每个点的一个值。如果我们想要3D失真,我们至少需要三个伪随机样本!所以我们需要两个额外的纹理,每个纹理中有不同的噪声。

我们可以这样做,或者我们可以在每个颜色通道中存储不同的噪波值。这使我们可以在一个纹理中存储多达四种不同的噪波图案。这里就是这样一个纹理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值