UV = ViewportUVToBufferUV(UV);
float3 blur = SceneTextureLookup(UV, 14, false);
float numX = 0;
float numY = 0;
for(int i = 0; i < r; i++)
{
   if(dist.x!=0)
   {
       blur += SceneTextureLookup(UV+float2(i*dist.x, 0), 14, false);
       blur += SceneTextureLookup(UV-float2(i*dist.x, 0), 14, false);
       numX = 2;
   }

   if(dist.y!=0)
   {
       blur += SceneTextureLookup(UV+float2(0, i*dist.y), 14, false);
       blur += SceneTextureLookup(UV-float2(0, i*dist.y), 14, false);
       numY = 2;
    }
}

blur /= (numX+numY)*r+1;
return blur;

更多推荐