— 光属性のアルモジナ(VRChat勢) (@arumogina) August 29, 2019
Shader "Custom/sonic1" { Properties{ _MainTex("MainTex",2D) = "white"{} _Frec("Frec",Range(0,1000)) = 100 _SPD("SPD",Float) = 0 _Seed("Seed",Float) = 0 } SubShader{ Tags{"Queue" = "Transparent" "RenderType" = "Transparent"} Blend SrcAlpha OneMinusSrcAlpha Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex:POSITION; float4 uv:TEXCOORD0; }; struct v2f { float4 pos:SV_POSITION; float4 lpos:POSITION1; float4 uv:TEXCOORD0; }; float _Frec; float _SPD; float _Seed; float rand(float2 co){ return frac(sin(dot(co.xy ,float2(12.9898,78.233))) * 43758.5453); } v2f vert(appdata v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } sampler2D _MainTex; float4 frag(v2f i) :SV_Target { float ux = i.uv.x*_Frec; float fux = frac(ux); float id = trunc(ux); float t = trunc(_Time.y*_SPD); id += t; float yaid = trunc(id*1000)/1000; float ybid = trunc((id+1)*100000)/100000; float ya = rand(float2(yaid/1000,_Seed)); float yb = rand(float2(ybid/1000,_Seed)); if(i.uv.y <= lerp(ya,yb,fux)){ return float4(0,0,0,1); } return float4(1,1,1,1); } ENDCG }//Pass }//SubShader FallBack "Diffuse" }