从兼职到大神:新手必看的UE材质原理讲解

2024-06-18 17:44

本文主要是介绍从兼职到大神:新手必看的UE材质原理讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对于刚接触UE的同学来说,材质篇章往往是令人望而生畏的一大板块。但材质的一些基本原理其实并不难,只要稍作理解便可以轻松入门。接下来我们便分为材质类型和节点类型两个知识板块来介绍材质的相关内容。

材质类型

材质分类

金属:金属材质一般反射比较均匀,且大部分时候反射是带有金属颜色的。

金属材质
金属材质

非金属:非金属材质的反射面与人眼视线的夹角不同,效果上会有一些变化(菲尼尔效果)。

图片
非金属材质

透射:透射材质最经典的就是玻璃,其主要效果除了反射以外还有折射的效果。

图片
透射材质

制作技巧

金属材质:制作金属材质的时候,需要将材质的metallic(金属度)调整到1,也就是把金属度拉满,让材质表现出纯金属的材质。通过base color(颜色)与roughness(粗糙度)通道控制金属的颜色和粗糙度。

金属材质节点

非金属材质:非金属材质的metallic通道则为0,其他的通道与金属通道一致,唯一不同的是Specular(反射)通道可以通过常数来调节反射效果的强弱。

非金属材质节点

透射材质:在UE中制作玻璃等透射材质会比较复杂,需要调整的参数较多,在此便不一一赘述。下图是玻璃材质的参数参考。

透射材质的节点和参数

当熟知三种常用的材质类型之后,再学习一些常用的节点便可以制作很多基础的材质效果了。

节点类型

常数与参数

常数:常数在项目运行时,数值上不会发生改动;在材质实例(instance)上也不会暴露其数值,也无法通过材质实例单独控制参数。

参数:参数在项目运行时,可以通过蓝图等控制其变化;并且在材质实例(instance)上也会暴露其数值,可以通过材质实例单独控制参数。

图片
左侧为常数 右侧为参数

图片
暴露出来的参数

常数命名:可用的常数类型有(a)、(a,a)、(a,a,a)、(a,a,a,a),它们分别为一维常数、二维常数、三维常数、四维常数。我们可以把常数的位数跟空间轴的x,y,z轴相对应上,所以使用空间维度来命名。(a代表任意数值)

参数命名:参数只有一维参数、三维参数、四维参数,一般是用来控制float,RGB,RGBA等参数的变化。

PS:常数与参数之间相互对应,也可以通过右键选择相应选项来相互转换。通常一些固定的值会使用常数将数值固定住,而一些需要调整或者控制的变量则可以通过参数将其释放。

常用运算节点

Add:将输入的两个数值相加,输入的数值必须是相同的类型,如果输入不同维度的数值则会报错,但如果其中一个值是单个的常数时除外。

例如:

(a,b,c)+(x,y,z)=(a+x,b+y,c+z)

(a,b,c)+(1)=(a+1,b,c)

Multiply:将两个输入值相乘,当输入的是两张贴图的时候,输出结果与PS的正片叠底相同。在项目中经常会将贴图与参数相乘,让参数起到控制贴图亮度/强度的作用。

图片
mutiply制作强度控制节点

Clamp:将输入的值约束到min和max 的数值范围内,超出范围的数值会被min或者max所取代。

图片

图片
clamp作用的效果

Max:取两个数值的最大值,当输入的是两张贴图的时候,输出结果与PS的变亮相同。一般情况下混合两种变化较大的纹理并提取高亮的效果,比如划痕。

Min:取两个数值的最小值,当输入的是两张贴图的时候,输出结果与PS的变暗相同。一般情况下混合两份纹理并提取暗部的效果,比如潮湿路面的粗糙度贴图混合积水分布控制贴图。

贴图相关节点

纹理节点也有类似数值那样有常数和参数的区别,分别是texture sample 和texture sample parameter 2D,我们也可以直接右键点击texture sample 选择转化为参数。

图片
两种纹理节点

Texture coordinate:用于调整纹理的UV缩放次数。可以直接通过add节点增加一个二维常数,达到控制UV偏移的效果。

图片
连接二维常数控制偏移

图片
连接三维参数控制偏移

了解了基础的材质知识和节点知识以后,已经能够满足大部分基础材质的制作需求了。趁热打铁,接下来让我们动手实操一下吧

图片

这篇关于从兼职到大神:新手必看的UE材质原理讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MySQL的隐式锁(Implicit Lock)原理实现

《MySQL的隐式锁(ImplicitLock)原理实现》MySQL的InnoDB存储引擎中隐式锁是一种自动管理的锁,用于保证事务在行级别操作时的数据一致性和安全性,本文主要介绍了MySQL的隐式锁... 目录1. 背景:什么是隐式锁?2. 隐式锁的工作原理3. 隐式锁的类型4. 隐式锁的实现与源代码分析4

MySQL中Next-Key Lock底层原理实现

《MySQL中Next-KeyLock底层原理实现》Next-KeyLock是MySQLInnoDB存储引擎中的一种锁机制,结合记录锁和间隙锁,用于高效并发控制并避免幻读,本文主要介绍了MySQL中... 目录一、Next-Key Lock 的定义与作用二、底层原理三、源代码解析四、总结Next-Key L

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元