#ifndef VOXY_PATCH
uniform vec3 fogColor;
#endif

vec4 netherNether  = vec4(vec3(NETHER_NR, NETHER_NG, NETHER_NB) / 255.0, 1.0) * NETHER_NI;
vec4 netherValley  = vec4(vec3(NETHER_VR, NETHER_VG, NETHER_VB) / 255.0, 1.0) * NETHER_VI;
vec4 netherCrimson = vec4(vec3(NETHER_CR, NETHER_CG, NETHER_CB) / 255.0, 1.0) * NETHER_CI;
vec4 netherWarped  = vec4(vec3(NETHER_WR, NETHER_WG, NETHER_WB) / 255.0, 1.0) * NETHER_WI;
vec4 netherBasalt  = vec4(vec3(NETHER_BR, NETHER_BG, NETHER_BB) / 255.0, 1.0) * NETHER_BI;

#ifdef NETHER_VANILLA
vec4 netherColSqrt = vec4(normalize(fogColor + 0.0001), length(fogColor));
#else
#ifdef WEATHER_PERBIOME
uniform float isValley, isCrimson, isWarped, isBasalt;
float nBiomeWeight = isValley + isCrimson + isWarped + isBasalt;

vec4 netherColSqrt = mix(
    netherNether,
    (
        netherValley  * isValley  + netherCrimson * isCrimson +
        netherWarped  * isWarped  + netherBasalt  * isBasalt
    ) / max(nBiomeWeight, 0.0001),
    nBiomeWeight
);
#else
vec4 netherColSqrt = netherNether;
#endif
#endif

vec4 netherCol = netherColSqrt * netherColSqrt;