UE4中有哪些置换技术?凹凸丨视差丨置换丨原理如何应用及优缺点对比...
Game艺视界原创 16268 0
实名

通过了实名认证的内容创造者

发布于 2022-4-21 20:47:25

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Game艺视界 于 2022-4-21 23:53 编辑



本期内容
我们将研究在 UE4 中置换纹理的各种方式。然后,我们将详细讨论每种方法的优缺点以及它们可用于视频游戏环境的最佳方法。一旦我们了解了使用的各种方法,我们将从高度图开始创建过程。

然后,我将向您介绍创建高度图的不同方法以及可用于创建它们的不同软件,其中包括:对高度图使用从高到低的多边形工作流程,在 Photoshop 中创建高度图,还可以使用 Knald、Crazy Bump 和 xNormal 等软件从图像生成高度图。创建高度图后,我将详细介绍如何在 UE4 中创建单独的置换材质,其中包括:凹凸偏移材料、视差遮挡材料和曲面细分。
详细介绍每个节点的使用以及我们可以设置实例材质的方式,以便我们可以在引擎中实时编辑置换材质。更好地了解 UE4 材质编辑器中可用的节点,并能够利用它们为您的视频游戏环境创建更逼真的材质。

首先,我们来看看可以通过位移法实现

0b463aa2591091e1d7c903e464f026a2.png


相比于传统的传统的法线贴图,我们可以使用的位移类型我们将讨论每种方法的优缺点创建置换的方法过程

然后,我将向你们讲述制作过程,创建高度贴图的各种方法,创建两种类型的视差效果,最后创造出一种曲面细分效果

01-所以在我们开始研究个人细节之前不同的置换效果和如何创建所有这些位移图,最好理解什么是位移图这对你有什么好处,如你所见我们有这个模型这原来是一个球体,并且具有位移效应它创建了这个拉出的几何体

如果我把值设为零你可以看到这个效果

如果我还原这就是位移效应,这种方法最好的地方是它允许你创建所有这些细节这是手工制作的造型不费吹灰之力你将要使用的是一个高聚合度资产(模型本身是高模),然后只是平铺细节并使用引擎可以完成所有的繁重工作,所以你可以创建漂亮的地板漂亮的墙面
那么位移是什么呢?是要创建的几何体或UV的偏移拉拔碰撞补偿效应,这是一个细分着色器在这里,它会拉出几何体

让我们看下bump
我们打开metael把他安装到平面上这里我们有凹凸抵消效应他很简单由物理引擎控制那个高度

如果我把他设置为0这就是仅使用法线贴图时的效果,没有位移效应增加数值得到我们想要的深度效果

凹凸偏移的问题就是它使用实现平稳过渡的步骤很少,在最高点和最低点之间。所以你只想在很小的范围内使用它,这次知识为了示例我们使用这个是为了让你能清楚地理解这种效应的局限性

视差遮挡
所以接下来我们将继续讨论其他视差遮挡看看与这套相比效果如何,然后转到视差效果正如你所看到的,它实现了完全相同的目标

但过渡要平稳得多

我们看看材料在实际中是如何工作的我们将其放在平面上,所以你已经看到了

你有更多的控制权(下面讲参数设置)

所以我们首先得到的是高度我们把他设置为0就是一张普通的贴图

我们有最大和最小步骤:最大为1这更像是凹凸偏移

逐渐增大的一个效果你数值越大越多小的细节
注意我们是如何做到这一点的这一切都是因为我们有足够的面数来处理这种过渡

曲面细分
最后我们来看看细分效果你可以再次看到,它取得了非常相似的结果,但不是使用这两种UV的偏移而不是偏移几何体那么细分意味着什么呢?它将几何体分割多次然后偏移位移会推出那些细分的几何体来产生这种效果


我们最好通过进入线框模式来了解这一点这可以通过alt 2实现,可以看到我们有一个非常密集的三角网格,这是细分的结果,使用alt+4回到照明结果

我们看下其他球你可以看到,这要平滑得多而且没有那么多几何体

我们将加载一个实体实例看看他是如何工作的

Tesselation:0 这是默认球网格

这种凹凸效应正在发生是由高度引起的如果我们把他设置为0

高度为15:因为没有足够的几何图形来处理它有点扭曲


所以为了解决这个问题,我们增加细分创造一个更平滑的过渡在高处和低处之间它将其创建为5,并且它会变得更高


这条小边之间的过渡非常平滑,关于几何的问题还是过渡

现在我们知道了三种不同的位移效应的类型,我们现在需要知道每种方法的利弊因此,我们可以充分了解如何利用它们在我们的环境中

有些比其他的效果更好,有些比其他性能更便宜。如前所述,最便宜的效果是凹凸偏移这是一个简单的单节点它只是创造了一个很好的小拉出效应,有很多细节这会导致边缘波浪效果的问题,如果用在地面鹅卵石都很小不必担心

