【Unity3D】程序纹理简单应用

发布时间 2023-10-17 22:02:41作者: little_fat_sheep

1 几何纹理应用

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

1.1 边框

1)边框子图

​ Border.shadersubgraph

img

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

2)圆环

​ Ring.shadergraph

img

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

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

img

3)六边形边框

​ Hexagon.shadergraph

img

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

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

img

1.2 点阵

1)点阵子图

​ Lattice.shadersubgraph

img

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

2)点阵

​ Lattice.shadergraph

img

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

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

img

1.3 平移

1)平移子图

​ Move.shadersubgraph

img

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

2)平移

​ Move.shadergraph

img

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

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

img

1.4 旋转

1)旋转子图

​ MyRotate.shadersubgraph

img

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

2)旋转

​ MyRotate.shadergraph

img

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

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

img

1.5 风车

1)风车强度子图

​ Windmill.shadersubgraph

img

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

2)风车

​ Windmill.shadergraph

img

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

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

img

1.6 关窗

​ ShutWindow.shadergraph

img

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

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

img

2 球面应用

2.1 球面化

​ Sphere.shadergraph

img

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

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

img

2.2 摆动

1)摆动子图

​ Swing.shadersubgraph

img

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

2)摆动

​ Swing.shadergraph

img

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

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

img

3 极坐标应用

3.1 轮盘转

​ Wheel.shadergraph

img

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

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

img

3.2 圈圈

​ Circle.shadergraph

img

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

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

img

3.3 涡轮

​ Turbine.shadergraph

img

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

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

img

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

img

4 噪声纹理应用

4.1 溶解

​ Dissolve.shadergraph

img

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

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

img

4.2 潮水

1)潮水深度子图

​ Water.shadersubgraph

img

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

​ Water.shadergraph

img

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

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

img

4.3 细胞运动

​ Cell.shadergraph

img

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

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

img

​ 声明:本文转自【Unity3D】程序纹理简单应用