东部三维网 UG教程 查看内容

充分利用 UE4 中的噪声

2019-10-11| 发布者: www.d83w.com | 查看: 795|原作者: 东部三维网

摘要:UE4已经引入了基于材料的程序噪声一段时间,但是大多数用户由于其高性能成本而必须限制其使用。因此,许多?

UE4已经引入了基于材料的程序噪声一段时间,但是大多数用户由于其高性能成本而必须限制其使用。因此,许多用户使用在其他程序中编写平铺噪声纹理然后将它们放入UE4的方法。许多人想在UE4中执行此步骤,但找不到方便的方法。

我们已经在虚幻引擎4.13

满足了这些需求。这些改进可分为几类:

1)瓷砖噪声选项

2)新添加的Voronoi噪声

3)性能优化和其他改进

我首先要感谢渲染工程师和访问教授Marc Olano,他和我合作解决了瓷砖和Voronoi选项。他还完成了所有性能改进和代码组织。许多原始选项已经过优化,工具提示现在描述了成本。请注意,尽管这些优化非常有用,但大多数程序噪声模式仍然具有较高的渲染成本,因此我们来谈谈让我们首先烘焙静态纹理的tile噪声选项。在上一节中,我们将讨论不同噪声函数的相对开销。

瓷砖噪音

在4.13中,如果将“Noise”节点放入材质中,您会注意到底部有两个新选项,称为“Tiling”和“Repeat Size”。

如果选择了“平铺”,则噪声将以指定的“重复大小”(即域)重复。如果你想烘烤一些瓦片噪音,它很容易设置。您需要确保重复大小与您要烘焙的样本大小相匹配。最简单的方法是使用位置输入的默认0-1纹理坐标,然后将“缩放和重复大小”设置为与上面的示例地图相同的值。

我们使用默认的0-1 UV作为位置的原因是我们可以使用由渲染工程师Daniel Wright提供的新功能“绘制材质渲染目标”。顺便说一句,我们在本文中介绍的只是相对于此功能可以执行的外观效果。完成以下步骤后,您可以将其重复用于任何数量的相关操作,因此请耐心等待。

首先,我们需要在内容浏览器中生成一个新的Actor蓝图。单击“添加”,然后单击“蓝图类”。弹出新对话框时,单击Actor并为资产命名。

接下来,我们需要在内容浏览器中生成渲染目标。单击“添加”,然后单击“材质和纹理”,再单击“渲染目标”。然后双击新的渲染目标并将分辨率设置为您需要准备的大小。我们差不多完成了!

现在打开新添加的蓝图并导航到事件图。添加自定义事件并将其命名为“Bake”。指定要烘焙的材质和您创建的渲染目标。

然后导航到“构建脚本”并调用自定义事件Bake:

编译蓝图后,您的材料将被写入渲染目标。现在,您只需右键单击渲染目标并选择“创建静态纹理”以及您将创建的纹理。

Voronoi噪音

Voronoi噪音非常适合抛掷云,腐蚀模式和自然界中的许多其他模式。它有时被称为Wally噪声或蜂窝噪声,它指的是一件事。以下是您可以直接使用虚幻引擎实现的一些基本可能性:

从左到右:

1)一个八度,功率=2

2)一个八度音,反向(1-x)

3)三个八度,反转

这是在UE4中纯粹用Voronoi噪声产生的破裂沙子:

以下是构建步骤的详细说明:

从左到右:

1)1个八度音阶的原始Voronoi噪声已被颠倒

2)通过使用添加到输入位置的少量“梯度”噪声来应用失真的Voronoi噪声

3)使用“高通滤波器”材料对Voronoi噪声进行采样,以均衡边缘细节。

4)使用“基于高度图创建法线贴图”功能生成法线贴图。

通过使用来自上面的步骤3的纹理作为视差掩模纹理材料中的高度图来生成最终的砂图像。

使用新材料功能“高通纹理”执行“高通滤波器”。通过添加另一个改变偏移宽度的梯度噪声来实现边缘变化。此版本的高通滤波功能需要纹理,因此此时保存纹理以供使用:

