XBlurShader.sha 1.0 KB

12345678910111213141516171819202122232425262728
  1. //Cg
  2. //
  3. //Cg profile arbvp1 arbfp1
  4. void vshader(float4 vtx_position : POSITION,
  5. float2 vtx_texcoord0 : TEXCOORD0,
  6. out float4 l_position : POSITION,
  7. out float2 l_texcoord0 : TEXCOORD0,
  8. uniform float4x4 mat_modelproj)
  9. {
  10. l_position=mul(mat_modelproj, vtx_position);
  11. l_texcoord0=vtx_texcoord0;
  12. }
  13. void fshader(float2 l_texcoord0 : TEXCOORD0,
  14. out float4 o_color : COLOR,
  15. uniform sampler2D tex_0 : TEXUNIT0)
  16. {
  17. float3 offset = float3(1.0/1024.0, 5.0/1024.0, 9.0/1024.0);
  18. o_color = tex2D(tex_0, float2(l_texcoord0.x - offset.z, l_texcoord0.y)) * 5.0;
  19. o_color += tex2D(tex_0, float2(l_texcoord0.x - offset.y, l_texcoord0.y)) * 8.0;
  20. o_color += tex2D(tex_0, float2(l_texcoord0.x - offset.x, l_texcoord0.y)) * 10.0;
  21. o_color += tex2D(tex_0, float2(l_texcoord0.x + offset.x, l_texcoord0.y)) * 10.0;
  22. o_color += tex2D(tex_0, float2(l_texcoord0.x + offset.y, l_texcoord0.y)) * 8.0;
  23. o_color += tex2D(tex_0, float2(l_texcoord0.x + offset.z, l_texcoord0.y)) * 5.0;
  24. o_color = o_color * 0.030;
  25. }