diff options
author | chai <chaifix@163.com> | 2022-06-20 16:49:52 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-06-20 16:49:52 +0800 |
commit | a2a8be2377da72280f6e548fba744ebd2db2b044 (patch) | |
tree | 8a2e961a351304657316897a9ecd5957b6558505 /Erika/Assets/Resources/Shaders | |
parent | be1c5383baf7b3e262f2d19fe47d87c2a45b5dcb (diff) |
* rename Bundle -> Resources
Diffstat (limited to 'Erika/Assets/Resources/Shaders')
34 files changed, 1021 insertions, 0 deletions
diff --git a/Erika/Assets/Resources/Shaders/Common.meta b/Erika/Assets/Resources/Shaders/Common.meta new file mode 100644 index 00000000..bb87a51a --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 174b504a5d32cf84daeee290b8470ff1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image.meta b/Erika/Assets/Resources/Shaders/Common/Image.meta new file mode 100644 index 00000000..abeda856 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c4f83cfe782b4d6408644387c887b5f9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc new file mode 100644 index 00000000..ede53e55 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc @@ -0,0 +1,45 @@ +// UnitLensEffect效果相关 + +sampler2D _MainTex; +float4 _MainTex_ST; + +sampler2D _CameraDepthTexture; +float4 _CameraDepthTexture_ST; + +sampler2D _UnitDepthTexture; // 配合_CameraDepthTexture定位角色 +float4 _UnitDepthTexture_ST; + +sampler2D _UnitWorldNormalTexture; +float4 _UnitWorldNormalTexture_ST; + +sampler2D _UnitMotionVectorTexture; +float4 _UnitMotionVectorTexture_ST; + +float4 _UnitTileOffset; + +// 只对一小部分进行后处理 +float4 CalculateUnitTillOfssetVertex(float4 vert) +{ + float4 v = float4(vert.xy * _UnitTileOffset.xy + _UnitTileOffset.zw, 0, 1); + v.xy = v.xy * 2 - float2(1,1); + return v; +} + +fixed2 CalculateUnitTillOfssetUV(fixed2 uv0) +{ + return uv0 * _UnitTileOffset.xy + _UnitTileOffset.zw; +} + +struct image_v2f +{ + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; +}; + +image_v2f image_vert(appdata_img v) +{ + image_v2f o; + o.vertex = CalculateUnitTillOfssetVertex(v.vertex); + o.uv = CalculateUnitTillOfssetUV(TRANSFORM_TEX(v.texcoord, _MainTex)); + return o; +} diff --git a/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc.meta b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc.meta new file mode 100644 index 00000000..8a4c56b7 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7d761d98009111740b1e65e517a71aa5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc b/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc new file mode 100644 index 00000000..ffe5bc11 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc @@ -0,0 +1,18 @@ + +// 迭代一次 +fixed4 blur(sampler2D tex, float2 texSize, fixed2 uv, float spread = 1) +{ + fixed2 step = 1 / texSize; + const fixed weight = 0.1111111; + fixed4 color = fixed4(0, 0, 0, 0); + color += tex2D(tex, uv + spread * fixed2(-step.x, step.y)) * weight; + color += tex2D(tex, uv + spread * fixed2(0, step.y)) * weight; + color += tex2D(tex, uv + spread * fixed2(step.x, step.y)) * weight; + color += tex2D(tex, uv + spread * fixed2(-step.x, 0)) * weight; + color += tex2D(tex, uv) * weight; + color += tex2D(tex, uv + spread * fixed2(step.x, 0)) * weight; + color += tex2D(tex, uv + spread * fixed2(-step.x, -step.y)) * weight; + color += tex2D(tex, uv + spread * fixed2(0, -step.y)) * weight; + color += tex2D(tex, uv + spread * fixed2(step.x, -step.y)) * weight; + return color; +} diff --git a/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc.meta b/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc.meta new file mode 100644 index 00000000..d5b4db71 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/ImageHelper.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6186a4071ad9eeb488a67f940291bb9d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader b/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader new file mode 100644 index 00000000..89102da7 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader @@ -0,0 +1,70 @@ +锘// 楂樻柉妯$硦 + +Shader "Erika/Common/Image/Blur" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _Angle("Angle", float) = 0 + _Distance("Distance", float) = 0 + _UnitTileOffset("TileOffset", Vector) = (1,1,0,0) + _Iterate("Iterate Count", float) = 1 + } + + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend SrcAlpha OneMinusSrcAlpha + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + #include "./ImageEffect.cginc" + #include "./ImageHelper.cginc" + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + float _Angle; + + fixed _Distance; + + float _Iterate; + + v2f vert(appdata_img v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + _Angle = 0; + _Distance = 0; + + fixed2 uv = i.uv; + + fixed4 color = blur(_MainTex, _ScreenParams.xy, uv); + + return color; + } + ENDCG + } + } + +} // shader diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader.meta b/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader.meta new file mode 100644 index 00000000..8053135d --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_blur.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 582d2065809e3814c98b6f0806996415 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader b/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader new file mode 100644 index 00000000..929a57b7 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader @@ -0,0 +1,65 @@ +锘// 铚傞福 + +Shader "Erika/Common/Image/Buzz" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _UnitTileOffset("TileOffset", Vector) = (1,1,0,0) + } + + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend One Zero + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + #include "./ImageEffect.cginc" + #include "./ImageHelper.cginc" + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + v2f vert(appdata_img v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed2 uv = i.uv; + float depth0 = tex2D(_CameraDepthTexture, uv).r; + float depth1 = tex2D(_UnitDepthTexture, uv).r; + + fixed4 color = tex2D(_MainTex, uv); + + if (abs(depth0 - depth1) < 0.001f && depth1 != 1) + { + color.r = 1; + } + + return color; + } + ENDCG + } + } + +} // shader diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader.meta b/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader.meta new file mode 100644 index 00000000..310221ef --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_buzz.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 506516fea7a699443b904c0221d860f7 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader b/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader new file mode 100644 index 00000000..d3a67ca9 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader @@ -0,0 +1,65 @@ +锘// 鍔ㄦ佹ā绯 + +Shader "Erika/Common/Image/MotionBlur" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _Angle("Angle", float) = 0 + _Distance("Distance", float) = 0 + _UnitTileOffset("TileOffset", Vector) = (1,1,0,0) + _Iterate("Iterate Count", float) = 1 + } + + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend SrcAlpha OneMinusSrcAlpha + + Pass + { + CGPROGRAM + #pragma vertex image_vert + #pragma fragment frag + + #include "UnityCG.cginc" + #include "./ImageEffect.cginc" + + float _Angle; + fixed _Distance; + float _Iterate; // 杩唬娆℃暟 + float _AlphaMultiplier; // + + fixed4 frag(image_v2f i) : SV_Target + { + _Distance = 0.1; + + fixed2 uv0 = i.uv; + + fixed4 color = fixed4(0,0,0,0); + const float count = 20; + float step = _Distance / count; + float amount = 0.2f; + for(int i = 0; i < count; ++i) + { + fixed2 uv = uv0 + step * i * fixed2(cos(radians(_Angle)), sin(radians(_Angle))); + if(uv.x > 1) continue; + if(uv.x < 0) continue; + float weight = amount - amount * ((float)i / (float)count); + color += tex2D(_MainTex, uv) * weight; + } + + color.a *= _AlphaMultiplier; + + return color; + } + ENDCG + } + } + +} // shader diff --git a/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader.meta b/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader.meta new file mode 100644 index 00000000..cc5320fa --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/common_img_motionblur.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d68c264cf01a43b4c8503bd7bbe2fbda +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader b/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader new file mode 100644 index 00000000..c682d8fa --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader @@ -0,0 +1,113 @@ +锘縎hader "Erika/Common/GBuffer"
+{
+ //unity鍙傛暟鍏ュ彛 + Properties + { + _MainTex("璐村浘",2D) = "white"{} + _Diffuse("婕弽灏",Color) = (1,1,1,1) + _Specular("楂樺厜鑹",Color) = (1,1,1,1) + _Gloss("骞虫粦搴",Range(1,100)) = 50 + } + + SubShader + { + //闈為忔槑闃熷垪 + Tags { "RenderType" = "Opaque" } + LOD 100 + //寤惰繜娓叉煋 + Pass + { + //璁剧疆 鍏夌収妯″紡涓哄欢杩熸覆鏌 + Tags{"LightMode" = "Deferred"} + CGPROGRAM + // 澹版槑椤剁偣鐫鑹插櫒銆佺墖鍏冪潃鑹插櫒鍜岃緭鍑虹洰鏍 + #pragma target 3.0 + #pragma vertex vert + #pragma fragment frag + //鎺掗櫎涓嶆敮鎸丮RT鐨勭‖浠 + //#pragma exclude_renderers norm + // unity 鍑芥暟搴 + #include"UnityCG.cginc" + //瀹氫箟UNITY_HDR_ON鍏抽敭瀛 + //鍦╟# 涓 Shader.EnableKeyword("UNITY_HDR_ON"); Shader.DisableKeyword("UNITY_HDR_ON"); + // 璁惧畾hdr鏄惁寮鍚 + #pragma multi_compile __ UNITY_HDR_ON + // 璐村浘 + sampler2D _MainTex; + // 棰樺浘uv澶勭悊 + float4 _MainTex_ST; + // 婕弽灏勫厜 + float4 _Diffuse; + // 楂樺厜 + float4 _Specular; + // 骞虫粦搴 + float _Gloss; + // 椤剁偣娓叉煋鍣ㄦ墍浼犲叆鐨勫弬鏁扮粨鏋勶紝鍒嗗埆鏄《鐐逛綅缃佹硶绾夸俊鎭乽v鍧愭爣 + struct a2v + { + float4 pos:POSITION; + float3 normal:NORMAL; + float2 uv:TEXCOORD0; + }; + // 鐗囧厓娓叉煋鍣ㄦ墍闇鐨勪紶鍏ュ弬鏁扮粨鏋勶紝鍒嗗埆鏄儚绱犱綅缃乽v鍧愭爣銆佸儚绱犱笘鐣屼綅缃佸儚绱犱笘鐣屾硶绾 + struct v2f + { + float4 pos:SV_POSITION; + float2 uv : TEXCOORD0; + float3 worldPos:TEXCOORD1; + float3 worldNormal:TEXCOORD2; + }; + // 寤惰繜娓叉煋鎵闇鐨勮緭鍑虹粨鏋勩傛鍚戞覆鏌撳彧闇瑕佽緭鍑1涓猅arget锛岃屽欢杩熸覆鏌撶殑鐗囧厓闇瑕佽緭鍑4涓猅arget + struct DeferredOutput + { + //// RGB瀛樺偍婕弽灏勯鑹诧紝A閫氶亾瀛樺偍閬僵 + //float4 gBuffer0:SV_TARGET0; + //// RGB瀛樺偍楂樺厜锛堥暅闈級鍙嶅皠棰滆壊锛孉閫氶亾瀛樺偍楂樺厜鍙嶅皠鐨勬寚鏁伴儴鍒嗭紝涔熷氨鏄钩婊戝害 + //float4 gBuffer1:SV_TARGET1; + //// RGB閫氶亾瀛樺偍涓栫晫绌洪棿娉曠嚎锛孉閫氶亾娌$敤 + //float4 gBuffer2:SV_TARGET2; + //// Emission + lighting + lightmaps + reflection probes (楂樺姩鎬佸厜鐓ф覆鏌/浣庡姩鎬佸厜鐓ф覆鏌)鐢ㄤ簬瀛樺偍鑷彂鍏+lightmap+鍙嶅皠鎺㈤拡娣卞害缂撳啿鍜屾ā鏉跨紦鍐 + //float4 gBuffer3:SV_TARGET3; + float4 normal : SV_TARGET0; + float4 position : SV_TARGET1; + }; + // 椤剁偣娓叉煋鍣 + v2f vert(a2v v) + { + v2f o; + // 鑾峰彇瑁佸壀绌洪棿涓嬬殑椤剁偣鍧愭爣 + o.pos = UnityObjectToClipPos(v.pos); + // 搴旂敤uv璁剧疆锛岃幏鍙栨纭殑uv + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + // 鑾峰彇椤剁偣鐨勪笘鐣屽潗鏍 + o.worldPos = mul(unity_ObjectToWorld, v.pos).xyz; + // 鑾峰彇涓栫晫鍧愭爣涓嬬殑娉曠嚎 + o.worldNormal = UnityObjectToWorldNormal(v.normal); + return o; + } + // 鐗囧厓鐫鑹插櫒 + DeferredOutput frag(v2f i) + { + DeferredOutput o; + //// 鍍忕礌棰滆壊 = 璐村浘棰滆壊 * 婕弽灏勯鑹 + //fixed3 color = tex2D(_MainTex, i.uv).rgb * _Diffuse.rgb; + //// 榛樿浣跨敤楂樺厜鍙嶅皠杈撳嚭锛侊紒 + //o.gBuffer0.rgb = color; // RGB瀛樺偍婕弽灏勯鑹诧紝A閫氶亾瀛樺偍閬僵 + //o.gBuffer0.a = 1; // 婕弽灏勭殑閫忔槑搴 + //o.gBuffer1.rgb = _Specular.rgb; // RGB瀛樺偍楂樺厜锛堥暅闈級鍙嶅皠棰滆壊锛 + //o.gBuffer1.a = _Gloss / 100; // 楂樺厜锛堥暅闈級鍙嶅皠棰滆壊 鐨 + //o.gBuffer2 = float4(i.worldNormal * 0.5 + 0.5, 1); // RGB閫氶亾瀛樺偍涓栫晫绌洪棿娉曠嚎锛孉閫氶亾娌$敤 + //// 濡傛灉娌″紑鍚疕DR锛岃缁欓鑹茬紪鐮佽浆鎹竴涓嬫暟鎹甧xp2锛屽悗闈㈠湪lightpass2閲屽垯鏄繘琛岃В鐮乴og2 + //#if !defined(UNITY_HDR_ON) + // color.rgb = exp2(-color.rgb); + //#endif + //// Emission + lighting + lightmaps + reflection probes (楂樺姩鎬佸厜鐓ф覆鏌/浣庡姩鎬佸厜鐓ф覆鏌)鐢ㄤ簬瀛樺偍鑷彂鍏+lightmap+鍙嶅皠鎺㈤拡娣卞害缂撳啿鍜屾ā鏉跨紦鍐 + //o.gBuffer3 = fixed4(color, 1); + o.normal = float4(i.worldNormal * 0.5 + 0.5, 1); + o.position = float4(i.worldPos, 1); + return o; + } + ENDCG + } + } +}
diff --git a/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader.meta b/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader.meta new file mode 100644 index 00000000..b40b2f5a --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/common_gbuffer.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1bb32fe6a2152fc45b9badd5cf9ed7ed +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader b/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader new file mode 100644 index 00000000..69b25500 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader @@ -0,0 +1,82 @@ +锘縎hader "Erika/Common/SolidColor" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _Color("Color", Color) = (1,1,1,1) + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + + ZTest LEqual + ZWrite On + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + float4 screenPos : TEXCOORD2; + }; + + fixed4 _Color; + + sampler2D_float _CameraDepthTexture; + + float4x4 _ObjectToWorld; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityWorldToClipPos(mul(_ObjectToWorld, v.vertex)); + //o.vertex = UnityWorldToClipPos(mul(unity_ObjectToWorld, v.vertex)); + o.screenPos = ComputeScreenPos(o.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float4 c = float4(0, 0, 0, 0); + + float2 uv = i.screenPos.xy / i.screenPos.w; // normalized screen-space pos + float camDepth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv); + camDepth = Linear01Depth(camDepth); // converts z buffer value to depth value from 0..1 + + float depth = i.screenPos.z / i.screenPos.w; +#if !UNITY_UV_STARTS_AT_TOP//OpenGL骞冲彴闇瑕佹墜鍔ㄥ皢[-1,1]鏄犲皠鍒癧0,1]妯℃嫙glDepthRange(0,1) + depth = (depth + 1) / 2; +#endif + depth = Linear01Depth(depth); + + float diff = saturate(depth - camDepth); + if (diff < 0.0001) + { + c = _Color; + c = tex2D(_MainTex, i.uv); + } + + return c; + } + ENDCG + } + } +} diff --git a/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader.meta b/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader.meta new file mode 100644 index 00000000..c0777cb0 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/common_solid_color.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e7ee93f26e570c24cbdef0b6ad1f461d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Include.meta b/Erika/Assets/Resources/Shaders/Include.meta new file mode 100644 index 00000000..2666365a --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Include.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc32af12c5122994d8791378227adeb6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit.meta b/Erika/Assets/Resources/Shaders/Unit.meta new file mode 100644 index 00000000..89d2c14a --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d36f5381375ddc9418eb84c9a97dbb4b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/Common.meta b/Erika/Assets/Resources/Shaders/Unit/Common.meta new file mode 100644 index 00000000..0f29291c --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2873cd4cc2d0bfa4bbb17ad11144a488 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader b/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader new file mode 100644 index 00000000..075aec39 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader @@ -0,0 +1,64 @@ +锘縎hader "Erika/Unit/Common/Depth" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Geometry" } + LOD 100 +/* + Pass + { + Name "ShadowCaster" + Tags{"LightMode" = "ShadowCaster"} + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_shadowcaster + #include "UnityCG.cginc" + + struct v2f + { + V2F_SHADOW_CASTER; + }; + + v2f vert(appdata_base v) + { + v2f o; + TRANSFER_SHADOW_CASTER_NORMALOFFSET(o) + return o; + } + + float4 frag(v2f i) :SV_Target + { + SHADOW_CASTER_FRAGMENT(i) + } + + ENDCG + + }*/ + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + Cull Back + ZWrite On + ZTest LEqual + + CGPROGRAM + #pragma target 3.0 + #pragma multi_compile _ _ALPHATEST_ON _ALPHABLEND_ON + #pragma multi_compile_shadowcaster + #pragma vertex vertShadowCaster + #pragma fragment fragShadowCaster + #include "UnityStandardShadow.cginc" + ENDCG + } + + } +} diff --git a/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader.meta b/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader.meta new file mode 100644 index 00000000..0de1fc19 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/Common/unit_common_depth.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ff6fd35dfc3c1104c875126ac78274b6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/Effect.meta b/Erika/Assets/Resources/Shaders/Unit/Effect.meta new file mode 100644 index 00000000..7df9a033 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/Effect.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cc4684b9f432f149b16a51f148c9490 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect.meta b/Erika/Assets/Resources/Shaders/Unit/ImageEffect.meta new file mode 100644 index 00000000..bba3c4c9 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7557aede65843b24681351bc9fd2eda4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader new file mode 100644 index 00000000..f76b0a91 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader @@ -0,0 +1,58 @@ +锘縎hader "Unlit/unit_effect_colorDrift" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + // make fog work + #pragma multi_compile_fog + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + UNITY_FOG_COORDS(1) + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + // sample the texture + fixed4 col = tex2D(_MainTex, i.uv); + // apply fog + UNITY_APPLY_FOG(i.fogCoord, col); + return col; + } + ENDCG + } + } +} diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader.meta b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader.meta new file mode 100644 index 00000000..d42d528f --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_color_drift.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6e37e3ab4ebfc3a4aa32667859687930 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader new file mode 100644 index 00000000..014d8c52 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader @@ -0,0 +1,65 @@ +锘縎hader "Erika/Unit/ImageEffect/unit_img_glitch"
+{
+ Properties
+ {
+ _MainTex ("Texture", 2D) = "white" {}
+ }
+ SubShader
+ {
+ Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend SrcAlpha OneMinusSrcAlpha +
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ struct appdata
+ {
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float2 uv : TEXCOORD0;
+ float4 vertex : SV_POSITION;
+ };
+
+ sampler2D _MainTex;
+ float4 _MainTex_ST;
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.vertex = UnityObjectToClipPos(v.vertex);
+ o.uv = TRANSFORM_TEX(v.uv, _MainTex);
+ return o;
+ }
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ float amount = 0.05f;
+ // sample the texture
+ float angle = 90;
+ float sinValue = sin(radians(angle));
+ float cosValue = cos(radians(angle));
+ fixed4 col = tex2D(_MainTex, i.uv);
+ fixed4 col2 = tex2D(_MainTex, i.uv + fixed2(amount * sinValue, amount * cosValue));
+ fixed4 col3 = tex2D(_MainTex, i.uv + fixed2(2 * amount * sinValue, 2 * amount * cosValue));
+ fixed4 col4 = ( col.a + col2.a + col3.a ) / 3;
+ fixed4 color = fixed4(col.r, col2.g, col3.b, col4.a);
+ return color;
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader.meta b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader.meta new file mode 100644 index 00000000..f5e3cd72 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_glitch.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f1567ae3bc1c0964cb12b2cf79240e61 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader new file mode 100644 index 00000000..3111369a --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader @@ -0,0 +1,75 @@ +锘// 1:09 https://www.youtube.com/watch?v=LhqI_yj3zO0 +Shader "Erika/Unit/ImageEffect/unit_img_motionBlur" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _Angle("Angle", float) = 0 + _Distance("Distance", float) = 0 + } + SubShader + { + Tags { "RenderType"="Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend SrcAlpha OneMinusSrcAlpha + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + float _Angle; + + fixed _Distance; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + fixed2 uv = i.uv; + fixed2 offset = fixed2(0.05, 0.05); + const float sampleCount = 30; + fixed4 color = fixed4(0,0,0,0); + float radian = radians(_Angle); + float distance = _Distance; + for(int i = 0; i < sampleCount; i++) + { + float dx = distance * cos(radian) / sampleCount * i; + float dy = distance * sin(radian) / sampleCount * i; + color += tex2D(_MainTex,float2(uv.x + dx,uv.y + dy)) * (1 / sampleCount); + } + //color.rgb *= 0.5f; + return color; + } + ENDCG + } + } +} diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader.meta b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader.meta new file mode 100644 index 00000000..4afe3c18 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_motion_blur.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f0e5d0965cb119045abf4f057a692835 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader new file mode 100644 index 00000000..b00673eb --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader @@ -0,0 +1,58 @@ +锘縎hader "Unlit/unit_effect_speedLine" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + // make fog work + #pragma multi_compile_fog + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + UNITY_FOG_COORDS(1) + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + // sample the texture + fixed4 col = tex2D(_MainTex, i.uv); + // apply fog + UNITY_APPLY_FOG(i.fogCoord, col); + return col; + } + ENDCG + } + } +} diff --git a/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader.meta b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader.meta new file mode 100644 index 00000000..37726c12 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/ImageEffect/unit_img_speed_line.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1926c69018f6247438d2babd9d7b4674 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/LensEffect.meta b/Erika/Assets/Resources/Shaders/Unit/LensEffect.meta new file mode 100644 index 00000000..8870549b --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/LensEffect.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ea8530ead06b5646968d268799393e0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader b/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader new file mode 100644 index 00000000..9b8bec4c --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader @@ -0,0 +1,62 @@ +锘//缁橰T鍋氳繍鍔ㄦā绯 + +Shader "Unlit/unit_lens_motion_blur" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + SubShader + { + Tags { "RenderType"="Opaque" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + // make fog work + #pragma multi_compile_fog + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + UNITY_FOG_COORDS(1) + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + float4 _ScaleOffset; // 瑙掕壊鍦≧T涓殑浣嶇疆 + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + // sample the texture + fixed4 col = tex2D(_MainTex, i.uv); + // apply fog + UNITY_APPLY_FOG(i.fogCoord, col); + return col; + } + ENDCG + } + } +} diff --git a/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader.meta b/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader.meta new file mode 100644 index 00000000..896045f9 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Unit/LensEffect/unit_lens_motion_blur.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7e03081c3480da045a4e3fd8050068ea +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: |