         #endif
 
     } else {
-
         // Optionally just display the environment texture
         // ambient = textureLod(DefaultEnvmap,  fix_cubemap_coord(-view_vector), 0).xyz;
         // ambient = pow(ambient, vec3(2.2));

        float env_mipmap = get_mipmap_for_roughness(DefaultEnvmap, m.roughness) + mipmap_bias;
        
        // Sample default environment map
        vec3 env_default_color = textureLod(DefaultEnvmap, env_coord, env_mipmap).xyz * 0.2;

        // Get cheap irradiance by sampling low levels of the environment map
        int env_amb_mip = get_mipmap_count(DefaultEnvmap) - 5;

        // Get reflection directory
        vec3 reflected_dir = reflect(-view_vector, m.normal);

        // Bend normal depending on roughness
        float bend = m.roughness;
        reflected_dir = mix(m.normal, reflected_dir, 
            (1 - bend) * (bend + sqrt(1 - bend)));

        // Get environment coordinate, cubemaps have a different coordinate
        // system
        vec3 env_coord = fix_cubemap_coord(reflected_dir);

        // Compute angle between normal and view vector
