阿赵UE学习笔记——9、材质和材质实例

2024-01-11 11:04

本文主要是介绍阿赵UE学习笔记——9、材质和材质实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿赵UE学习笔记目录

  大家好,我是阿赵。
  继续学习虚幻引擎,这次来了解一下UE里面关于材质的一些概念性的东西。

一、材质

  材质这个概念,在所有三维软件里面都会有,比如3Dsmax里面的材质球,或者Unity里面的Material。
  之前在做导入钢铁侠模型的例子的时候,就已经有使用过UE的材质编辑器了。导入了资源之后,内容浏览器里面也会出现“材质”类型的资源。
在这里插入图片描述

  如果我们要新建一个材质文件,可以在快速创建内容里面找到:
在这里插入图片描述

  这样就可以创建一个空白的材质球文件。
在这里插入图片描述

  那么,这个UE里面的材质文件,是否就相当于Unity里面的Material呢?
  双击这个材质文件,可以打开UE的材质编辑器:
在这里插入图片描述

  可以看到,在这个材质编辑器里面,左边是材质球效果的预览,左下角是一些设置参数。
  然后右边,是一个似乎很熟悉的身影,和我之前介绍过的,在Unity里面使用的ASE可视化编辑Shader工具,相似度超过了90%,连快捷键几乎都一模一样。由于我之前对于UE的了解不算多,所以也不知道是谁参考的谁。不过鉴于这是UE的自带功能,而ASE只是Unity的一个插件,所以我觉得ASE参考UE材质编辑的可能性会比较大吧。
  这个输出节点里面内容很多,关于那些内容是可以使用的,是和左下角的材质域选项有关。切换一下类型,会看到输出节点的可用接口会发生变化:
在这里插入图片描述
在这里插入图片描述

  如果熟悉之前我介绍过的ASE插件操作的朋友,按道理会比较容易上手这套UE的材质编辑器。基本上材质是一样的,可以直接从内容浏览器里面把贴图拖到材质编辑器里面。
在这里插入图片描述
在这里插入图片描述

  也可以鼠标右键点击空白的地方,然后选择创建自己需要的参数。不过UE的材质编辑器里面可以使用的东西比ASE多很多。这就证明了UE材质编辑器的功能会比ASE强大很多,但另一个问题时,UE材质编辑器里面想找一个能用的东西,需要对它非常熟悉,不然会找到吐血。
在这里插入图片描述

  当然大部分常用的节点都是有快捷键的,比如按T再点击鼠标,就能创建一个贴图节点,  按1-4的数字再按鼠标,可以创建1-4维的向量节点,这些都是和ASE一样的。
  由于这里只是介绍概念,所以细节就不多说,快速的把需要的贴图拖入编辑器,然后进行连线:
在这里插入图片描述

  这样一个材质就编辑好了,可以在左上角的材质球预览里面看到效果。
  编辑完之后,一定要记得保存。保存完之后,这个材质就可以使用在模型上了。
在这里插入图片描述
在这里插入图片描述

二、材质实例

  熟悉Unity引擎的朋友,看完上面关于UE的材质文件的介绍之后,一般会发现有这些疑点:
1.Unity的ASE编辑器,是编辑Shader用的,为什么UE却是在编辑材质球的时候用呢?
2.UE的Shader在哪里?
3.是不是每个材质都需要这样编辑?能不能像Unity一样,使用同一个Shader的材质只是换一下参数就能有不同效果?
  这里是一个概念性的问题,UE的所谓材质文件,更接近于Unity的Shader,可以直接在上面通过连接节点实现各种效果。不过区别只是UE的Shader,是可以当做材质球直接用的而已。
  那么在UE里面怎样才能创建和Unity的材质球对应等级的东西呢?
  这里要引入另外一个概念,叫做:材质实例。
  创建材质实例的方法有2个:
1.选择需要的材质文件,右键——创建材质实例
  这样创建的材质实例,默认就会关联上了之前选择的材质文件
在这里插入图片描述

2.在内容浏览器里面,创建——材质——材质实例
  这样创建的材质实例,是空白的,需要自己手动去指定父项的材质。
在这里插入图片描述
在这里插入图片描述

  创建完材质实例之后,双击打开,会看到这次的材质编辑器的界面和之前完全不一样了。
在这里插入图片描述

  里面没有了节点编辑器,可以选择的参数也很少。不过也没有看到之前我拖进去的几张贴图可以替换的地方。
  这是因为默认在材质里面创建的参数,都是私有的,如果想暴露在材质实例里面可以修改,还要进行一些操作:
  比如我想把漫反射贴图暴露出来让材质实例可以替换,于是我选择漫反射贴图节点,右键——转换为参数
在这里插入图片描述

  然后把参数的名字改为DiffuseTex。
在这里插入图片描述

  保存一下材质文件,然后到材质实例的窗口去看看,会发现多了一个参数组,里面就多了一个叫做DiffuseTex的贴图参数。不过默认是灰色的,前面的勾选默认是没有勾的。
在这里插入图片描述

  当我们需要修改这张贴图的时候,可以把前面的勾选勾上,然后就可以在后面的框里面换贴图了。
在这里插入图片描述

  假如我现在想加多一个颜色参数,可以和漫反射相乘的,创建一个三维向量,连好线
在这里插入图片描述

  然后也是在节点上右键——转换为参数
在这里插入图片描述

  把名字改成ColorOffset
在这里插入图片描述

  保存之后,回到材质实例,会看到又多了个颜色的参数,这时候可以修改颜色了
在这里插入图片描述

  到了这一步,就已经达到之前预想的目的了,UE的材质相当于Unity的Shader,然后UE的材质实例相当于Unity的材质球。现在编辑修改材质,然后通过材质实例来单独修改暴露的参数,并赋给网格模型使用。
  材质和材质实例有保存兄弟项和保存子项的操作,实际上就是另存一份。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于阿赵UE学习笔记——9、材质和材质实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594158

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

Java实例化对象的​7种方式详解

《Java实例化对象的​7种方式详解》在Java中,实例化对象的方式有多种,具体取决于场景需求和设计模式,本文整理了7种常用的方法,文中的示例代码讲解详细,有需要的可以了解下... 目录1. ​new 关键字(直接构造)​2. ​反射(Reflection)​​3. ​克隆(Clone)​​4. ​反序列化

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python解决雅努斯问题实例方案详解

《Python解决雅努斯问题实例方案详解》:本文主要介绍Python解决雅努斯问题实例方案,雅努斯问题是指AI生成的3D对象在不同视角下出现不一致性的问题,即从不同角度看物体时,物体的形状会出现不... 目录一、雅努斯简介二、雅努斯问题三、示例代码四、解决方案五、完整解决方案一、雅努斯简介雅努斯(Janu