效果图
目录
聚合水波纹效果主要集中处理三个方面:法线。自发光和自身顶点偏移。
一、Normal—法线处理
法线处理主要是对物体顶点视角坐标的DDX与DDY做叉积,
然后,得出表面波光粼粼效果。
DDX Node和DDY节点
DDX节点相对于屏幕空间x坐标输出指定输入值的偏导数。
Cross Node
叉积节点(快捷方式:X键)计算两个向量A和B之间的交叉/向量乘积。叉积是两个三维/ Float3向量之间的运算,可生成另一个向量。
如果A和B向量彼此线性独立,则所得向量将垂直于两个向量,并将代表它们所产生平面的法线向量。注意:顺序是非常重要的,AXB输出比不同的结果BXA(其结果类似于-AxB)。
http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Cross
Input Port Description Type Lhs First, or left hand side, value of the cross product. Float3 Rhs Last, or right hand side, value of the cross product. Float3
二、Emission—自发光处理
自发光处理主要是影响波纹产生和变化。
前后对比图。
播放动画
Panner Node
Panner节点根据时间值将UV坐标或其他Vector 2位置移动指定的Speed。如果在“ 时间”输入端口上未设置任何输入,则使用Unity计时器提供连续的平移动画。在这种情况下,“时间”属性充当Unity计时器值的乘数。 另一方面,如果在“时间”输入端口上建立了连接,则它将假定该值为最终值,并且在内部不使用任何类型的计时器。
注意:要平移的纹理必须将其环绕模式设置为Repeat。
http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Panner
Input Port Description Type UV 要移动的点. Vector 2 Speed 用于平移运动的速度矢量. Vector 2 Time 指定当前平移位置的计时器值. Float
Rotator Node
“Rotator ”节点从锚点将UV或其他Vector 2位置旋转一个Time角度值。如果在时间输入端口上未设置任何输入,则使用Unity计时器连续增加内部角度值并提供旋转动画。在这种情况下,“时间”属性充当Unity计时器值的乘数。 另一方面,如果在“时间”输入端口上建立了连接,则它将假定该值为最终值,并且在内部不使用任何类型的计时器。
http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Rotator
nput Port Description Type UV 要旋转的点。 Vector 2 Anchor 旋转时使用的锚点 Vector 2 Time 要应用到指定点的弧度旋转角度. Float
Depth Fade Node
深度淡入淡出(Depth Fade)节点会输出线性渐变,该线性渐变表示对象的表面与其后的几何图形之间的距离。可以通过调整“ 距离”参数来设置渐变范围或渐变距离。
更具体地说,此参数的作用是在对象的表面与其后的几何图形之间的距离在指定的值内时,创建一个[0 1]范围内的值。
注意:着色器的“ 渲染队列”值必须设置为“ 透明”或更高(pe 混合模式设置为“ 透明”或“ 半透明”)),因此不会将对象写入深度缓冲区。这是必不可少的配置,因为节点在内部通过将“ 表面深度”减去“深度缓冲区”中提取的值来计算距离值。如果将对象写入深度缓冲区,则此操作将产生意外的结果。
Node Parameter Description Default Value Vertex Position 不要使用此内部数据,因为它会在内部被忽略。仅在未连接相应的输入端口时可见. 0 Distance 世界空间坐标中应发生淡入的距离。仅在未连接Dist输入端口时可见. 1 Convert to Linear 从深度缓冲区读取的深度值从对数转换为线性刻度 True Mirror 对最终值应用 Abs ,以确保最终值始终为正 True Saturate 在最终值上应用Saturate ,以确保最终值在0到1的范围内。 False
Input Port Description Type Dist 世界空间坐标中应发生淡入的距离. Float Vertex Position 允许指定自定义顶点位置。如果未连接,则使用当前顶点位置。. Float3
三、Local Vertex Offset—本地顶点偏移
主要是通过顶点位置遮罩,形成条纹,再处理成波纹效果。
Wave Height:波纹的高度差,类似海浪波涛汹涌程度。
Vertex Normal Node
顶点法线节点在对象空间中输出顶点法线向量。此数据直接从网格中提取,并包含相对于对象原点的法线顶点,这意味着法线矢量值不会更改游戏对象具有的任何变换值。通常用于在“ 局部顶点法线”输出中使用或创建绑定到对象并保持完全相同的效果,即使您的游戏对象更改位置,旋转或大小也是如此。
根据使用此节点的位置(顶点或片段/表面函数),它将返回直接值(在顶点函数上)或在顶点之间插入值(在片段/表面函数上)。注意:不要与“ World Normal ”节点混淆。
http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Vertex_Normal
Output Port Description Type XYZ 返回对象空间中的顶点法线向量 Float3(4) X Returns only the X component of the vertex normal Float Y Returns only the Y component of the vertex normal Float Z Returns only the Z component of the vertex normal Float
Vertex Position Node
“顶点位置”节点输出对象空间中的顶点位置。此数据直接从网格中提取,并包含相对于对象原点的顶点位置,这意味着位置值不会更改游戏对象具有的任何变换值。通常用于在“ 局部顶点偏移”输出中使用或创建绑定到对象并保持完全相同的效果,即使您的游戏对象更改了位置,旋转或大小也是如此。
根据使用此节点的位置(顶点或片段/表面函数),它将返回直接值(在顶点函数上)或在顶点之间插入值(在片段/表面函数上)。注意:不要与“ World Position”节点混淆。
http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Vertex_Position
Output Port Description Type XYZ(W) 返回对象空间中的顶点位置 Float3(4) X Returns only the X component of the vertex position Float Y Returns only the Y component of the vertex position Float Z Returns only the Z component of the vertex position Float W Returns only the W component of the vertex position (By default set to 1). Only visible if Size is set to XYZW. Float