vec3 VPGoochLighting(vec4 phases)
{
    vec3 lightDir = normalize(mat3(gbufferModelViewInverse) * shadowLightPosition);

    float NdotL = dot(vpNormal, lightDir);
    float t = clamp((NdotL + 0.2) / 1.2, 0.0, 1.0);

    // Colores originales del cielo
    vec3 warm = GetSkyPalette(phases, 0.15); // Horizonte
    vec3 cool = GetSkyPalette(phases, 1.00); // Cenit

    vec3 gooch = mix(cool, warm, t);

    const float intensity = 0.4;

	vec3 FinalGooch = mix(vec3(1.0), gooch, intensity);
	FinalGooch = mix(FinalGooch,Albedo.rgb,caveFactor(cameraPosition));


    return FinalGooch;
}
