【Unity3D】程序纹理简单应用

1 几何纹理应用

本文所有案例的完整资源详见→Unity3D程序纹理简单应用

1.1 边框

1)边框子图

Border.shadersubgraph

说明:Any 节点用于判断输入向量中是否存在一个分量非零,Branch 节点根据输入的真假走不同的分支,详见→Shader Graph节点

2)圆环

Ring.shadergraph

说明:Border 节点是 1)节中创建的子图,用于计算边框的颜色和透明度,Ellipse 节点用于生成椭圆纹理,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

3)六边形边框

Hexagon.shadergraph

说明:Border 节点是 1)节中创建的子图,用于计算边框的颜色和透明度,Rotate 节点用于对 uv 坐标进行旋转变换,Polygon 节点用于生成多边形纹理,Rounded Polygon 节点用于生成圆角多边形纹理,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

1.2 点阵

1)点阵子图

Lattice.shadersubgraph

说明:Reciprocal 节点取倒数,Modulo 节点用于取余运算,详见→Shader Graph节点

2)点阵

Lattice.shadergraph

说明:Lattice 节点是 1)节中创建的子图,用于计算点阵的 uv 坐标,Ellipse 节点用于生成椭圆纹理,Any 节点用于判断输入向量中是否存在一个分量非零,Branch 节点根据输入的真假走不同的分支,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

1.3 平移

1)平移子图

Move.shadersubgraph

说明:Remap 节点用于将一个区间线性映射到另一个区间,Combine 节点用于将多个通道的输入合并为一个向量,Tiling And Offset 节点用于对 uv 坐标进行平移和缩放变换,详见→Shader Graph节点

2)平移

Move.shadergraph

说明:Move 节点是 1)节中创建的子图,用于计算平移后的 uv 坐标,Ellipse 节点用于生成椭圆纹理,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

1.4 旋转

1)旋转子图

MyRotate.shadersubgraph

说明:Rotate 节点用于对 uv 坐标进行旋转变换,Combine 节点用于将多个通道的输入合并为一个向量,Tiling And Offset 节点用于对 uv 坐标进行平移和缩放变换,详见→Shader Graph节点

2)旋转

MyRotate.shadergraph

说明:MyRotate 节点是 1)节中创建的子图,用于计算旋转后的 uv 坐标,Polygon 节点用于生成多边形纹理,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

1.5 风车

1)风车强度子图

Windmill.shadersubgraph

说明:Negate 节点用于取相反数,Combine 节点用于将多个通道的输入合并为一个向量,Remap 节点用于将一个区间线性映射到另一个区间,详见→Shader Graph节点

2)风车

Windmill.shadergraph

说明:Windmill 节点是 1)节中创建的子图,用于计算风车强度,Twirl 节点用于对 uv 坐标进行螺旋线变换,Rectangle 节点用于生成矩形纹理 ,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

1.6 关窗

ShutWindow.shadergraph

说明:Remap 节点用于将一个区间线性映射到另一个区间;Step 节点用于边界判断,即:In >= Edge 时,返回 1,否则返回 0;Lerp 节点用于线性插值,即:Out = (1 - T) * A + T * B。节点释义详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

2 球面应用

2.1 球面化

Sphere.shadergraph

说明:Combine 节点用于将多个通道的输入合并为一个向量,Spherize 节点用于模拟鱼眼镜头的球形变形效果,Checkerboard 节点用于生成棋盘网格,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

2.2 摆动

1)摆动子图

Swing.shadersubgraph

说明:Combine 节点用于将多个通道的输入合并为一个向量,详见→Shader Graph节点

2)圆锥摆

Swing.shadergraph

说明:Swing 节点是 1)节中创建的子图,用于计算摆动偏移,Spherize 节点用于将 uv 坐标球面化,Ellipse 节点用于生成椭圆纹理,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

3 极坐标应用

3.1 轮盘转

Wheel.shadergraph

说明:Rotate 节点用于对 uv 坐标进行旋转变换,Polar Coordinates 节点用于将直角坐标系下的 uv 坐标转换为极坐标系下的坐标,Checkerboard 节点用于生成棋盘网格,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

3.2 圈圈

Circle.shadergraph

说明:Rotate 节点用于对 uv 坐标进行旋转变换,Polar Coordinates 节点用于将直角坐标系下的 uv 坐标转换为极坐标系下的坐标,Checkerboard 节点用于生成棋盘网格,Combine 节点用于将多个通道的输入合并为一个向量,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

3.3 涡轮

Turbine.shadergraph

说明:Rotate 节点用于对 uv 坐标进行旋转变换,Twirl 节点用于对 uv 坐标进行螺旋线变换,Polar Coordinates 节点用于将直角坐标系下的 uv 坐标转换为极坐标系下的坐标,Checkerboard 节点用于生成棋盘网格,详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

当 Checkerboard 的 Frequency 参数为 (8, 8) 时,效果如下。

4 噪声纹理应用

4.1 溶解

Dissolve.shadergraph

说明:Modulo 节点用于取余运算;Simple Noise 节点用于生成噪声纹理;Step 节点用于边界判断,即:In >= Edge 时,返回 1,否则返回 0。节点释义详见→Shader Graph节点,效果更好的溶解效果详见→消融特效选中物体消融特效

将材质绑定到 Quad 对象上,效果如下。

4.2 潮水

1)潮水深度子图

Water.shadersubgraph

说明:Tiling And Offset 节点用于对 uv 坐标进行平移和缩放变换;Simple Noise 节点用于生成噪声纹理;Step 节点用于边界判断,即:In >= Edge 时,返回 1,否则返回 0。节点释义详见→Shader Graph节点

Water.shadergraph

说明:Water 节点是 1)中定义的子图,用于计算潮水深度;Lerp 节点用于线性插值,即:Out = (1 - T) * A + T * B。节点释义详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。

4.3 细胞运动

Cell.shadergraph

说明:Voronoi 节点用于生成晶胞;Lerp 节点用于线性插值,即:Out = (1 - T) * A + T * B。节点释义详见→Shader Graph节点

将材质绑定到 Quad 对象上,效果如下。