Browse Source

LightScatteringFilter : changed the way the light shafts are blended into the original scene.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@11057 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
rem..om 12 years ago
parent
commit
826900a5d3

+ 2 - 1
engine/src/core-effects/Common/MatDefs/Post/LightScattering.frag

@@ -29,7 +29,8 @@ void main(void)
         res /= m_NbSamples;
 
         //Blend the original color with the averaged pixels
-        gl_FragColor =mix( colorRes, res, m_LightDensity);
+        float mean = (res.r + res.g + res.b)/3;
+        fragColor =mix(colorRes ,mix( colorRes, res, m_LightDensity),mean);   
     }else{
         gl_FragColor= texture2D(m_Texture,texCoord);
     }

+ 4 - 3
engine/src/core-effects/Common/MatDefs/Post/LightScattering15.frag

@@ -28,12 +28,13 @@ void main(void)
             scaledCoord=texCoo*scale + m_LightPosition.xy;            
             if(fetchTextureSample(m_DepthTexture, scaledCoord,0).r==1.0){
                 res += fetchTextureSample(m_Texture,scaledCoord,0);
+                }
             }
-        }
         res /= m_NbSamples;
-
+        
         //Blend the original color with the averaged pixels
-        fragColor = mix( colorRes, res, m_LightDensity);
+        float mean = (res.r + res.g + res.b)/3;
+        fragColor =mix(colorRes ,mix( colorRes, res, m_LightDensity),mean);        
     }else{
         fragColor = getColor(m_Texture,texCoord);
     }