2023-7-28-UE5-材质宝典-初学者材质基础入门系列

最近打算5篇材质相关教学多管齐下,不同教学中即使同一个主题所讲解的深度是有很大区分的,比如这个系列看似讲的很深入,有许多“玄乎”的概念和操作,但是许多地方属于虎头蛇尾,“猛如虎”之后嘎然而止,其中原理的解释是含糊不清的。和建模一样,问题到了我自己这边——需要掌握什么样的程度?我目前偏向于要都能理解,不一定能够运用自如,至少是看得懂的。这就好比建模的demo,至少你看得懂他在做什么,为什么要这么做,“手跟不上”无所谓(也就是不一定自己要达到那种建模的美术功力)。

很多东西讲概念没有结合在一个案例中的需求,会感觉十分空洞,好像报流水账。

2节讲了result node of material各个属性。3节讲了material domain,贴画似乎就是在这里设置的Defered Decal。


​​​​​

4节,纹理须知。昨天在柳林的材质总结也提到了纹理使用需要2的幂次方,但我在总结时就忽略了这一点,系统性教学虽然流水账,但很多细节会让你格外重视起来,这是文字ppt好处。mipmap即摄像机距离不同时,系统生成不同2的幂次方的纹理,从而在远处可以用很小的纹理来节省内存资源。

最好使用psd、tga这种无损图片作为纹理。volumeTexture通常结合粒子系统做一些特效,比如《功夫》中的云状大佛。

虚拟纹理(Virtual Texture)的原理是把纹理切片以后根据摄像机位置决定加载哪些切片,page table中绘色的为需要加载的,白色的为看不到的部分不加载,最后生成物理纹理。相对于mipmap而言,虚拟纹理更节省内存,提高性能。我去查看了一下matrix项目中所有的纹理都是VT虚拟纹理,项目设置中启动了virtual texture support,应该可以推测出如需使用虚拟纹理,需要打开这个选项。

当要使用的纹理实际无法满足2的幂次方时,利用uv放缩移动的方式对留白的纹理修改其uv。

5节对一个hero asset添加纹理生成材质,6节生成材质实例,材质实例的参数调整直接影响场景模型而无需像master material那样改动后需编译。s+左键生成parameter节点。转化为参数后,可以创建参数的编组以及设置优先级排序。

7节数据基础,按ctrl可以解除节点连接关系并将原有的连接关系转接给其他节点。3维数据rgb既代表颜色红绿蓝,也代表坐标xyz,其中rg还代表物体的纹理坐标数据。

8节,加减乘除运算在颜色上的表现,texcoord分离的通道为从0-1的渐变(调节u、v的值,可以改变渐变区间,比如u为2,则u通道分离后为0-2的渐变),constantBiasScale先加后乘,比如途中(-1,0,1),变为(0,1,2)再变为(0,0.5,1)。

9节,lerp的alpha区间为0-1,超出会产生诡异错误如图。

10节控制数据,有maskcomponent可以将texcoord拆分为一维数据,append和makefloat则为合并成高维数据。这两个似乎是一样的?不过在unreal的论坛上有人发帖显示makefloat需要注意它的输入数据类型。

o+左键为1-x节点。11节关于色彩控制,加减乘除,power、cheapcontrast对比度控制。12节讲到纹理坐标和uv坐标的关系,uv恒定为0-1,当纹理坐标被放大后,要映射回uv坐标?前文提到过texcoord里面的u、v值反映的是0-x的渐变图像,u为2即为0-2渐变,目前直觉上来看这似乎和纹理最后的显示挂不上钩。

13节通过数学运算,完成u、v通道0-1渐变取Min转换为如图的效果。注意这里是一维数据。

对中心测距,由于中心位置为(0.5,0.5)因此距离为0,自发光显示黑色,四个顶点距离最大,比如右下角为(1,1)右上角为(1,0)。

14节讲角度渐变的数据运算,这里的arctangent2的运算逻辑如下解释。可以从图上直观看出函数值随着变量在四个象限旋转到第一象限递增到最大。

关于texcoord对纹理显示布局的影响(我不知道用业内标准的术语应该怎样描述),可以看出来仅仅对u通道影响时,纹理的显示取的是45度对角线的色彩根据u通道而呈现的一种映射关系,“超过1之后又从0开始算起”,我很难用语言去表述这种关系,我试着在hh5这张纹理上用白色块涂抹来寻找最后输出效果的规律发现仅在45度对角线时有影响,但不清楚规律是什么,另外可以明显看出来最终输出的“排列样式”和u通道的黑红“排列样式”是一致的。

为什么会有这种对角线效应呢?这就是之前课程讲到的1维数据进行对高维插槽的连接或者高维数据的计算时的“自动升级”了。我这里举例以一维数据连接uvs它的效果和用同样数值append后的二维数据连接uvs后所得出的结果是一样的!所以说对uvs操控最后输出的纹理效果实际上就是texcoord那个最初的“红黄绿色块”所对应纹理像素。

不过折腾了半天,其实没明白这种运算有什么意义。

16节bump白凸黑凹通过黑白来表示深度变化,法线是向量信息,法线贴图纹理改变模型表面的法线向量影响模型表面光线的反射方向,通过这种方式模拟物体表面的凹凸细节,下图中通过天光与物体法线进行点积运算可以看出物体表面不同的反射区域。点积为1方向一致,呈现白色,为0方向垂直为黑。

18节,数据的选择if和switch。

20节顶点法线放大缩小物体,周期性放大缩小。

ObjectPostion节点获取使用该材质模型的位置3维数据,ObjectOrientation节点获取使用该材质模型的z轴朝向的信息,AbsoluteWorldPosition平铺一个材质,之前印象里用这个添加了noise从而对大面积的地块做了多样化表面打破tiling平铺。

19节在maya中模拟法线原理,x轴红光,y轴绿光,z轴蓝光,就会得到类似于法线贴图的效果。unreal engine中物体的贴图空间基于切线空间,切线空间物体的移动旋转与灯光保持同步。

Transform节点可以改变空间类型。

22节Fresnel节点产生一个中心放射渐变的效果。其原理是顶点法线与摄像机方向的点击。

23节三维空间纹理映射,从图像上可以知道想要把贴图映射在三个空间平面,但是操作上完全看不懂含义了。

这个系列不想继续看下去了,有种操作全靠蒙的感觉。

2023-8-7-不规则多分叉小路-路肩栅栏-草地绿化的技术实现 2023-7-26-Ben-Cloward材质原理教学

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×