t1 / TFDContents / Assets / Resources / BlurShader5.shader @ 9
이력 | 보기 | 이력해설 | 다운로드 (1.24 KB)
1 | 3 | KTH | // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' |
---|---|---|---|
2 | |||
3 | Shader "Custom/BlurShader5" { |
||
4 | Properties { _MainTex ("", any) = "" {} } |
||
5 | CGINCLUDE |
||
6 | #include "UnityCG.cginc" |
||
7 | struct v2f { |
||
8 | float4 pos : SV_POSITION; |
||
9 | half2 uv : TEXCOORD0; |
||
10 | half2 taps[4] : TEXCOORD1; |
||
11 | }; |
||
12 | sampler2D _MainTex; |
||
13 | half4 _MainTex_TexelSize; |
||
14 | half4 _BlurOffsets; |
||
15 | v2f vert( appdata_img v ) { |
||
16 | v2f o; |
||
17 | o.pos = UnityObjectToClipPos(v.vertex); |
||
18 | o.uv = v.texcoord - _BlurOffsets.xy * _MainTex_TexelSize.xy; // hack, see BlurEffect.cs for the reason for this. let's make a new blur effect soon |
||
19 | o.taps[0] = o.uv + _MainTex_TexelSize * _BlurOffsets.xy; |
||
20 | o.taps[1] = o.uv - _MainTex_TexelSize * _BlurOffsets.xy; |
||
21 | o.taps[2] = o.uv + _MainTex_TexelSize * _BlurOffsets.xy * half2(1,-1); |
||
22 | o.taps[3] = o.uv - _MainTex_TexelSize * _BlurOffsets.xy * half2(1,-1); |
||
23 | return o; |
||
24 | } |
||
25 | half4 frag(v2f i) : SV_Target { |
||
26 | half4 color = tex2D(_MainTex, i.taps[0]); |
||
27 | color += tex2D(_MainTex, i.taps[1]); |
||
28 | color += tex2D(_MainTex, i.taps[2]); |
||
29 | color += tex2D(_MainTex, i.taps[3]); |
||
30 | return color * 0.25; |
||
31 | } |
||
32 | ENDCG |
||
33 | SubShader { |
||
34 | Pass { |
||
35 | ZTest Always Cull Off ZWrite Off |
||
36 | |||
37 | CGPROGRAM |
||
38 | #pragma vertex vert |
||
39 | #pragma fragment frag |
||
40 | ENDCG |
||
41 | } |
||
42 | } |
||
43 | Fallback off |
||
44 | } |