 
 varying vec3 vPositionWorld;
 varying vec3 vPositionView;
-uniform mat4 uInverseViewMatrix;
-uniform mat4 uViewMatrix;
-uniform mat3 uNormalMatrix;
-uniform mat4 uModelMatrix;
+uniform highp mat4 uInverseViewMatrix;
+uniform highp mat4 uViewMatrix;
+uniform highp mat3 uNormalMatrix;
+uniform highp mat4 uModelMatrix;
 
 uniform vec3 uCameraPosition;
 

        AreaLight light = uAreaLights[i];

        //if (length(emissiveColor) == 0.0) {
            indirectArea += evalAreaLight(light, vPositionWorld, normalWorld, diffuseColor, specularColor, roughness); //TEMP: fix roughness
            //indirectArea = evalAreaLight(light, vPositionWorld, normalWorld,roughness); //TEMP: fix roughness
            /*indirectArea = evalAreaLight(light, vPositionView, (uNormalMatrix*normalWorld).xyz, diffuseColor, specularColor, roughness); //TEMP: fix roughness*/
        //}

        vec3 normalRGB = texture2D(uNormalMap, vTexCoord0).rgb;
        vec3 normalMap = normalRGB * 2.0 - 1.0;

        // normalMap.y *= -1.0;
        /*normalMap.x *= -1.0;*/

        vec3 N = normalize(vNormalView);
