_initShaderUniforms() {
    const { shaderCache } = cc;

    const posTexAlphaProgram = shaderCache.programForKey(cc.SHADER_POSITION_TEXTURECOLORALPHATEST);
    posTexAlphaProgram.use();
    posTexAlphaProgram.setUniformLocationWith1f(posTexAlphaProgram.loc_CC_alpha_value, 0.5);

    const bloomProgram = shaderCache.programForKey('Bloom');
    bloomProgram.use();
    bloomProgram.setUniformLocationWith1f(bloomProgram.loc_transition, this.bloomTransition);

    const highpassProgram = shaderCache.programForKey('Highpass');
    highpassProgram.use();
    highpassProgram.setUniformLocationWith1f(highpassProgram.loc_threshold, this.bloomThreshold);
    highpassProgram.setUniformLocationWith1f(highpassProgram.loc_intensity, this.bloomIntensity);

    const glowNoiseProgram = shaderCache.programForKey('GlowNoise');
    glowNoiseProgram.use();
    glowNoiseProgram.setUniformLocationWith4f(glowNoiseProgram.loc_color, 1.0, 1.0, 1.0, 1.0);
    glowNoiseProgram.setUniformLocationWith4f(glowNoiseProgram.loc_rampFrom, 1.0, 1.0, 1.0, 1.0);
    glowNoiseProgram.setUniformLocationWith4f(glowNoiseProgram.loc_rampTransition, 1.0, 1.0, 1.0, 1.0);
    glowNoiseProgram.setUniformLocationWith1f(glowNoiseProgram.loc_expandModifier, 0.2);
    glowNoiseProgram.setUniformLocationWith1f(glowNoiseProgram.loc_frequency, 75.0);
    glowNoiseProgram.setUniformLocationWith1f(glowNoiseProgram.loc_amplitude, 0.75);
    glowNoiseProgram.setUniformLocationWith2f(glowNoiseProgram.loc_range, 0.1, 0.6);

    const glowProgram = shaderCache.programForKey('Glow');
    glowProgram.use();
    glowProgram.setUniformLocationWith4f(glowProgram.loc_color, 1.0, 1.0, 1.0, 1.0);
    glowProgram.setUniformLocationWith1f(glowProgram.loc_thickness, 1.0);

    const highlightProgram = shaderCache.programForKey('Highlight');
    highlightProgram.use();
    highlightProgram.setUniformLocationWith4f(highlightProgram.loc_color, 1.0, 1.0, 1.0, 1.0);

    const lensFlareProgram = shaderCache.programForKey('LensFlare');
    lensFlareProgram.use();
    lensFlareProgram.setUniformLocationWith2f(lensFlareProgram.loc_origin, 0.5, 0.5);
    lensFlareProgram.setUniformLocationWith1f(lensFlareProgram.loc_rampThreshold, 1.0);

    const wispFlareProgram = shaderCache.programForKey('WispLensFlare');
    wispFlareProgram.use();
    wispFlareProgram.setUniformLocationWith1f(wispFlareProgram.loc_pulseRate, 0.0);
    wispFlareProgram.setUniformLocationWith1f(wispFlareProgram.loc_armLength, 0.3);
    wispFlareProgram.setUniformLocationWith1f(wispFlareProgram.loc_wispSize, 0.05);
    wispFlareProgram.setUniformLocationWith1f(wispFlareProgram.loc_flareSize, 0.1);

    const lightingProgram = shaderCache.programForKey('Lighting');
    lightingProgram.use();
    lightingProgram.setUniformLocationWith1f(lightingProgram.loc_falloffModifier, this.falloffModifier);
    lightingProgram.setUniformLocationWith1f(lightingProgram.loc_intensityModifier, this.intensityModifier);

    const shadowLowQualityProgram = shaderCache.programForKey('ShadowLowQuality');
    shadowLowQualityProgram.use();
    shadowLowQualityProgram.setUniformLocationWith1f(shadowLowQualityProgram.loc_intensity, this.shadowIntensity);
    shadowLowQualityProgram.setUniformLocationWith1f(shadowLowQualityProgram.loc_blurShiftModifier, this.shadowBlurShiftModifier);
    shadowLowQualityProgram.setUniformLocationWith1f(shadowLowQualityProgram.loc_blurIntensityModifier, this.shadowBlurIntensityModifier);

    const shadowHighQualityProgram = shaderCache.programForKey('ShadowHighQuality');
    shadowHighQualityProgram.use();
    shadowHighQualityProgram.setUniformLocationWith1f(shadowHighQualityProgram.loc_intensity, this.shadowIntensity);
    shadowHighQualityProgram.setUniformLocationWith1f(shadowHighQualityProgram.loc_blurShiftModifier, this.shadowBlurShiftModifier);
    shadowHighQualityProgram.setUniformLocationWith1f(shadowHighQualityProgram.loc_blurIntensityModifier, this.shadowBlurIntensityModifier);

    const energyBallProgram = shaderCache.programForKey('EnergyBall');
    energyBallProgram.use();
    energyBallProgram.setUniformLocationWith1f(energyBallProgram.loc_timeScale, 5.0);
    energyBallProgram.setUniformLocationWith1f(energyBallProgram.loc_noiseLevel, 10.0);

    const fireRingProgram = shaderCache.programForKey('FireRing');
    fireRingProgram.use();
    fireRingProgram.setUniformLocationWith1f(fireRingProgram.loc_phase, 0.5);
    fireRingProgram.setUniformLocationWith3f(fireRingProgram.loc_color, 0.2, 0.6, 1.0);

    const whiteCloudVignetteProgram = shaderCache.programForKey('WhiteCloudVignette');
    whiteCloudVignetteProgram.use();
    whiteCloudVignetteProgram.setUniformLocationWith1f(whiteCloudVignetteProgram.loc_noiseAmount, 1.0);
    whiteCloudVignetteProgram.setUniformLocationWith1f(whiteCloudVignetteProgram.loc_vignetteAmount, 1.0);

    const toneCurveProgram = shaderCache.programForKey('ToneCurve');
    toneCurveProgram.use();
    toneCurveProgram.setUniformLocationWith1f(toneCurveProgram.loc_amount, this.getToneCurveAmount());

    const glowImageMapControlProgram = shaderCache.programForKey('GlowImageMapControl');
    glowImageMapControlProgram.use();
    glowImageMapControlProgram.setUniformLocationWith1f(glowImageMapControlProgram.loc_intensity, 1.0);
    glowImageMapControlProgram.setUniformLocationWith1f(glowImageMapControlProgram.loc_gamma, 1.0);
    glowImageMapControlProgram.setUniformLocationWith1f(glowImageMapControlProgram.loc_levelsInWhite, 255.0);
    glowImageMapControlProgram.setUniformLocationWith1f(glowImageMapControlProgram.loc_levelsInBlack, 0.0);
    glowImageMapControlProgram.setUniformLocationWith3f(glowImageMapControlProgram.loc_color, 37, 176, 255);

    // var noiseRaysProgram = shaderCache.programForKey("FbmNoiseRays");
    // noiseRaysProgram.use();
    // noiseRaysProgram.setUniformLocationWith2f(fireWaveProgram.loc_texResolution, cc.winSize.width, cc.winSize.height);

    // var noiseGradientMaskProgram = shaderCache.programForKey("FbmNoiseGradientMask");
    // noiseGradientMaskProgram.use();

    const glowImageMapRippleProgram = shaderCache.programForKey('GlowImageMapRipple');
    glowImageMapRippleProgram.use();
    glowImageMapRippleProgram.setUniformLocationWith1f(glowImageMapRippleProgram.loc_intensity, 1.0);

    const cardAngleGradientShineProgram = shaderCache.programForKey('CardAngledGradientShine');
    cardAngleGradientShineProgram.use();
    cardAngleGradientShineProgram.setUniformLocationWith1f(cardAngleGradientShineProgram.loc_intensity, 1.0);
    cardAngleGradientShineProgram.setUniformLocationWith1f(cardAngleGradientShineProgram.loc_phase, 0.0);
  }
Sets all initial shader uniform values. Make sure FX has been setup already so all shaders are initialized.