问题
不理解材质的原因:
- 图杂乱无章,且通过图表达的数学较为复杂【保证整洁、在本子记录数学过程】
- 会经常遇见自己不熟悉的一些节点【官方文档】
基本数据类型
常用数据类型
三种基本数据类型很重要:
- constant/1 float
- constant2Vector/ 2 floats
- constant3Vector/ 3 floats
分配base color:
PS.对应像base color这种如果输入的是两个值的,先分配RG通道,B通道为0.默认情况下,引擎会给予的输入进行一个转换,引擎会进行修复
Lerp节点
PS.主要是在两个点之间根据alpha的值进行两种混合。
每个纹理其实都是颜色的组合,比如一个噪音纹理,他其中主要0和1这两种颜色组成的。
案例制作
**ex:**制作一个很脏的石板。
步骤:
- 有一个cube
- 有一个颜色
- 让他看起来脏
材质节点
结果展示:
PS.纹理贴图存储的是值,有的是0-1的那这张贴图只适合作为一些单值一些socket的输入,比如像粗糙度、而一些颜色复杂的RGB代表不同的颜色,则可以用来表示不同的表示效果
UV
前边案例的缺点:
使用了粗糙度来驱动表面图像的显示、形成。实际中粗糙度不能用来控制显示图像。
UV贴图是一种在三维模型上应用纹理的方法。UV是指二维纹理坐标系统中的U和V轴,这是一个从3D空间到2D空间的映射。UV贴图的过程就是将3D模型的表面展开,然后在2D平面上进行绘制或贴上图片,最后再将这个2D图像映射回3D模型的表面。通过TextureCoordinate可以放大或者缩小这张贴图
UV贴图的作用主要有以下几点:
- 纹理映射:UV贴图是将2D纹理映射到3D模型上的主要方式,可以使模型的表面具有更丰富的细节和真实感。
- 节省资源:通过UV贴图,可以在不增加模型多边形数量的情况下,增加模型的细节,从而节省计算和存储资源。
- 艺术创作:UV贴图也是3D艺术家创作的重要工具,可以在2D平面上绘制复杂的纹理和图案,然后映射到3D模型上,实现各种艺术效果。
- 动画制作:在动画制作中,UV贴图可以用来创建角色的皮肤、衣物等表面的纹理,使角色看起来更生动和真实。
ex:
常用节点
组件掩码
目的:想从比如一个组里边单独分离出每个变量,比如RGB,我想单独控制这几个变量的变化。
Append
目的:将两个或多个变量进行追加合并。
我们可以通过乘这样一个操作改变一个变量的值,就像这上边的U,V
PS.通过设置混合模式可以设置透明度等。
上述的替代品,用下列节点进行替代即可
制作箭头
移动
让材质移动
通过UV的控制,在unreal中uv坐标的原点是在这个左上角。
通过控制UV坐标的移动来控制,材质的移动。在一定的时间步长中添加一定的距离,比如我们可以添加。
时间节点(time时间节点),可以记录时间的流失
让物体移动
PS.让物体移动这种通过这个上边的socket控制,可以用来实现像树或者草这种类似的移动。
复习-创建一个火焰的材质
分析
- 需要纹理。【火焰纹理】
- 有一个实际的承载物,mesh。
- 实现效果。
总结
- 让贴图缩放,使用纹理坐标控制。
- 实现材质的运动之类,time节点+UV坐标控制。
- sine节点可以实现-1到1之间的变化,通常使用sature节点限制到0-1。还可以用lerp节点进行任意范围的数值控制。这个等于sine_Remapped节点。
- 通过材质节点图表中的world position offset可以进行,像缩放,这种动画。视觉上控制顶点的变化。而不在蓝图中,进行一个动态的控制了。