     // attenuation
     float fDivisor = 1.0 +     fDistance * 0.05 +
                      pow(fDistance, 2.0) * 0.03 +
-                     pow(fDistance, 3.0) * 0.01 +
-                     pow(fDistance, 4.0) * 0.00;
+                     pow(fDistance, 3.0) * 0.01;
     float fAttenuation = 1.0 / fDivisor;
 
     // ambient

#version 150
precision highp float;

uniform sampler2D u_sDiffuse;
uniform sampler2D u_sNormalHeight;
uniform sampler2D u_sSpecular;

uniform mat4 u_matProjection;
uniform mat4 u_matModelView;
uniform mat4 u_matObjectModelView;

smooth in vec3 v_vNormal;
smooth in vec2 v_vTexCoord;

void main(void)
{
    // parallax occlusion mapping
    vec2 vTexCoord = parallax_occlusion_mapping(u_sNormalHeight, v_vTexCoord, v_vTEye, v_vTNormal, 0.15, 64, 16);

    // normal mapping
    vec3 vNormal = normal_mapping(u_sNormalHeight, vTexCoord);

    // lighting

    float fDistance = length(v_vTLight);
    vec3 vLight = normalize(v_vTLight);