现在这是曲面细分效果随着它的出现你会得到一个非常相似的结果,但是当要拉出几何体时这种细分影响了这里的轮廓,这是因为它拉出了几何体与UV中的偏移相比

如果我们再看看这面墙你有很好的补偿效果影响轮廓,也会影响到它旁边的建筑

回到视差可以看出,它创造了这种很好的偏移效果,但你在最后得到了这些硬边,它不会影响轮廓所以像岩石、墙类之类的东西如果你真的想影响物体的轮廓和形状,那么使用细分就更明智了


然而,如果我们有一些像这些孔这样的插入带物体的胶片,使用视差结论图是有意义的,因为你不需要这么多的几何体来实现这个小效果

另一件事是在工作时要考虑的位移是它对光线的反应我们拖拽一盏灯具有使用细分的置换效果因为它会影响几何体,几何体对灯光的反应与预期一致。当我移动灯光时网格上到处都是阴影

正如你所料,如果我们把它移到视差这里你注意到这不会产生阴影效果。这是因为我们在抵消UV不会影响几何图形,然而我们仍然会看到高光和低光这是可能实现某种形式的阴影中视差效应这并不是真正动态照明

我们把两种效果放在一起,现在你们可以看到,已经有了这个截止效应几何体通过网格的位置,那是因为几何图形位于高贴图上方我们需要做的是在材质中调整参数以获得所需的效果就像细分网格一样

这个参数意味着像素深度偏移,现在当我们勾选这个的时候我会让它做自己的事,当时用PDO时你会看到自阴影效应那是因为偏移量已低于高度图


通过修改高度值修正效果,也可以关闭POD完全取决于你

最后我们谈谈碰撞我们沿着这些盒子走,我们会注意到我们没有碰撞的问题都是向内偏移的而不是向外

然而,问题在于出现位移当你走在上面的时候,如果我们已经有了碰撞装置这次碰撞是不会受到细分材质的影响,你会看到他的脚现在被网格夹住了这对电子游戏来说不是一个好结果,所以要通过这个你必须退出碰撞或者调整碰撞以更好地匹配它

另一方面,视差有单独的效果,有了视差你就有了流动的问题。因为它所做的是将几何体推入所以最好避免在表面上使用视差你走在上面除非表面不需要这么深如果你像瓷砖地板一样使用或者类似你只是想稍微深入一点这是一个相当平坦的表面你会没事的,但当谈到抵消这些深岩石你会对流动产生问题

关于位移的最后一个问题是细分,如果我们看这里我还没有给立方体有很多几何图形。正因为如此细分效果还不能给出它有足够的几何图形来帮助处理这些被拉出的面

正在尝试基于高度贴图值进行偏移,而在这里当我们有一个非常密集的网格但你仍然会从中得到轻微的瑕疵几何图形拉起然而对于岩石这并不那么明显

如果我们回到这里我们注意到这个球体非常干净,因为它有很多几何图形

我们看另外一面墙壁你可以注意到在这里,你可以看到这些摇摆不定的人工制品试图创造一条直线,这是因为它在网格中是三角形的不是直线需要拉进去和拉出来的地方创造这种摇摆效应,避免这种情况的最好方法要么给更多几何体

关于初始几何体(模型面不多几何体)或者使用视差效果更好为了这个效果问题
现在我们要开始创建高分辨率地图,我们开始创建高度图之前最好了解我们的高度图是什么?因此我们将首先使用木墙然后我们来看看石头地板。先看看木板你可以看到这是一张简单的灰度图使用黑白信息创造了高度和深度以及中间的灰度来创建过渡

我已经做了一个偏移我们来看看会发生什么,我们得到了相反的效果

所以现在你可以看到,它和球体一起向外拉而不是向内推进球体

看下之前效果

现在让我们看一看石头墙正如你所看到的,这是一张简单的灰度图随着白色信息的出现还有黑色这是使用从高到低的多边形烘焙的

现在我们知道高度图是什么样子了以及如何使用它让我们开始创建它们,我们先在max中创建一个平面,然后我们在上面创建一个盒子半球然后分别导出高低(低模分好uv)模型去其他软件烘焙

这里我们用的是knald

在这里你可以看到已经有了高度图

我们也可以烘焙其他需要的贴图

选择好了我们点击烘焙

注意调整包裹距离

这样我们就烘焙好了,这就是我们从高到低的多边形烘焙

现在可以看到这是我们的高度图,白色表示它凸出来了黑色表示凹下去

我们还可以通过颜色图生成高度图我们在软件打开颜色图


当我们更新积分器,它也将生成这个高度贴图法线图


