| 
                Last change
                  on this file since 12091 was
                  12091,
                  checked in by wiesep, 7 years ago
           | 
        
        
          | 
               
Updated programs and adjusted Material to work with GLSL>150 
 
           | 
        
        | 
            File size:
            862 bytes
           | 
      
      
        
  | Line |   | 
|---|
| 1 | #version 150 | 
|---|
| 2 |  | 
|---|
| 3 | uniform sampler2D Image; | 
|---|
| 4 | uniform float scale; | 
|---|
| 5 | uniform float pixelSize; | 
|---|
| 6 | in vec2 oUv0; | 
|---|
| 7 | out vec4 fragColour; | 
|---|
| 8 |  | 
|---|
| 9 | // The Laplace filter approximates the second order derivate, | 
|---|
| 10 | // that is, the rate of change of slope in the image. It can be | 
|---|
| 11 | // used for edge detection. The Laplace filter gives negative | 
|---|
| 12 | // response on the higher side of the edge and positive response | 
|---|
| 13 | // on the lower side. | 
|---|
| 14 |  | 
|---|
| 15 | // This is the filter kernel: | 
|---|
| 16 | // 0  1  0 | 
|---|
| 17 | // 1 -4  1 | 
|---|
| 18 | // 0  1  0 | 
|---|
| 19 |  | 
|---|
| 20 | void main() | 
|---|
| 21 | { | 
|---|
| 22 |     vec2 samples[4]; | 
|---|
| 23 |         samples[0] = vec2(0, -1); | 
|---|
| 24 |         samples[1] = vec2(-1, 0); | 
|---|
| 25 |         samples[2] = vec2(1, 0); | 
|---|
| 26 |         samples[3] = vec2(0, 1); | 
|---|
| 27 |  | 
|---|
| 28 |     mediump vec4 tc = texture(Image, oUv0); | 
|---|
| 29 |     vec4 laplace = -4.0 * tc; | 
|---|
| 30 |  | 
|---|
| 31 |     // Sample the neighbor pixels | 
|---|
| 32 |     for (int i = 0; i < 4; i++){ | 
|---|
| 33 |        laplace += texture(Image, oUv0 + pixelSize * samples[i]); | 
|---|
| 34 |     } | 
|---|
| 35 |  | 
|---|
| 36 |     fragColour = (0.5 + scale * laplace); | 
|---|
| 37 | } | 
|---|
| 38 |  | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.