# 使用凹凸贴图偏移(Bump Offset) 2019年4月28日 1:43 **凹凸贴图偏移**(Bump Offset)贴图通过以创新的方式修改 UV 坐标来帮助强化纹素与对象表面的错位,从而营造出表面细节超出实际情况的错觉。 在本操作方式示例中,我们不仅阐述如何找到凹凸贴图偏移材质表达式,还将说明如何在材质中利用“凹凸贴图偏移”(Bump Offset)节点。 **凹凸贴图偏移(****Bump Offset****)** **凹凸贴图偏移(****BumpOffset****)** 是虚幻引擎4术语,就是通常所谓的“视差贴图”。BumpOffset表达式可以使材质产生深度错觉,而不需要额外的几何体。BumpOffset材质使用灰阶_高度贴图_来提供深度信息。高度贴图中的值越亮,材质的“凸出”效果越明显;当摄像机在表面上移动时,这些区域将产生视差(移位)。高度贴图中较暗的区域将显得“距离较远”,其移位程度最小。 **查找****“****凹凸贴图偏移****”****(****Bump Offset****)材质表达式** 您可以通过在 **选用板(****Palette****)**搜索框中进行搜索来找到“凹凸贴图偏移”(Bump Offset)材质表达式。 ![BumpOffset_Finding_The_Node.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg) 或者,通过在材质图中 **右键单击** 并进行搜索来查找。 ![BumpOffset_Finding_The_Node_Right_Click.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg) 搜索“凹凸贴图偏移”(Bump Offset)材质表达式时,您将看到名为 **高级凹凸贴图偏移(****Bump Offset Advanced****)**的另一个材质表达式。“高级凹凸贴图偏移”(Bump Offset Advanced)是为了添加一些在常规凹凸贴图偏移表达式中不可用的额外控件而创建的材质函数。尽管这两个节点的输入不相同,但其工作方式相同,都是通过处理其所在对象的 UV,营造对象表面比实际情况有更多细节的错觉。 找到“凹凸贴图偏移”(Bump Offset)材质表达式之后,您就可以像引入任何其他材质表达式一样将其引入材质图,方法如下:使用 **鼠标左键** 将其选中,然后将其拖到材质图中。当您释放 **鼠标左键** 时,“凹凸贴图偏移”材质表达式就会放入材质图。 **使用****“****凹凸贴图偏移****”****(****Bump Offset****)材质表达式** 可以通过下列步骤将材质设置为使用“凹凸贴图偏移”(Bump Offset)材质表达式。 本教程将使用项目中包含 **起步内容** 时可以找到的内容。如果您的项目未包含起步内容,请参阅 [迁移](http://api.unrealengine.com/CHN/Engine/Content/Browser/UserGuide/Migrate/index.html) 内容页面,以了解有关如何在项目之间移动内容的信息。通过这种方法,您可以将起步内容添加到项目中,而不必建立新项目。 \1. 首先,使用鼠标在 **内容浏览器** 中 **右键单击**,然后从弹出菜单的 **创建基本资产(****Create Basic Asset****)**部分中选择 **材质(****Material****)**,并将材质命名为 **Bump_Offset_Example**。 命名后,在 **内容浏览器** 中 **双击** 该材质以将其打开。 \2. 因为“凹凸贴图偏移”材质表达式使用 UV 坐标来工作,所以我们需要一个将纹理用于“底色”(Base Color)、“粗糙度”(Roughness)、“环境光遮蔽”(Ambient Occlusion)以及“法线”(Normal)输入的材质。 在本示例中,我们将使用 Textures 文件夹中的下列纹理(如果项目包含起步内容)。 · **T_Brick_Clay_New_D** · **T_Brick_Clay_New_M** · **T_Brick_Clay_New_N** 找到纹理之后,请打开材质,然后将纹理引入材质图,方法如下:在 **内容浏览器** 中使用 **鼠标左键** 选中纹理,然后将该纹理拖到材质图中。当鼠标位于材质图上方时,释放 **鼠标左键**即可将纹理放入图中。添加第一个纹理之后,请对另外两个纹理重复以上过程。完成后,结果如下图所示。 ![BumpOffset_Adding_Textures.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg) \3. 纹理现已放入材质图,现在您可以开始将纹理连接到正确的输入。 首先将 **T_Brick_Clay_New_D** 连接到 **底色(****Base Color****)**输入。 接着,将 **T_Brick_Clay_New_N** 连接到 **法线(****Normal****)**输入。 然后,将 **T_Brick_Clay_New_M** 纹理的 **红色** 通道连接到 **粗糙度(****Roughness****)**输入。 最后,将 **T_Brick_Clay_New_M** 的 **绿色** 通道连接到 **环境光遮蔽(****Ambient Occlusion****)**输入。 完成后,结果如下图所示。 ![BumpOffset_Making_Connections.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg) \4. 所有纹理现已连接完毕,现在可将 **凹凸贴图偏移(****Bump Offset****)**材质表达式添加到材质图中。要查找“凹凸贴图偏移”(Bump Offset)材质表达式,请在 **选用板(****Palette****)**中使用 Bump Offset 作为搜索项进行搜索。找到该材质表达式后,您可以像添加任何其他材质表达式一样将其添加到材质图,方法如下:先使用 **鼠标左键** 将其选中,然后将其拖到材质图中。当鼠标指针位于材质图上方时,释放 **鼠标左键** 即可将表达式放入材质图。完成后,您应该看到类似下图的内容。 ![BumpOffset_Adding_BumpOffset_Node.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg) \5. 将“凹凸贴图偏移”(Bump Offset)材质表达式放入材质图后,它需要与三个纹理的 UV 输入连接才能正常工作。要将“凹凸贴图偏移”(Bump Offset)材质表达式与纹理连接,请使用 **鼠标左键** 并单击“凹凸贴图偏移”(Bump Offset)材质表达式右侧的输出圈。按住 **鼠标左键**,将鼠标拖到显示 **UV** 的 **纹理取样(****Texture Sample****)**输入上,并在看到绿色勾号时释放鼠标左键。对一个纹理完成此操作后,请确保对其余纹理也执行此操作。完成后,您应该会看到类似下图的内容。 ![BumpOffset_Connecting_BumpOffset.png](file:///C:/Users/WUMING~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg) 当您第一次将“凹凸贴图偏移”(Bump Offset)材质表达式连接到三个纹理中任何一个的 UV 输入时,您会注意到“凹凸贴图偏移”(Bump Offset)材质表达式底部会显示红色警告。“凹凸贴图偏移”(Bump Offset)材质表达式需要高度贴图才能正常工作,但是,当前未提供任何高度贴图。输入“高度”(Height)的输入后,此错误将消失。 \6. 当“凹凸贴图偏移”(Bump Offset)材质表达式与所有纹理的 UV 输入连接之后,需要对其进行设置才能使其正常工作。需要完成的第一项操作是为其提供“高度”(Height)输入。为此,找到我们用于底色(Base Color)输入的纹理 **T_Brick_Clay_New_D**,使用鼠标将其选中,然后按键盘上的 **CRTL + W** 进行复制。复制节点之后,将它移到“凹凸贴图偏移”(Bump Offset)材质表达式前面,并将该纹理的“阿尔法”(Alpha)输出连接到“凹凸贴图偏移”(Bump Offset)材质表达式的“高度”(Height)输入。完成后,您应该会看到类似下图的内容。 \7. 现在,需要设置“凹凸贴图偏移”(Bump Offset)材质表达式的设置,确保不会产生称为“UV 漂浮”的效果。要调整“凹凸贴图偏移”(Bump Offset)材质表达式的设置,请在材质图中使用 **鼠标左键** 单击将其选中,然后在 **细节(****Details****)**面板中,将 **高度比(****Height Ratio****)**设置为 **0.005**。完成后,您应该会看到类似下图的内容。 ![1559736320370](Bump Offset.assets/1559736320370.png) \8. 设置“高度比”(Height Ratio)之后,请务必按绿色的 **应用(****Apply****)**按钮来编译材质。材质通过编译后,即可在游戏中使用。 以下是创建的新材质投入使用的示例。 ![1559736310629](Bump Offset.assets/1559736310629.png) **结论** 使用“凹凸贴图偏移”(Bump Offset)材质表达式是一种非常有效的低成本方法,您可以采用这种方法为材质添加额外的深度信息,而无需添加额外的 3D 几何体。 但是,请记住,“凹凸贴图偏移”(Bump Offset)材质表达式仅提供额外深度信息的错觉,因此这种效果在以下情况下可能会失效/不起作用: 玩家/用户可能移动他们的摄像机,使其与应用了凹凸贴图偏移效果的表面平行。 来自 <>