欢迎光临散文网 会员登陆 & 注册

20.高级细节法线着色器

2022-10-09 12:50 作者:那个人真狗  | 我要投稿


目的

  • 不同的材质质感增加不同的细节法线

制作过程

思路

假如给角色增加细节法线贴图,就不能和石头一样,

因为石头都是一种材质,角色有皮革,布料,金属等不同材质质感。

上一篇是只能增加一种细节法线,只有石头的细节法线



错误的方法

  • 我们去创建四种不同的法线贴图

  • 错误的处理方式

这里正常是8,这里为了看清楚设置的是1

介绍这些节点的功能,

遮罩的功能就是绘制贴图显示的位置

目前这样的方法有问题,

比如我们使用8种材质,那我们需要导入8张法线贴图。我们贴图越多,着色器就越费。

  • 查看我们的着色器有多费

  • 这表示有164个指令。

  • 这里表示6个贴图


这样错误的方法是比较费。

正确的方法

贴图矩阵

  • 第一个概念使用贴图矩阵,就是一堆贴图,也可以理解成图集。

制作贴图矩阵

  • 创建一个纹理2D数组

  • 创建出来是空的

  • 我们需要增加贴图—创建4个贴图

  • 效果

  • 具体在材质中我们怎么使用这些纹理,我们需要创建一个材质矩阵,创建16个这种材质。

这个材质矩阵就可以给所有角色使用。

注意:使用细节法线的时候我们贴图大小不能太大,推荐使用256



调用材质矩阵

  • 我们目前创建完成,在材质编辑器怎么调用

    创建一个空的贴图节点—现在我们刚刚创建的材质矩阵

  • 这里就采样了

  • 在材质里怎么使用贴图图集,一个是UV,类似序列帧贴图

  • 需要输入 UV 还有一个W就是第几张。

  • 这是显示第0张贴图

  • 遮罩贴图我们使用灰度来制作,

问题 为什么不使用RGB来制作通道了?

  • 因为我们使用图集可能使用16张贴图,使用RGBA4个通道不够了,我们使用不同的灰度来制作Mask

  • 我们以这样的方式可以取出很多,这里我们是使用4张贴图,就平均使用4个灰度。

  • 按照 当前的色阶制作遮罩图

  • 不同的色阶显示不同的材质,

  • 导入贴图设置

  • 为什么我们需要设置贴图,这是因为我们使用贴图来计算需要把贴图设置成线性。

不同灰度决定不同的材质

  • 回到UE5材质编辑器,我们怎么使用Mask贴图

我们现在看到我们是有4个不同的灰度。

我们知道颜色范围是 0- 1 ,我们需要把这个灰度的值映射到 0 -3 我们有4张贴图

  • 0-1映射到 0-3

  • 我们需要不同灰度代表一个整数,我们这里增加一个Round节点

这样我们的输入的灰度颜色就会四舍五入取整

扩展 Round节点的使用

  • 取整

  • 输出

  • 检查一下是否输出的是4块颜色信息。

  • 输出到贴图通道

总结

  • 纹理2D数组的使用,可以储存多张纹理,

  • 贴图的不同模式,比如默认的Default 在材质对应的使用Color

    注意:这里如果设置的不对可能导致崩溃

    • Default

  • Normal

  • Masks

注意:这里如果设置的不对可能导致崩溃


20.高级细节法线着色器的评论 (共 条)

分享到微博请遵守国家法律