Sha256: 2421e76c44195144e27bb4371536f4378f233aa831bf138d8ad35886cdc8d646

Contents?: true

Size: 684 Bytes

Versions: 12

Compression:

Stored size: 684 Bytes

Contents

const float LOG2 = 1.442695;

void main(inout vec4 ambient, inout vec4 diffuse, inout vec4 specular) {
  float fog;
  float distance = length(gl_FragCoord.z / gl_FragCoord.w);

  if (Algorithm == <%=Jax.LINEAR%>) {
    fog = (End - distance) * Scale;
  } else if (Algorithm == <%=Jax.EXPONENTIAL%>) {
    fog = exp(-Density * distance);
  } else if (Algorithm == <%=Jax.EXP2%>) {
    fog = exp2(-Density * Density * distance * distance * LOG2);
  } else {
    /* error condition, output red */
    ambient = diffuse = specular = vec4(1,0,0,1);
    return;
  }

  fog = clamp(fog, 0.0, 1.0);
  
  ambient  = mix(FogColor,  ambient,  fog);
  diffuse  = mix(FogColor,  diffuse,  fog);
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jax-1.0.1.rc1 builtin/shaders/fog/fragment.ejs
jax-1.0.0 builtin/shaders/fog/fragment.ejs
jax-0.0.0.10 builtin/shaders/fog/fragment.ejs
jax-0.0.0.9 builtin/shaders/fog/fragment.ejs
jax-0.0.0.8 builtin/shaders/fog/fragment.ejs
jax-0.0.0.7 builtin/shaders/fog/fragment.ejs
jax-0.0.0.6 builtin/shaders/fog/fragment.ejs
jax-0.0.0.5 builtin/shaders/fog/fragment.ejs
jax-0.0.0.4 builtin/shaders/fog/fragment.ejs
jax-0.0.0.3 builtin/shaders/fog/fragment.ejs
jax-0.0.0.2 builtin/shaders/fog/fragment.ejs
jax-0.0.0.1 builtin/shaders/fog/fragment.ejs