• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1uniform sampler2D m_Texture;
2uniform sampler2D m_DepthTexture;
3varying vec2 texCoord;
4
5uniform vec4 m_FogColor;
6uniform float m_FogDensity;
7uniform float m_FogDistance;
8
9vec2 m_FrustumNearFar=vec2(1.0,m_FogDistance);
10const float LOG2 = 1.442695;
11
12void main() {
13       vec4 texVal = texture2D(m_Texture, texCoord);
14       float fogVal =texture2D(m_DepthTexture,texCoord).r;
15       float depth= (2.0 * m_FrustumNearFar.x) / (m_FrustumNearFar.y + m_FrustumNearFar.x - fogVal* (m_FrustumNearFar.y-m_FrustumNearFar.x));
16
17       float fogFactor = exp2( -m_FogDensity * m_FogDensity * depth *  depth * LOG2 );
18       fogFactor = clamp(fogFactor, 0.0, 1.0);
19       gl_FragColor =mix(m_FogColor,texVal,fogFactor);
20
21}