当前位置: 首页 > news >正文

UE5 学习系列(八)材质基础认知

这篇博客主要介绍了 UE 中对材料的基础概念,包括自定义和如何修改材质并应用到模型上。

  • B 站视频:s05-材质基础认知

1. 材质的作用

材质球简单来说就是 贴图和模型之间的媒介,贴图需要通过着色器中原有的一些光照算法将贴图中所包含的信息转换成可以显示的视觉效果并渲染,这种方式需要一个媒介去执行,在游戏引擎中通常是材质球。实际上即便是 SolidWorks 这种建模软件也是通过材质球进行渲染的。

同样,模型的一些表面纹理也需要先通过贴图吸附到材质球表面,然后再进行渲染。

1.1 打开新手资源地图

因为原视频中需要用到新手资源包中的地图,但在这之前咱们都没有打开过,这里先介绍下如何打开新手资源包的中的教程地图以便和视频的操作环境保持一致。

【Note】:如果你在自己的场景中已经完成编辑了,一定要先保存否则编辑会丢失!

在 UE Editor 中一定要记住:Ctrl + S 不能完整保存,需要在资源浏览器中点击保存全部 Save All 才能生效;

在这里插入图片描述

在确保自己的编辑内容都保存成功后按照下面的步骤打开新手资源地图:

  1. 在资源浏览器 Content Drawer 窗口进入到 All->Content->StarterContent->Maps 目录;
  2. 双击 StarterMap 打开新手地图;

在这里插入图片描述

1.2 预览新手地图中提供的材质球

双击打开后可以看到下面的画面:

在这里插入图片描述

在此处可以大概浏览一下能看见很多材质球效果:

在这里插入图片描述


2. 材质编辑器

【Note】:为了养成好的习惯,你可以先创建一个文件夹用来存放所有自己定义的素材,我这里同视频作者一样直接使用之前博客 《UE5 学习系列(四)导入模型资产》 中导入模型时创建的文件夹,路径为 Content->MatMesh

在资源浏览器的空白处点击右键找到材质 Material 创建一个新的材质:

在这里插入图片描述

创建成功后双击点开这个材质球进入材质编辑器,在空白处按住 鼠标右键 就可以拖动界面,鼠标滚轮 可以缩放编辑器中的视图大小,窗口左侧的小球可以通过按住 鼠标左键 进行旋转预览:

在这里插入图片描述


3. 调节基础的PBR材质球

PBR英文全拼 Physically-based rendering 即基于物理的渲染,当前介绍的材质球编辑就是基于 PBR 进行渲染的。

3.1 创建 1D 常量

在操作面板空白处,按住键盘上的数字 1 + 鼠标左键 会创建一个 1D 常量:

在这里插入图片描述

3.2 创建 2D 向量

在操作面板空白处,按住键盘上的数字 2 + 鼠标左键 会创建一个 2D 向量:

在这里插入图片描述

3.3 创建 3D 向量

在操作面板空白处,按住键盘上的数字 3 + 鼠标左键 会创建一个 3D 向量:

在这里插入图片描述

3.4 修改颜色

修改颜色有两种方式,按照下面步骤操作:

  1. 将长条的基础颜色 Base Color 和刚才创建的 3D 向量的第一个点链接;
  2. 直接修改 3D 向量中 XYZ 的值;
  3. 或者先选中3D向量,然后在左侧找到 Constant 并展开,再点击 X 上面的空白框就可以唤出调色盘;

在这里插入图片描述

在调色盘上有两个滑块,左侧的表示颜色深浅,右侧表示颜色明暗。完成调色后一定要点击下面的完成 OK,否则外面材质球的颜色是不会变得。

【Note】:如果你点了 OK 并退出后外面的材质球颜色没有发生变化,那么重新进入一次再点 OK 即可。

在这里插入图片描述

3.5 调整粗糙度

颜色 RBG 需要三个值进行表示,但表面粗糙度和金属光滑度只需一个物理量表示就够。

对于粗糙度而言,值为 0 表示光滑的镜面反射;值为 1 表示完全粗糙与漫反射

按照以下步骤修改表面粗糙度:

  1. 将长条中的粗糙度 Roughness 和 1D 常量连接;
  2. 直接修改这个 1D 常量中的值;
  3. 或者选中1D常量后在左侧找到材质表达式常量 Material Express Constant ,然后将鼠标落在绿框的数字上左右拖动预览粗糙度变化;