现在我们知道了什么是高度图以及如何创建,我们现在要开始学习如何创造凹凸偏移,首先我们要创建新材料material我们给他起名Bump,将基本的贴图直接链接到材质节点

接下来我们创建凹凸偏移节点,我们把他拖拽进来现在它有几个部分,但我们需要的只是高度拖进去

然后我们要做的就是把这些移到这里

我们想要深度信息带有凹凸偏移这可能有点太极端了,你得到了边缘锯齿的效果那么我们接下来要做什么呢?我们要加一个允许我们控制的参数这个高度在游戏引擎中实时,所以我们要创建一个乘法节点我要把它插到高度上然后a进入红色通道(显示的错误我们下面处理)

然后我们要做的是创建一个常数通过按下一个并左键单击我们将把它拖到B

暴露参数右键单击

命令为高度,给个默认值1就是原始高度图效果

如果我们把他改成2,注意这个变黑了,你就会知道它是黑色的它使整个纹理变浅了一点如果我们把它改成0.5他会变得更暗了。但正如我所说的默认值,我们希望将其设置为1

保存并关闭材质编辑器在我们母材质右键创建材质实例

赋予给我们场景中球,现在当我双击这个实例我们有很好的控制

让我们继续制作一种新材料,我们要寻找视差遮挡节点

你将在这里得到一个大节点所有的这些输入只有几个我们需要为了创造我们所需要的效果我要把这个视差放进

我们需要找到一个纹理对象插入到我们的视差节点,让将其更改为我们打高度图

接下来我们需要做的就是把参数暴露出来


我们添加一个开关起名字Pdo像素深度偏移

将其插入到像素深度偏移添加一个常数

保存看下效果

通过我们暴露的参数进行调节

曲面细分丨置换【UE5已取消】
像之前一样打开新建材质球,将贴图拖拽进来链接相应的节点

在开始之前我们首先要将材质变成细分材质我们需要进入这里的详细信息选项卡这是一个叫做镶嵌的部分,注意这里面有两个镶嵌一个是三角形细分一个是平面细分在本教程中我们使用平面细分稍后我们介绍三角形细分并讨论每种类型的优缺点

在本教程中我们将使用无裂缝位移还将关闭自适应细分

准备好材料后你会注意到我们主节点世界位移和镶嵌

我们要找一个顶点法线我要把这个拖进去这将控制方向是什么物体是基于顶点位移的法线信息我们将把它直接插入乘法运算中这样就可以了

连接到另一个乘法器这些都是通过按住m键并单击鼠标左键创建的,我们正在插入我们的高度图到这里来我们只想控制我们质地的高度。所以我们通过一个常量来保持恒定。然后点击左键把他拖拽入B默认值设置为16这应该是一个很好的数额暴露参数控制它名字改成Height然后将其插入曲面细分

正如你所看到的,它已经出现基于高度图的凹凸,正是我们要取代的基于几何体和法线我们需要能够细分模型以确保我们获得更平滑的过渡

我们要再加一个常数,我们要把这个链接上细分插槽默认值设置为10同样我们将其暴露参数在实例中将其命名为Tesselation

我们有了高度和细分接下来我们就可以控制它

下面对比下两种平滑效果
我们将向您展示平面细分是如何完成的,高度为0,如果我们这样测试这只会把我们分开不会真正影响任何形状,这只是分裂已经存在的几何体而且不影响任何网格。回到我们光照模式什么都没变因为它没有高度值

然而当我们把它改成PN三角形,没有给任何高度你可以看见网格在移动,原因是什么pn三角形基于样条线平滑网格就像涡轮增压器一样它可以分割网格,也可以平滑角度

如果你想创造微妙的细节和流畅的线条一些剪影它会使边缘光滑,保持粗糙始终如一的强硬立场这对你喜欢的角色来说很好

接下来我们要看的是裂纹自由位移所以我们要把它设回alt 4我们要把这个几何体推出去那么大约16点我们就可以了我们来看看裂缝,我们已经测试了这个网格但这些uv没有连接这是接缝在uv贴图中的位置

所以要解决这个问题可以应用无裂纹位移我们设置了无裂纹位移现在你可以看到它被填满了,它只是在边缘添加了一个封口效果


最后是自适应细分这一点不会太明显,因为它的密度很高但这基本上是它需要细分的三角形并努力确保三角形具有一致数量的纹理像素,一致数量的纹理像素对三角形确保三角形的分布更加一致

取消自适应效果,它实际上会移动几何体本身并确保其像素数量一致每个三角形意味着更均匀的外观细分消失了

我们已经看过了三种不同类型的位移可用,我们已经了解了如何在中创建高度贴图要么是photoshop 3ds max 或者类似zb的东西我们已经通过像knold或xnormal这样的烘焙软件生成
好!本期分享就到这里我们下期见

         

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表