LaplaceFP.cg
上传用户:xhbjoy
上传日期:2014-10-07
资源大小:38068k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. sampler Image : register(s0);
  2. // The Laplace filter approximates the second order derivate,
  3. // that is, the rate of change of slope in the image. It can be
  4. // used for edge detection. The Laplace filter gives negative
  5. // response on the higher side of the edge and positive response
  6. // on the lower side.
  7. // This is the filter kernel:
  8. // 0  1  0
  9. // 1 -4  1
  10. // 0  1  0
  11. float4 Laplace_ps (float2 texCoord: TEXCOORD0,
  12. uniform float scale,
  13. uniform float pixelSize) : COLOR
  14. {
  15.     float2 samples[4] = {
  16.         0, -1,
  17.        -1,  0,
  18.         1,  0,
  19.         0,  1
  20.     };
  21.    float4 laplace = -4 * tex2D(Image, texCoord);
  22.    // Sample the neighbor pixels
  23.    for (int i = 0; i < 4; i++){
  24.       laplace += tex2D(Image, texCoord + pixelSize * samples[i]);
  25.    }
  26.    return (0.5 + scale * laplace);
  27. }