ue4材质的入门和原理笔记

材质的入门和原理

1.着色器

现在已经有了程序化纹理效果工具,可以用来制作水体、火焰等等
在这里插入图片描述
在这里插入图片描述

Shading language
材质域(material domain):应用到哪个方面
着色模型
混合模式
其他设置

设置上面的形成一个材质模板,材质模板+表达式=材质

在这里插入图片描述

表达式平时工作中只会用到5%-10%
自定义节点:可以把各个lsl导入表达式中
如果用表达式达不到某些效果,还可使调用Hlsl层

在这里插入图片描述
在这里插入图片描述

2.纹理Texture

纹理显示为一个节点,默认情况下每个材质可以有16个纹理,使用共享取样器可以达到28个
纹理只是个样本,拖入就可以了
在这里插入图片描述

3.参数集合

不太常用,但是简单好用。修改一次,之后所有的效果都会直接读取,不用一个一个改了
在这里插入图片描述
在这里插入图片描述

4.材质实例(材质球)

很厉害,很常用。只有需要编译的时候才会用到,在构建材质时很有用
可以复制出来,更改一些效果。也可以叠加效果,成为另一个材质球的一部分。
在这里插入图片描述
在这里插入图片描述

5.编译

编译成shader语言,自动做着色器排列。虚幻引擎总是利用更优化材质
所以要选择平台、用途、开关
最后未被使用的着色器会在打包时被自动删去
在这里插入图片描述

6.应用

会应用在ui、解码、光照、后期处理、提及材质、表面
在这里插入图片描述

虚拟纹理:可以让物体融进场景里
在这里插入图片描述

7.性能表现

在这里插入图片描述

Stats命令可以让你知道材质有多少指令
在这里插入图片描述

Shader复杂度——可以在视口中知道哪个材质的开销
在这里插入图片描述

品质开关——可以制作低配版和高配版。低配版就是同步一个纹理,应用于手机。高配版在整个网络中应用,适于pc
在这里插入图片描述

材质分析器——不常用,可以查找是否有重复材质
在这里插入图片描述

建议

1.要做实例和材质之间的平衡

如果所有东西都用特殊材质的话,以后会有很大的麻烦。因为所有的材质都是特殊的,迭代起来很困难,同时会创造很多shader着色器。
如果把所有东西都做成实例,也会很麻烦。当你像修改特定的某个实例时,你必须修改父材质,加许多函数,这会导致父材质很复杂。
如果只专注于一小部分材质,你无法预知项目最终会变成什么样子,所以要多尝试,找到实例和材质的平衡点
在这里插入图片描述
在这里插入图片描述

常用的函数对应一些主材质,主材质又对应一些实例,实例再衍生其他实例。
要寻找到合适的结构,可以用层也可以不用
**

2.实例内的实例

**
可以让一个实例衍生另一个实例
在这里插入图片描述

3.着色器编译分配

使用Incredibuild(开发者工具包)可以在编译次数上有显著区别,在大型项目中Incredibuild可以大大加快编译速度

4.合并贴图/打包通道

把多个灰度纹理经过红绿蓝三个通道打包在一起。这样可以避免使用alpha通道存储纹理,因为alpha一般都是未压缩的,这样可以节省空间
在这里插入图片描述
在这里插入图片描述

5.Pbr

斑点specular和金属色metalic往往只是简单的值,我们并不会指定纹理为高光或金属色,而是一个0-1的值,默认为0.5.
粗糙度roughness目前是最重要的,这里就是你生成纹理的地方,对简单材质或远处的几何类物体很有用,而且占用空间小。
Ao环境光遮蔽只适用于静态物体,游戏是动态光照,所以可以不把ao添加到渲染管线中。

6.函数库

可以建立自己的函数,这样可以提高效率。不要轻易修改引擎的标准函数

7.做好兼容的准备

从第一天开始就要考虑纹理组和质量开关,注意其他有用的材质标记。有些表达式的内存可能远超其他表达式。

猜你喜欢

转载自blog.csdn.net/Zhanganzhen/article/details/114634780