noise介绍
-
关于Perilin noise我已总结过实时渲染 perilin noise - 爱莉希雅 - 博客园 (cnblogs.com),这里不再介绍
-
UE5 的noise节点
- noise的分类,一般会选择3d纹理(相较于普通的速度更快,但消耗更大),不过此时就是对纹理进行采样而不是进行数学计算。另外,如果物体在世界空间中移动,它的noise纹理也会发生变化
- 一般来说,Levels设为3
- noise的分类,一般会选择3d纹理(相较于普通的速度更快,但消耗更大),不过此时就是对纹理进行采样而不是进行数学计算。另外,如果物体在世界空间中移动,它的noise纹理也会发生变化
枯木积雪
思路
- 通常每棵树的纹理都是不同的,如果都为这些树制作单独的纹理,那成本就大了,在这里使用程序化噪声来生成不同的纹理
- 在这里我们使用noise来blend树木和雪
实现
-
初步实现
-
提高清晰度
可以看到目前实现的效果还有些模糊
-
lerp树木和雪
-
增大积雪范围改变树木纹理
层积岩
目标
-
艺术家工作时会发现,当他们创造多个岩石并将这些岩石合并成一个岩层时,合并的效果并不好,看起来很混乱。此节我们将使用程序化noise来解决这个问题
-
另外,岩层还有一些特征:每一层都有独特的特征,层与层相融合
纹理
- 下图是一张岩石的渐变纹理,用该纹理来模拟岩层
对纹理进行采样的效果如下
实现
投影到世界空间
- 上图是以uv坐标进行采样的,但我们需要的是岩石无论做任何运动都持有横向渐变的特性,因此我们需要以世界坐标进行采样且采样坐标的v轴是世界空间的z轴
调整缩放比例
-
从上面放大后的可以看出,当前的缩放比例太小了!我们需要将其放大
调整z坐标
- 使用Noise调整z坐标的值
- z坐标确实被修改了,但可以看到noise过于强烈
控制渐变
- 我们还需要的是随着世界坐标的变化,岩石的渐变效果随之发生改变
解决模型间的缝隙
动机
- 当艺术家们制作完模型后,这时将这些模型像积木一样进行拼凑,会发现模型和模型间存在缝隙。解决这一问题的方法便是不使用uv的材质,并将其变换到世界空间,以创建可以混合的材质
思路
- 我们需要做的是将材质投影到前顶侧三个面,创建两组不同比率重复性的纹理,且与世界坐标对齐,再使用程序化noise对他们进行blend
实现
-
在UE5中有一个"worldAligned"的节点,使用该类型的节点即可消除模型间的间隙
-
效果