【Note】:粗糙度在调整的时候可以超越 [0,1] 区间但超过的部分不生效而已;

在这里插入图片描述

显示效果如下,可发现调整完粗糙度后球体的表面反光基本没了:

在这里插入图片描述

3.6 调整金属光泽

金属光泽值越接近 1 表示100%金属;0 表示 100% 非金属在UE中金属光泽直接等价于是否为金属以及金属占比

因为我们已经将 1D 常量用了,所以这里还需要新建一个 1D 常量:在空白处按住键盘 1 + 鼠标左键,然后按照以下操作进行:

  1. 将长条中的金属光泽 Metallic 和 1D 常量连接;
  2. 直接修改这个 1D 常量中的值;
  3. 或者选中1D常量后在左侧找到材质表达式常量 Material Express Constant ,然后将鼠标落在黄框的数字上左右拖动预览金属光泽变化;

【Note 1】:金属光泽在调整的时候可以超越 [0,1] 区间但超过的部分不生效而已;
【Note 2】:如果你已经确定了这个材质球要给非金属使用的,那么可以干脆不链接;

在这里插入图片描述

在这里你可同时将表面粗糙度修改成 0,并将金属光泽修改成 1 就可以得到一个镜面的效果:

在这里插入图片描述


4. 贴图与基本调整

这里需要用到之前博客 《UE5 学习系列(五)导入贴图资产》中 2. 导入贴图 导进来的四张贴图,我放置的位置是 All->Content->Texture

4.1 导图贴图到材质编辑器

在这里插入图片描述

选中这四张贴图直接拖拽进材质编辑器中:

【Note】全选技巧:首先点击第一个,然后按住 Shift 后再去点击最后一个;

在这里插入图片描述

拖拽进来后的贴图样子:

在这里插入图片描述

为了和视频操作保持一致,将上面几个新建出来的向量删除。

4.2 创建注释

【Note】这一步不是必要操作,只不过视频一开始没有演示,到了这个环节才做了一下;

在空白处鼠标不用点击,键盘敲击 C 即可新建注释:

在这里插入图片描述

4.3 底色贴图

按照下面步骤查看一个贴图是否为底色贴图:

  1. 随便选中一个贴图框;
  2. 在右侧找到材质贴图信息 Material Expresson Texture Base 标签并定位到贴图 Texture
  3. 将缩放图旁边的菜单展开可以看到这个贴图文件的完整文件名;

【Note】:一个规范的贴图素材文件通常会在文件名中使用 diffBaseColorAlbedo 标识底色贴图,例如这里的文件名中就包含了 diff 字段;

在这里插入图片描述

在确定好底色贴图后将长条中的基础颜色 Base Color 和这个和贴图连接:

在这里插入图片描述

4.4 置换贴图

这里不是将贴图换掉,而是有一种贴图形式叫做 置换贴图,通常是文件名中包含 disp 的贴图文件,其工作原理是存储表面纹理的凹凸信息用以增加模型细节,例如这里的置换贴图是下图中红框标记的那张,这里暂时先不用,找到后直接删除即可:

在这里插入图片描述

4.5 粗糙度贴图

和上面一样找到文件名中包含 rough 的文件,即粗糙度贴图。然后将这个贴图的 RGB 三个通道的其中一个 和长条的粗糙度 Roughness 相连:

【Note】:这里之所以只连一个通道是因为描述粗糙度只用了一个数字,所以连接R、G、B都可以,如果你直接连到 RGB 通道上也是可以的,但通常不这么做。

在这里插入图片描述

4.6 删除连线

在贴图编辑器中选中线后按 Del 是无法删除连线的,需要按住 Alt 然后再去选线:

在这里插入图片描述

4.7 更改连线的末端

修改线头两端的连线可以通过删除重连,但最方便的方法是按住 Ctrl 然后拖动线头的其中一个端点,即可只修改一端的连接结果:

在这里插入图片描述

4.8 法线贴图

法线贴图通常是文件名中包含 nom 的贴图,法线贴图可以在环境中有光照的时候对显示效果进行扭曲,当光照射到表面时可以呈现出一种凹凸的效果,直接将最后一张法线贴图连接到长条的法线 Normal 上:

【Note】:法线贴图需要连接 RGB 三通道,不能只连接一个

在这里插入图片描述


5. 使用贴图

返回到 UE Editor 主窗口,进入你在第一步创建材质球的路径中可以看到生成了一个新的材质球:

首先拖拽模型到环境中:

在这里插入图片描述

让后按照下面的步骤将材质球赋予模型:

  1. 选中环境中的模型;
  2. 在右侧的细节 Detail 栏中找到材质 Materials
  3. 拖拽材质球到元素1 Element 1 上;

在这里插入图片描述

等待渲染完成后就可以看见模型的材质发生了变化:

在这里插入图片描述


6. 倍化贴图效果

通常情况下贴图倍化只对法线贴图、粗糙度贴图这类有效,因为RGB底色贴图如果直接乘上某个数会把颜色变白,这里就直接将法线贴图的效果乘以3倍。

6.1 创建乘法工具

在空白处按下 M + 鼠标左键

在这里插入图片描述

6.2 倍化粗糙度贴图

为了实现乘法还需要在创建一个 1D 常量,空白处 1 + 鼠标左键,然后按照下面步骤操作:

  1. 修改1D常量到一个想要的值;
  2. 连接1D常量和乘法工具的一端;
  3. 连接粗糙度贴图和乘法工具的另一端;
  4. 连接乘法工具输出和长条中的粗糙度 Roughness

在这里插入图片描述

6.3 参数暴露

如果每次都进来修改这个1D的倍数就有些麻烦,而且有时候游戏中还需要动态修改表面粗糙度,这就需要将这个数作为参数暴漏出去:右键点击1D常量,在弹出的菜单中选择转化为参数 Convert to Parameter,并为其进行命名,我这里命名为 Rough_int

在这里插入图片描述

Ctrl + S 保存后回到 UE Editor 找到材质球后右键创建材质实例 Create Material Instance

在这里插入图片描述

然后你会发现多出来了一个材质球:

在这里插入图片描述

双击打开后在右侧多出来一个参数组 Parameter Groups,勾选上后就可以编辑暴露出来的参数:

在这里插入图片描述

http://www.xdnf.cn/news/976321.html

相关文章:

  • WPP 媒体推出基于人工智能的工具突破基于身份识别的定向模式
  • Idea 2025 commit 关闭侧边栏 开启探框
  • web程序设计期末复习-填空题
  • SLAM3R:基于单目视频的实时密集3D场景重建
  • uniapp 页面栈一定深度后,回首页导航到新页面的解决方案
  • 量子加速器切入 AI 底层架构!能源焦虑时代,ORCA 正在改写数据中心的计算逻辑
  • 开疆智能ModbusTCP转Canopen网关连接汇川AM403PLC与编码器配置案例
  • Arduino入门教程:1、Arduino硬件介绍
  • 【Zephyr 系列 18】分布式传感网络系统设计:从 BLE Mesh 到边缘网关的数据闭环
  • onnx 模型转 rknn 部署 rk3588 开发板
  • Python `glob` 库详解:优雅高效地批量匹配文件路径
  • 在 Java 中实现一个标准 Service 接口,并通过配置动态选择具体实现类供 Controller 调用
  • 用Woot助力Prime Day
  • 深入解析Docker网桥模式:从docker0到容器网络的完整通信链路
  • TBrun测试工具使用教程(Windows)
  • R语言缓释制剂QBD解决方案之一
  • 开源项目实战学习之YOLO11:12.9 ultralytics-models-sam-amg.py
  • 如何选择合适的IP轮换周期
  • 建筑末端配电回路安全用电解决方案:筑牢电气防火最后一道防线
  • 句法分析 自然语言处理
  • thinkphp ThinkPHP3.2.3完全开发手册
  • React前端框架学习
  • 腾讯云TVP走进泸州老窖,解码AI数智未来
  • 机器学习与深度学习19-线性代数02
  • 青少年编程与数学 01-011 系统软件简介 14 Foxpro数据库
  • 【从零开始学习JVM | 第六篇】运行时数据区
  • 使用Apache POI操作Word文档:从入门到实战
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 2】【如何配置和启动蓝牙profile服务】
  • 【多线程初阶】详解线程池(下)
  • PROFINET主站(M580)通过网关访问CANopen从站(NJ系列)的技术解析