一个重要矢量的表达式—Fresnel
定义:菲涅尔(Fresnel) 表达式根据表面法线与摄像机方向的标量积来计算衰减。当表面法线正对着摄像机时,输出值为0。当表面法线垂直于摄像机时,输出值为1。结果限制在[0,1]范围内,以确保不会在中央产生任何负颜色。
ExponentIn(指数输入):指定输出值的衰减速度。值越大,意味着衰减越紧或越快。如果使用此输入,那么值将始终取代"指数"(Exponent)属性值。
基本反射小数(Base Reflect Fraction):指定从正对表面的方向查看表面时,镜面反射的小数。值为1将有效地禁用菲涅耳效果。如果使用此输入,那么值将始终取代"指数"(Exponent)属性值。
总结:可让材质产生很好的描边效果;同时在摄像机变更角度的时候会产生不同的花纹(使用于透明材质,如水和玻璃)
一个重要深度的表达式—DepthFade
DepthFade(深度消退)表达式用来隐藏半透明对象与不透明对象相交时出现的不美观接缝。
消退距离(Fade Distance)
这是应该发生消退的全局空间距离。未连接 FadeDistance(FadeDistance)输入时,将使用此距离。
不透明(Opacity)
接收深度消退前对象的现有不透明度。
FadeDistance(消退距离)
这是应该发生消退的全局空间距离。
总结:材质与材质之间的完美过渡
一个重要坐标的表达式—Panner
Panner(平移)表达式输出可用于创建平移(或移动)纹理的 UV 纹理坐标。
属性
速度 X(SpeedX)
指定在 U 方向上平移坐标的速度。
速度 Y(SpeedY)
指定在 V 方向上平移坐标的速度。
坐标(Coordinate)
接收可以通过表达式来修改的基本 UV 纹理坐标。
时间(Time)
接收用来确定当前平移位置的值。这通常是用来提供常量平移效果的 Time(时间) 表达式,但是,也可以使用 Constant(常量) 或 ScalarParameter(标量参数) 来设置特定偏移,或者通过 Matinee 或蓝图来控制平移。
Panner(平移)会生成根据"时间"(Time)输入而变化的 UV。“坐标”(Coordinate)输入可用于处理 Panner(平移)节点所生成的 UV(例如,使其偏移)。
透明材质(玻璃,水等)
透明材质其实很好理解, 一个透明的材质, 挡住了后面的背景色, 后面的背景色会部分穿透透明的材质, 透明材质本身也是有颜色的, 将两个颜色相加, 就得到混合后的颜色. 我们将半透明(semi-transparent)材质的不透明度(opacity)叫做alpha值.
水材质的实现
- 水的基础颜色
先使用一个反射向量对系统的一张HUV贴图UV进行输出,然后把基础颜色调为蓝色,Fresnel颜色调为白色,在通过节点进行连接,具体细节如下:
2.水的不透明度
这里使用表达式–DepthFade来过渡水面与物体之间的区域,具体用法如下:
3.水的纹理(较复杂在细分几个小点)
1.首先使用一张合适的水的法线贴图(可上百度寻找)
2.使用Panner表达式与TextureCoordinate(纹理坐标)输出纹理的uv坐标
Panner的速度X,速度Y数值为±0.005或±0.0025,重复4次和正负数值是为了表现出水波的特性,不只有一个方向的进行运动。
通过这种方式处理的纹理可以达到水面的一个波浪效果
3.通过Add融合与MaterialFunctionCall(材料函数)调出一些水的细节
4.最后在调亿下参数
5.总的节点图
6.实现的动态效果
bandicam 2022-01-21 20-47-25-802
最后总结
水材质的运用首先要理解好透明材质,再通过贴图做出水的一个动态效果。