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

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

shader 半透明の円的なやつ、パーティクルで使う

Shader "Custom/ParticleCircle" {
	Properties{
		[HideInInspector]
		_Tex("Tex",2D) = "white" {}
		_Color("Color",Color) = (1,1,0,1)
		_R("R",Range(1,10)) = 1
		_MaxAlpha("MaxAlpha",Range(0,1)) = 0.8
	}
	SubShader{
		Tags{"Queue" = "Geometry+39"}
		Blend SrcAlpha OneMinusSrcAlpha

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

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

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

			float4 _Color;
			float _MaxAlpha;
			float _R;

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

			float4 frag(v2f i) :SV_Target {
				float len = length(i.uv*2 - 1);
				len = lerp(0,_R,len);
				float4 c = _Color;
				c.a = clamp(_MaxAlpha - lerp(0,_MaxAlpha,log(len)),0,1);
				return c;

			}
			ENDCG
		}//Pass
	}//SubShader
	FallBack "Diffuse"
}