diff --git a/src/libRender/RadiumNBR/Shaders/ImageProcessingPass/ImageProcess.frag.glsl b/src/libRender/RadiumNBR/Shaders/ImageProcessingPass/ImageProcess.frag.glsl
index 721692b5bf3d07c636f35569efc1eebe65ce46a4..0183a63f3d351b7c1cc7310b02766bd682deb5e8 100644
--- a/src/libRender/RadiumNBR/Shaders/ImageProcessingPass/ImageProcess.frag.glsl
+++ b/src/libRender/RadiumNBR/Shaders/ImageProcessingPass/ImageProcess.frag.glsl
@@ -54,11 +54,47 @@ vec4 lic(in sampler2D desc,in bool invertdir) {
 
 */
 
+vec4 lic(in sampler2D desc,in bool invertdir, in vec2 imgSize) {
+    const int halfsize = 10;
+    vec2 coord = varTexcoord;
+    vec2 dir = texture(desc,coord).xy;
+    if ( length(dir) <0.0001 )
+        return vec4(0);
+    if(invertdir)
+        dir = vec2(dir.y,-dir.x);
+    float res = whiteNoise( dir, imgSize);
+
+    vec2 currentdir = dir;
+
+    for(int i=1;i<=halfsize;i++) {
+        coord  = coord + currentdir;//*halfsize;
+        currentdir = texture(desc,coord).xy;
+        res   += whiteNoise( currentdir, imgSize);
+        if(invertdir)
+            currentdir = vec2(currentdir.y,-currentdir.x);
+    }
+
+    coord = varTexcoord;
+    currentdir = dir;
+    for(int i=1;i<=halfsize;i++) {
+        coord  = coord - currentdir;//*halfsize;
+        currentdir = texture(desc,coord).xy;
+        res   += whiteNoise( currentdir, imgSize);
+        if(invertdir)
+            currentdir = vec2(currentdir.y,-currentdir.x);
+    }
+    res = res/(2.0f*float(halfsize)+1.0f);
+    return vec4(vec3(res), 0);
+}
+
+
+
 void main() {
+    vec2 imgSize = vec2(textureSize(image_sampler, 0));
     /*
     // 4x4 filtering for test
     const int half_width = 2;
-    vec2 texelSize = 1.0 / vec2(textureSize(image_sampler, 0));
+    vec2 texelSize = 1.0 / vec2(imgSize);
     vec3 result = vec3(0.0);
     for (int x = -half_width; x < half_width; ++x)
     {
@@ -70,8 +106,10 @@ void main() {
     }
     out_color = vec4(result / (4 * half_width * half_width), 1);
     */
-
-    vec2 imgSize = vec2(textureSize(image_sampler, 0));
+    /*
     out_color = vec4( vec3( whiteNoise( varTexcoord, imgSize) ), 1);
+    */
+    out_color = lic(image_sampler, false, imgSize);
+
 }