1、让星空运动起来
Shader "Custom/s_mohu" {
Properties{
_MainTex("MainTex", 2D) = ""{}
_F("F",range(1,10)) = 4
}
SubShader{
pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "unitycg.cginc"
#pragma target 3.0
float tiling_x;
float tiling_y;
float offset_x;
float offset_y;
sampler2D _MainTex;
//unity总是会帮我们传递这样一个值
float4 _MainTex_ST;
float _F;
float _A;
float _R;
struct v2f {
float4 pos:POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(appdata_base v) {
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag(v2f IN) :COLOR{
float2 uv=IN.uv;
float2 offset_uv = 0.05*sin(IN.uv*_F+_Time.x);
uv += offset_uv;
fixed4 color = tex2D(_MainTex,uv);
return color;
}
ENDCG
}
}
}
就以星空图片为背景运动起来了
2、重复采样,方向相反,模仿星空的空间感觉
Shader "Custom/s_mohu" {
Properties{
_MainTex("MainTex", 2D) = ""{}
_F("F",range(1,10)) = 4
}
SubShader{
pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "unitycg.cginc"
#pragma target 3.0
float tiling_x;
float tiling_y;
float offset_x;
float offset_y;
sampler2D _MainTex;
//unity总是会帮我们传递这样一个值
float4 _MainTex_ST;
float _F;
float _A;
float _R;
struct v2f {
float4 pos:POSITION;
float2 uv:TEXCOORD0;
};
v2f vert(appdata_base v) {
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag(v2f IN) :COLOR{
float2 uv=IN.uv;
float2 offset_uv = 0.05*sin(IN.uv*_F+_Time.x*2);
uv += offset_uv;
fixed4 color_1 = tex2D(_MainTex,uv);
uv = IN.uv;
uv -= offset_uv*2;
fixed4 color_2 = tex2D(_MainTex, uv);
return (color_1+ color_2)/2;
}
ENDCG
}
}
}