Tekkaman

导航

 

Radial Blur

  

  核心代码如下:

 1 v2f vert (appdata_img v) 
 2 { 
 3     v2f o; 
 4     o.pos = mul(UNITY_MATRIX_MVP, v.vertex); 
 5     o.uv = v.texcoord.xy; 
 6     return o; 
 7 }
 8 
 9 float4 frag (v2f i) : COLOR 
10 { 
11     float2 texCoord = i.uv; 
12     float2 dir = 0.5 – texCoord; 
13     float dist = length(dir); 
14     dir /= dist; 
15     float4 color = tex2D(_MainTex, texCoord); 
16     float4 sum = color;
17 
18     float samples[10] = float[](-0.08,-0.05,-0.03,-0.02,-0.01,0.01,0.02,0.03,0.05,0.08);
19 
20     for (int i = 0; i < 10; ++i)  
21     {  
22         sum += tex2D(_MainTex, texCoord + dir*samples[i]*fSampleDist); 
23     }
24 
25     sum /= 11.0; 
26     float t = saturate(dist * fSampleStrength); 
27     return lerp(color, sum, t); 
28 } 

 

参考:

1、http://www.gamerendering.com/2008/12/20/radial-blur-filter/

posted on 2014-12-01 17:57  Tekkaman  阅读(1285)  评论(0编辑  收藏  举报