#version 410
#pragma include "filter_common.glsl"

void main() {
    if (fogDensity > 0.0) {
        float depth = texture(p3d_Texture1, uv).r;
        float fogFactor = exp(-pow(fogDensity * depth, 2.0));
        vec4 fogColor = vec4(fogColorR, fogColorG, fogColorB, 1.0);
        p3d_FragColor = mix(fogColor, texture(p3d_Texture0, uv), fogFactor);
    } else {
        p3d_FragColor = texture(p3d_Texture0, uv);
    }

    // WBOIT
//    vec4 weightedColor = texture(p3d_Texture0, uv);
//    float weight = texture(p3d_Texture2, uv).r;
//    vec3 finalColor = weightedColor.rgb / weight;
//    p3d_FragColor = vec4(finalColor, 1.0);
//    }
//    p3d_FragColor = texture(p3d_Texture0, uv);
//    p3d_FragColor = vec4(gl_FragCoord.z, p3d_FragColor.gb, 1.0);
//    p3d_FragColor = vec4(vec3(gl_FragCoord.z / 10.), 1.0);
//    p3d_FragColor = vec4(vec3(gl_FragCoord.z / 1.), 1.0);

}