     vec3 emissiveColor = getEmissiveColor();
     float roughness = getRoughness();
     float metallic = getMetallic();
-    vec3 irradianceColor = getIrradiance(eyeDirWorld, normalWorld);
-    vec3 reflectionColor = getPrefilteredReflection(eyeDirWorld, normalWorld, roughness);
 
     vec3 F0 = vec3(abs((1.0 - uIor) / (1.0 + uIor)));
     F0 = F0 * F0; //0.04 is default for non-metals in UE4
     F0 = mix(F0, baseColor, metallic);
 
-    float NdotV = saturate( dot( normalWorld, eyeDirWorld ) );
-    vec3 reflectance = EnvBRDFApprox( F0, roughness, NdotV );
-
     vec3 diffuseColor = baseColor * (1.0 - metallic);
     vec3 specularColor = mix(vec3(1.0), baseColor, metallic);
     
+    vec3 indirectDiffuse = vec3(0.0);
+    vec3 indirectSpecular = vec3(0.0);
+    vec3 directDiffuse = vec3(0.0);
+    vec3 directSpecular = vec3(0.0);
+
     //TODO: No kd? so not really energy conserving
     //we could use disney brdf for irradiance map to compensate for that like in Frostbite
-    vec3 indirectDiffuse = diffuseColor * irradianceColor;
-    vec3 indirectSpecular = reflectionColor * specularColor * reflectance;
-
-    vec3 directDiffuse = vec3(0.0);
-    vec3 directSpecular = vec3(0.0);
+#ifdef USE_REFLECTION_PROBES
+    float NdotV = saturate( dot( normalWorld, eyeDirWorld ) );
+    vec3 reflectance = EnvBRDFApprox( F0, roughness, NdotV );
+    vec3 irradianceColor = getIrradiance(eyeDirWorld, normalWorld);
+    vec3 reflectionColor = getPrefilteredReflection(eyeDirWorld, normalWorld, roughness);
+    indirectDiffuse = diffuseColor * irradianceColor;
+    indirectSpecular = reflectionColor * specularColor * reflectance;
+
+#endif
 
     //lights
 #if NUM_DIRECTIONAL_LIGHTS > 0

  return specular;
}

void main() {
    vec3 normalWorld = getNormal();
    vec3 eyeDirWorld = normalize(vEyeDirWorld);

    }
#endif

    vec3 indirectArea = vec3(0.0);

#if NUM_AREA_LIGHTS > 0
    for(int i=0; i<NUM_AREA_LIGHTS; i++) {
        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*/
        //}
    }
#endif

    vec3 color = emissiveColor + indirectDiffuse + indirectSpecular + directDiffuse + directSpecular + indirectArea;
    /*vec3 color = indirectArea;*/
    //color = emissiveColor + indirectArea;
    /*color.r = 1.0;*/
    gl_FragData[0] = vec4(color, 1.0);
    gl_FragData[1] = vec4(vNormalView * 0.5 + 0.5, 1.0);
