             kD *= 1.0 - metalness;
 
             LOWP float NdotL = max(dot(N, L), 0.0) * u_lightIntensities[lightId];
-
             Lo += (kD * albedo / M_PI + brdf) * radiance * NdotL * lightAttenuation;
         }
     #endif

            LOWP vec3 H = normalize(V + L);

            LOWP vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0);

            LOWP float NDF = distributionGGX(N, H, roughness);
            LOWP float G = geometrySmith(N, V, L, roughness);


}

void main() {
    #ifdef defAlbedo
        LOWP vec3 albedo = texture(u_albedo, v_texCoord).rgb;
    #else
        LOWP vec3 albedo = vec3(0.5);
    #endif

    #ifdef defMetalness
        LOWP float metalness = texture(u_metalness, v_texCoord).r;
    #else
        LOWP float metalness = 0.0;
    #endif

    #ifdef defRoughness
        LOWP float roughness = texture(u_roughness, v_texCoord).r;
    #else
        LOWP float roughness = 0.4;
    #endif

    #ifdef defAmbientOcclusion