还有一个版本的“Qualcomm Filtering”使用纹理以外的其他功能,适合喜欢这种方法的人。

要烘焙法线,只需将上面步骤3中的结果烘焙到渲染目标,然后使用“基于高度贴图创建法线贴图”功能将材质渲染到渲染目标:

请注意,这种腐蚀模式纹理变体可以通过少量变化获得,例如减少高通滤波器偏移和增加高通滤波器强度:

这是一个风格的抛球羽毛:

通过将两个简单的Voronoi纹理采样为平移纹理来获得该效果。系统将两个纹理相乘,然后取平方根以保持抛掷形状的完整性。然后将其应用于铺砌的圆柱网格。请注意,必须先将最终高度乘以全局空间法线,然后才能连接到全局位置偏移量。

以下是基于Voronoi的大理石纹理示例:

以下是使用Voronoi噪声创建大理石纹理的方法:

从左到右:

1)标准Voronoi噪声,1个八度音阶

2)Voronoi噪声,将“梯度”噪声添加到输入位置,设置为0.05

3)将梯度噪声乘以0.3并将其添加到Voronoi输入位置

4)使用第三步的结果作为来自引擎/内容的随机纹理的纹理坐标:

的Texture2D '/引擎/Engine_MI_Shaders/T_Base_Tile_Specular.T_Base_Tile_Specular'

这是一种称为梯度映射的技术。使用的确切颜色范围通过首先添加和相乘然后将结果插入纹理来控制。您可以绘制自定义纹理以查找所需的颜色,或尝试任何具有要提取的颜色的图像。

此示例仅将标量失真添加到输入位置。您可能已在上图中注意到此方法产生斜条纹图案。这非常适合大理石纹理,但对于其他效果,您可能需要对X和Y扭曲使用不同的噪声模式,或使用法线贴图进行偏移。

Voronoi噪声成本描述

Voronoi噪音很昂贵,有四种不同的质量等级。不同之处在于搜索的单位数。通常,质量等级数越小,网格失真越小。请注意,放置噪声节点时,它默认为6个八度音程,但您只能看到八度指令数:

1级质量搜索8个单位,每个八度音程大约160个指令

2级质量搜索16个单位,每个八度音程大约320个指令

3级质量搜索27个单位,每个八度音程大约540个指令

4级质量搜索32个单位,每个八度音程约640个指令

相反,典型的材料有大约100条指令。使用4级Voronoi噪声的6个八度音程材料将具有大约3800个指令并且渲染成本大约高30倍。 1级质量Voronoi噪音1

八度音程只需要160条指令,这对于基本材料来说是合理的。

从左到右:

1)1级质量

2)2级质量

3)3级质量

4)4级质量

请注意,由于使用了两个带有密集点阵的2x2x2偏移网格,因此2级质量比其他级别稍暗。只需乘以2就可以解决这个问题。

性能特征

为了演示使用噪声节点的真实成本,我使用全屏四核来测量每个功能使用1-6个八度音阶的性能成本。我还添加了矩形纹理采样的比较。对于矩形纹理采样,八度音程只是添加在一起的其他样本。

不出所料,大多数噪声选项的渲染速度明显慢于简单的纹理查找。 “快速渐变 - 3D纹理”显然是最快的纹理特征,因为它已经被烘焙到体积纹理上,而其他“基于纹理”的选项使用2D噪声纹理来执行随机性操作,这需要更多的数学运算。以3D模式进行采样。因此,如果你需要使用程序化噪声,你还需要保持场景的快速渲染,那么“快速渐变”是目前最好的选择,但请记住,如果你在大面积上使用它,或者平铺值如果你增加太多,你会看到一个重复的模式。

高质量的Voronoi噪音是最昂贵的,因此如果您需要在性能受限的环境中使用它们,请务必将它们烘焙到纹理中。

我希望这些信息对您有用,并允许您在自己的项目中有效利用噪音。



友情链接:

版权所有© 东部三维网 | 备案: 皖ICP备11016851号-1 | www.d83w.com . All Rights Reserved | 网站地图