深入学习Houdini的范例“Terrain:Dunes”(沙丘地形)
沙丘地形
目标
在顶部架子中 TerrainFX(地形效果) 分页,有一个 Terrain:Dunes(沙丘地形) 范例:
所用的节点很少,但是达成的效果却很不错,因此我想对此进行深入的学习。
本篇的目标是:
- 首先分析大致的思路
- 然后从零开始连一遍节点并调一遍参数,来达成类似的效果,这是以防漏过什么关键的细节。
分析大致结构
- 开局一个平地。
- 利用
HeightField Pattern
节点,调出一个长条的基本形状,然后让其扭曲。这样重复三次。 - 由于高处的沙子更容易受到风的作用而被吹走,因此选择这些区域并让其模糊。
- 运算侵蚀作用,以制造更真实的感觉。
从零重连
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 小_沙丘
类似,再复制上一个节点。
也将Height
和Size
调节得更小:
另外,也可以将扭曲的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 Pattern
的Ramp
图案做一个基础的坡度,然后用扭曲来制作出沙丘的效果 - 可以重复一个操作多次,来增加层次感
- 基于现实的原理进行一些调节
- 无论什么地形,最后加点侵蚀效果总能让其更自然。
更多推荐
所有评论(0)