ジュリア集合 pic.twitter.com/AUjBObDg8a
— 光属性のアルモジナ(VRChat勢) (@arumogina) August 12, 2019
Shader "Custom/Ray7" { Properties{ _MainTex("MainTex",2D) = "white"{} _Loop("Loop",Int) = 5 _Size("Size",Range(0,1)) = 0 _Free("Free",Float) = 1 _Free2("Free2",Float) = 1 } SubShader{ Tags{"RenderType"="Opaque" "Queue" = "Geometry"} //透明部分のあるテクスチャを使う場合 //Tags{"Queue" = "Transparent" "RenderType" = "Transparent"} //Blend SrcAlpha OneMinusSrcAlpha Pass{ Cull Back 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 uv:TEXCOORD0; }; float _Size; float _Free; float _Free2; v2f vert(appdata v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); //o.pos = float4(v.vertex.xy*2.0,1,1); o.uv = v.uv; return o; } // HSV カラー生成関数 float3 hsv(float h, float s, float v){ float4 t = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); float3 p = abs(frac(float3(h,h,h) + t.xyz) * 6.0 - float3(t.w,t.w,t.w)); return v * lerp(float3(t.x,t.x,t.x), clamp(p - float3(t.x,t.x,t.x), 0.0, 1.0), s); } float4 frag(v2f i) :SV_Target { float2 p = ((i.uv * _ScreenParams.xy) - 0.5 * _ScreenParams.xy) / _ScreenParams.y; int j = 0; float2 x = float2(-0.345, 0.654); float2 y = float2(_Time.y * 0.005, 0.0); float2 z = abs(p); for(int i = 0; i < 360; i++){ j++; if(length(z) > 2.0) break; z = float2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + x + y; } if(j <= _Free2) clip(-1); float h = abs(fmod(_Time.y * 15 - float(j), 360.0) / 360.0);; //float h = abs(fmod(_Time.w * _Free - float(j), 360.0) / 360.0);; float3 rgb = hsv(h, 1.0, 1.0); return float4(rgb, 1.0); } ENDCG }//Pass }//SubShader FallBack "Diffuse" }