Виктор Шейко 4 years ago
parent
commit
b1c43ca29c

+ 56 - 0
Assets/Resources/Shaders/Circle.shader

@@ -0,0 +1,56 @@
+// Upgrade NOTE: replaced '_Projector' with 'unity_Projector'
+// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip'
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+Shader "Projector/AdditiveTint" {
+	Properties{
+		_Color("Tint Color", Color) = (1,1,1,1)
+		_Attenuation("Falloff", Range(0.0, 1.0)) = 1.0
+		_ShadowTex("Cookie", 2D) = "gray" {}
+	}
+		Subshader{
+			Tags {"Queue" = "Transparent"}
+			Pass {
+				ZWrite Off
+				ColorMask RGB
+				Blend SrcAlpha One // Additive blending
+				Offset - 1, -1
+
+				CGPROGRAM
+				#pragma vertex vert
+				#pragma fragment frag
+				#include "UnityCG.cginc"
+
+				struct v2f {
+					float4 uvShadow : TEXCOORD0;
+					float4 pos : SV_POSITION;
+				};
+
+				float4x4 unity_Projector;
+				float4x4 unity_ProjectorClip;
+
+				v2f vert(float4 vertex : POSITION)
+				{
+					v2f o;
+					o.pos = UnityObjectToClipPos(vertex);
+					o.uvShadow = mul(unity_Projector, vertex);
+					return o;
+				}
+
+				sampler2D _ShadowTex;
+				fixed4 _Color;
+				float _Attenuation;
+
+				fixed4 frag(v2f i) : SV_Target
+				{
+					// Apply alpha mask
+					fixed4 texCookie = tex2Dproj(_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
+					fixed4 outColor = _Color * texCookie.a;
+					// Attenuation
+					float depth = i.uvShadow.z; // [-1 (near), 1 (far)]
+					return outColor * clamp(1.0 - abs(depth) + _Attenuation, 0.0, 1.0);
+				}
+				ENDCG
+			}
+	}
+}

+ 69 - 0
Assets/Resources/Shaders/DottedLineShader.shader

@@ -0,0 +1,69 @@
+// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
+
+Shader "Unlit/DottedLineShader"
+{
+    Properties
+    {
+        _RepeatCount("Repeat Count", float) = 5
+        _Spacing("Spacing", float) = 0.5
+        _Offset("Offset", float) = 0
+    }
+        SubShader
+    {
+        Tags { "RenderType" = "Transparent" "Queue" = "Transparent" }
+        LOD 100
+
+        Blend SrcAlpha OneMinusSrcAlpha
+        ZWrite Off
+
+        Pass
+        {
+            CGPROGRAM
+            #pragma vertex vert
+            #pragma fragment frag
+
+            #include "UnityCG.cginc"
+
+            float _RepeatCount;
+            float _Spacing;
+            float _Offset;
+
+            struct appdata
+            {
+                float4 vertex : POSITION;
+                float2 uv : TEXCOORD0;
+                fixed4 color : COLOR0;
+            };
+
+            struct v2f
+            {
+                float2 uv : TEXCOORD0;
+                float4 vertex : SV_POSITION;
+                fixed4 color : COLOR0;
+            };
+
+            v2f vert(appdata v)
+            {
+                v2f o;
+                o.vertex = UnityObjectToClipPos(v.vertex);
+                o.uv = v.uv;
+                o.uv.x = (o.uv.x + _Offset) * _RepeatCount * (1.0f + _Spacing);
+                o.color = v.color;
+
+                return o;
+            }
+
+            fixed4 frag(v2f i) : SV_Target
+            {
+                i.uv.x = fmod(i.uv.x, 1.0f + _Spacing);
+                float r = length(i.uv - float2(1.0f + _Spacing, 1.0f) * 0.5f) * 2.0f;
+
+                fixed4 color = i.color;
+                color.a *= saturate((0.99f - r) * 100.0f);
+
+                return color;
+            }
+            ENDCG
+        }
+    }
+}