イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

shader 点滅

 

 

Shader "Custom/Blink" {
	Properties{
		_MainTex("MainTex",2D) = "white"{}
		_DiffTime("DiffTime",Int) = 50
		_Color1("Color1",Color) = (1,0,0,1)
		_Color2("Color2",Color) = (0,1,0,1)
		_Color3("Color3",Color) = (0,0,1,1)
	}
	SubShader{
		Tags{"RenderType"="Opaque" "Queue" = "Geometry"}

		Pass{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			int _DiffTime;
			float4 _Color1;
			float4 _Color2;
			float4 _Color3;

			struct appdata {
				float4 vertex:POSITION;
				float4 uv:TEXCOORD0;
			};

			struct v2f {
				float4 pos:SV_POSITION;
				float4 uv:TEXCOORD0;
			};

			v2f vert(appdata v){
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				o.uv = v.uv;
				return o;
			}

			int GetTimeNum(){
				int t = _Time.y * _DiffTime % 10;
				return t;
			}

			sampler2D _MainTex;
			float4 frag(v2f i) :SV_Target {
				int t = GetTimeNum();
				if(t>=0 && t<=3) return tex2D(_MainTex,i.uv) * _Color1;
				if(t>=4  && t<=6) return tex2D(_MainTex,i.uv) * _Color2;
				if(t>=7  && t<=9) return tex2D(_MainTex,i.uv) * _Color3;
				return float4(1,1,1,1);
			}
			ENDCG
		}//Pass
	}//SubShader
	FallBack "Diffuse"
}