其实在游戏中,我们一般需要实现类似鱼有波光粼粼的效果的,下面我和大家一起学习实现这个效果。
1、新建Shader-Sparkling.shader文件,代码如下:
Shader "Custom/Shader-Sparkling" //Shader名称
{
Properties//属性块
{
_MainTex("Main Texture",2D)="white"{}//显示在检视面板的名称 类型 默认类型
_SubTex("Sub Texture",2D)="white"{}
_MainColor("Main Color",Color)=(1,1,1,1)
}
SubShader//子着色器
{
Pass
{
CGPROGRAM
#pragma vertex vert// 定义顶点函数
#pragma fragment frag//定义片元函数
#include "UnityCG.cginc"
sampler2D _MainTex;
sampler2D _SubTex;
float4 _MainColor;
struct v2f
{
float2 sv_uv:TEXCOORD0;
float4 sv_position:SV_POSITION;
};
struct a2i
{
float2 uv:TEXCOORD0;
float4 position:POSITION;
};
v2f vert(a2i i)
{
v2f o;
o.sv_position=UnityObjectToClipPos(i.position);
o.sv_uv = i.uv;
return o;
}
float4 frag(v2f v):SV_TARGET
{
float2 offset=float2(0,0);
offset.x=_Time.y *0.25f;
offset.y=_Time.y *0.25f;
float4 subTex = tex2D(_SubTex,v.sv_uv+offset);
float4 mainTex = tex2D(_MainTex,v.sv_uv)+subTex;
return mainTex*_MainColor;
}
ENDCG
}
}
FallBack "Diffuse"
}
2、运行效果如图:
网友评论