【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 对象上,效果如下。
声明:本文转自【Unity3D】程序纹理简单应用。