目标

在顶部架子中 TerrainFX(地形效果) 分页,有一个 Terrain:Dunes(沙丘地形) 范例:
在这里插入图片描述
所用的节点很少,但是达成的效果却很不错,因此我想对此进行深入的学习。

本篇的目标是:

  • 首先分析大致的思路
  • 然后从零开始连一遍节点并调一遍参数,来达成类似的效果,这是以防漏过什么关键的细节。

分析大致结构

在这里插入图片描述

  1. 开局一个平地。
  2. 利用HeightField Pattern节点,调出一个长条的基本形状,然后让其扭曲。这样重复三次。
  3. 由于高处的沙子更容易受到风的作用而被吹走,因此选择这些区域并让其模糊。
  4. 运算侵蚀作用,以制造更真实的感觉。

从零重连

0. 开局一个平地。

创建一个HeightField节点:
在这里插入图片描述

1. 扭曲出沙丘图案
1.1 大_沙丘

创建HeightField Pattern节点。
初始状态下,他应该是重复排列“星星”的图案:
在这里插入图片描述
Pattern参数改为Ramp(坡度)。
这意为在一个方向上将高度用一个曲线函数来映射。
在这里插入图片描述
当前图案的频率太高,一会儿扭曲会导致形状太密集,因此将Size调大一点:
在这里插入图片描述
由于图案是重复排列的,所以曲线函数的首与尾如果不一致,就会有突变。
因此,需要调整为收尾值一致(比如都是0)。至于中间的形状,可以参考范例,这里我随便调了一下:
在这里插入图片描述
启用扭曲:
在这里插入图片描述
当前的扭曲效果显然是不符合预期的,需要调节一下参数:

首先,扭曲的影响太小了,期望应该会更强烈和更

  • Amplitude将影响幅度,将其值调高
  • 而当幅度更高时,会使图案的细节度过于密集,因此需要Element Size的值调高。

在这里插入图片描述
其次,当前的噪声过于吵杂

  • 可将Roughness调低点。但是也不能太低,为0时也不自然

在这里插入图片描述
我感到此时的扭曲仍旧不太够,因为仍旧能看出来是由两条线扭曲而成的,因此需要将Amplitude调节得更高使其看不出扭曲前的图案:
在这里插入图片描述
当前的形状是符合预期的,但是高度上不太自然,因此可以将Height调低,使其整体降低。
在这里插入图片描述
这便完成了最大规模的沙丘

1.2 中_沙丘

复制上面的节点,准备制造规模稍小点的沙丘。

但是需要将Combine With(结合方式)改为Add(附加)
在这里插入图片描述
但是当前只是重复的叠加。要想让操作有意义,需要将形状与当前的错开。
由于这是一个更小规模的沙丘,这里将Size调节更小:
在这里插入图片描述
Height也调节得更低:
在这里插入图片描述
如此便是一个中等规模的沙丘

1.3 小_沙丘

类似,再复制上一个节点。
也将HeightSize调节得更小:
在这里插入图片描述
另外,也可以将扭曲的Element Size改变更小,使得形状更不重叠,让效果富有层次:
在这里插入图片描述

2. 磨平高出的沙子

接下来是一个附加的效果,这个效果基于的现象是:
更高的沙子更容易被风吹走。

2.1 选择更高的沙子

创建HeightField Mask By Feature节点,然后去掉Mask By Slope(斜坡)而是勾选Mask By Height(高度)
在这里插入图片描述
为了调节方便,点击Compute Range,此举将计算地形高度的最大值/最小值,并使用其作为对高度的映射。
在这里插入图片描述
默认的曲线在最高端时为0,不符合期望,因此将其调节为1
在这里插入图片描述
当然,我们需要选择的是较高的部分,因此需要将Min Height调高点,调成自己认为应该被风吹模糊的界限:
在这里插入图片描述

2.2 模糊更高的沙子

创建HeightField Blur节点,需要将mask的引脚也连入,此将指定mask为模糊的部分。
在这里插入图片描述

2.3 清理mask

最后可以加一个HeightField Layer Clear,以清理mask
在这里插入图片描述

3. 侵蚀作用

可以增加侵蚀作用使得地形更自然:
在这里插入图片描述
不过范例中的侵蚀节点的参数也有调节。
由于侵蚀节点的参数庞大,调节其参数不在本篇的讨论范围内。

总结

  • 制作出沙丘形状的方式很有意思:使用HeightField PatternRamp图案做一个基础的坡度,然后用扭曲来制作出沙丘的效果
  • 可以重复一个操作多次,来增加层次感
  • 基于现实的原理进行一些调节
  • 无论什么地形,最后加点侵蚀效果总能让其更自然。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