#=============== DECLARE CUSTOM UNIFORMS FOR THE SCENE CONTROLLER BELOW HERE ===============
uniform.bool.isSnowBiome = (biome_precipitation == 2)
uniform.bool.isAridBiome = in(biome_category, CAT_DESERT, CAT_SAVANNA, CAT_MESA)
#====================================================================================================================================================================
#=============== EVERYTHING BELOW HERE IS NOT FOR CUSTOM SCENE CONTROLLER STUFF AND SHOULD NOT BE MODIFIED UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING ===============
#====================================================================================================================================================================
profile=CUSTOM_EMANRUX

profile.CUSTOM_EMANRUX=	ENCHANTING_TABLE_EFFECTS FIRE_COLOR_CORRECTION !POM QUARTER_RES_SSR GALAXY_SKY LENS_FLARE_MODE:1 PULSAR PLANETS END_PLANETS:5 END_PLANET_BRIGHTNESS:0.65 END_PLANET_QUALITY:1 END_BLACK_HOLE:0 END_BH_JETS:0 END_METEORS:1 END_METEOR_COUNT:2 END_METEOR_RARITY:2.0 END_METEOR_SPEED:6.0 METEORS_OW BRIGHT_ORES_INTENSITY:65 CUSTOM_NETHER_PORTAL EXTRA_BLOCK_LIGHTS FROST_ON_GLASS RAIN_ON_GLASS_MODE:2 CONNECTED_GLASS EXTRA_EMISSIVE_BLOCKS CUSTOM_REFLECTIONS PHOTONICS TERRAIN_SHADOW_ON_CLOUDS LPV_HANDHELD_SHADOWS_QUALITY:0 !SHADER_GRASS_SETTING HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_SHADOW_QUALITY:2 RENDER_ENTITY_SHADOWS RENDER_PLAYER_SHADOWS entityShadowDistanceMul:1.00 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_SCALE:0.5 indirect_effect:SSRT_AO RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:60 EXPOSURE_MULTIPLIER:1.0 ambientsss_brightness:1.0 TONEMAP:ToneMap_AgX_minimal_merlin AO_Strength:1.0 SCREENSPACE_DIRECT_SSS_BLENDING:0.5 WATER_CAUSTICS_POWER:1.0 Sky_Brightness:1.0 TOD_Fog_mult:1.0 Water_Absorb_R:0.392389 Water_Absorb_G:0.108329 Water_Absorb_B:0.0660636 Dirt_Scatter_B:0.39 Dirt_Scatter_G:0.39 Dirt_Scatter_R:0.6 ambient_brightness:1.0 WHITE_BALANCE:6500 Sun_temp:6300 Haze_amount:0.85 CROSSTALK:0.0 BLOOM_STRENGTH:1.5 SATURATION:0.04 Dirt_Amount:0.0 Dirt_Absorb_R:0.68 Dirt_Absorb_G:0.4 Dirt_Absorb_B:0.38 LPV_COLORED_CANDLES LPV_NORMAL_STRENGTH:70 LPV_SATURATION:60 MATERIAL_AO MISC_BLOCK_SSS MOB_SSS TRANSLUCENT_COLORED_SHADOWS SSS_TYPE_SETTING:1 EMISSIVE_ORES:2 EMISSIVE_TRIMS:2 PHOTONICS_FLOODFILL_FOG_LIGHT_PROPAGATION sss_absorbance_multiplier:0.8 MAX_ITERATIONS:35 AURORA_LOCATION:3 AURORA_CHANCE:35 CLOUD_SAMPLES:5 CloudLayer0_coverage:0.8 CloudLayer0_height:280.0 CloudLayer1_coverage:0.8 STARS_AMOUNT:1.25 STARS_BRIGHTNESS:1.25 Seasons ShaderSnowStrength:0.6 Puddle_Reflection_Sharpness:1.0 Puddle_Size:1.3 WAVES_B_RADIUS:0.2 RAIN_SPEED:10.0 RAIN_SPEED_VARIANCE:2.0 RAIN_DENSITY:0.75 RAIN_TRAIL:0.7 RAIN_SIZE:0.1 RAIN_MODE:0

// FORWARD_ROUGH_REFLECTION

clouds=off

vignette=false
underwaterOverlay=false
dynamicHandLight=true
oldLighting=false
separateAo = true
rain.depth = false
beacon.beam.depth = true
sky = false

iris.features.required = SSBO COMPUTE_SHADERS

iris.features.optional = SEPARATE_HARDWARE_SAMPLERS ENTITY_TRANSLUCENT REVERSED_CULLING CUSTOM_IMAGES BLOCK_EMISSION_ATTRIBUTE TESSELLATION_SHADERS FADE_VARIABLE TEXTURE_FILTERING

#ifdef FLASHLIGHT
iext_key.0 = TOGGLE
#endif

#ifndef SHADER_GRASS_SETTING
iext.tessellation.gbuffers_terrain=false
iext.geometry.gbuffers_terrain=false
#endif

#ifdef PHOTONICS
    photonics.enabled=PHOTONICS_ACTIVE
    #if defined TAA_UPSCALING && defined TAA
    photonics.renderScale = SCALE_FACTOR
    #else
    photonics.renderScale = 1.0
    #endif
    #ifdef ENABLE_PHOTONICS_GI
    photonics.enableGi=true
    #else
    photonics.enableGi=false
    #endif
    #ifdef ENABLE_PHOTONICS_BLOCKLIGHT
    photonics.enableBlockLight=true
    #else
    photonics.enableBlockLight=false
    #endif
    #if defined ENABLE_PHOTONICS_HANDHELD && !defined FLASHLIGHT
    photonics.enableHandheldLight=true
    #else
    photonics.enableHandheldLight=false
    #endif
    photonics.maxLights   = PHOTONICS_MAX_LIGHTS
    photonics.maxSamples  = PHOTONICS_MAX_SAMPLES
    photonics.alphaMode = PHOTONICS_ALPHA_MODE

    #if !defined ENABLE_PHOTONICS_GI && !defined ENABLE_PHOTONICS_BLOCKLIGHT && !defined ENABLE_PHOTONICS_HANDHELD
    photonics.lightingMode = OFF
    #else
    photonics.lightingMode = PHOTONICS_LIGHTING_MODE
    #endif
#endif

#ifdef REALMOON
    customTexture.moon = texture/moon.png
    #ifdef MOON_NORMALS
        customTexture.moonN = texture/moonN.png
    #endif
#endif

#if ShaderSnow > 0
    customTexture.snowTexA = texture/snowA.png
    customTexture.snowTexN = texture/snowN.png
#endif

#if ShaderSnow > 0 || PUDDLE_MODE > 0
    customTexture.snowTexR = texture/snowR.png
#endif

#ifdef GALAXY_SKY
    customTexture.galaxyTex = assets/minecraft/textures/environment/galaxy.png
#endif

#if defined CUMULONIMBUS_LIGHTNING && CUMULONIMBUS > 0
    customTexture.lightningTex1 = texture/lightning/lightning1.png
    customTexture.lightningTex2 = texture/lightning/lightning2.png
    customTexture.lightningTex3 = texture/lightning/lightning3.png
    customTexture.lightningTex4 = texture/lightning/lightning4.png
    customTexture.lightningTex5 = texture/lightning/lightning5.png
    customTexture.lightningTex6 = texture/lightning/lightning6.png
    customTexture.lightningTex7 = texture/lightning/lightning7.png
    customTexture.lightningTex8 = texture/lightning/lightning8.png
    customTexture.lightningTex9 = texture/lightning/lightning9.png
    customTexture.lightningTex10 = texture/lightning/lightning10.png
    customTexture.lightningTex11 = texture/lightning/lightning11.png
    customTexture.lightningTex12 = texture/lightning/lightning12.png
    customTexture.lightningTex13 = texture/lightning/lightning13.png
    customTexture.lightningTex14 = texture/lightning/lightning14.png
    customTexture.lightningTex15 = texture/lightning/lightning15.png
    customTexture.lightningTex16 = texture/lightning/lightning16.png

    image.cloudDepthTex = cloudDepthSampler RGBA RGBA16F HALF_FLOAT true true 1.0 1.0
#endif

#ifdef LPV_ENABLED
    shadow.enabled = true
    voxelizeLightBlocks = true
#endif

#if defined CUSTOM_MOON_ROTATION && CUSTOM_SHADOWS_QUALITY == 2
    shadow.culling = false
#elif defined LPV_ENABLED || (defined CUSTOM_MOON_ROTATION && CUSTOM_SHADOWS_QUALITY == 1)
    shadow.culling = reversed
#else
    shadow.culling = true
#endif

#ifndef RENDER_ENTITY_SHADOWS
    shadowBlockEntities = false
    shadowEntities = false
    #ifdef RENDER_PLAYER_SHADOWS
        shadowPlayer = true
    #endif
#endif

#if !defined RENDER_ENTITY_SHADOWS && !defined RENDER_PLAYER_SHADOWS
    program.world0/shadow_entities.enabled = false
    program.world1/shadow_entities.enabled = false
    program.world-1/shadow_entities.enabled = false
#endif

#if defined TRANSLUCENT_ENTITIES && defined IS_IRIS || defined IRIS_REQUIRES_SEPARATE_ENTITY_DRAWS
  separateEntityDraws = true
#else
  separateEntityDraws = false
#endif

#if RESOURCEPACK_SKY == 2 || RESOURCEPACK_SKY == 3
    sun=true
    moon=true
#else
    sun=false
    moon=false
#endif

#if RESOURCEPACK_SKY == 1 || RESOURCEPACK_SKY == 2
    stars=true
#else
    stars=false
#endif

particles.ordering=mixed

#if !(defined TRANSLUCENT_ENTITIES && defined IS_IRIS || defined IRIS_REQUIRES_SEPARATE_ENTITY_DRAWS)
    program.world0/gbuffers_entities_translucent.enabled = false
    program.world0/gbuffers_block_translucent.enabled = false

    program.world-1/gbuffers_entities_translucent.enabled = false
    program.world-1/gbuffers_block_translucent.enabled = false

    program.world1/gbuffers_entities_translucent.enabled = false
    program.world1/gbuffers_block_translucent.enabled = false
#endif

#if defined DISTANT_HORIZONS && defined IS_IRIS

    #if defined DISTANT_HORIZONS_SHADOWMAP
        dhShadow.enabled = true
    #else
        dhShadow.enabled = false
    #endif

    program.world0/dh_terrain.enabled = true
    program.world0/dh_water.enabled = true
    program.world1/dh_terrain.enabled = true
    program.world1/dh_water.enabled = true
    program.world-1/dh_terrain.enabled = true
    program.world-1/dh_water.enabled = true

    blend.dh_terrain = off
    blend.dh_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
    blend.dh_water.colortex11 = off
#else
    dhShadow.enabled = false
    program.world0/dh_terrain.enabled = false
    program.world0/dh_water.enabled = false
    program.world1/dh_terrain.enabled = false
    program.world1/dh_water.enabled = false
    program.world-1/dh_terrain.enabled = false
    program.world-1/dh_water.enabled = false
#endif
program.world0/composite5.enabled = TAA_UPSCALING
program.world1/composite5.enabled = TAA_UPSCALING
program.world-1/composite5.enabled = TAA_UPSCALING

program.world0/composite2.enabled = DENOISED_REFLECTIONS && DEFERRED_SPECULAR && DEFERRED_ROUGH_REFLECTION
program.world1/composite2.enabled = DENOISED_REFLECTIONS && DEFERRED_SPECULAR && DEFERRED_ROUGH_REFLECTION
program.world-1/composite2.enabled = DENOISED_REFLECTIONS && DEFERRED_SPECULAR && DEFERRED_ROUGH_REFLECTION

#if !defined TOGGLE_VL_FOG || END_FOG_LEVEL <= 0
    program.world1/composite3.enabled = false
#endif

#if RESOURCEPACK_SKY == 0 && !defined VOXY
    program.world0/deferred2.enabled = false
    program.world1/deferred2.enabled = false
    program.world-1/deferred2.enabled = false
#endif

# SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO
# SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
#Get the correct alpha value : S_A*(1-DST_A)+DST_A

# terrible blending for shadows on purpose
blend.gbuffers_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_hand_water = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_textured_lit = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_basic = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_weather = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_block_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_entities_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_particles_translucent = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE
blend.gbuffers_lightning = ONE ONE ONE ZERO
blend.gbuffers_spidereyes = ONE ONE ONE ONE
blend.gbuffers_armor_glint = ONE ONE ONE ZERO
blend.gbuffers_skytextured = SRC_ALPHA ONE ONE ONE
blend.gbuffers_skybasic = SRC_ALPHA ONE ONE ONE

blend.shadow = ONE ZERO ONE ZERO

blend.shadow_entities = ONE ZERO ONE ZERO
#  Disable blending
blend.gbuffers_terrain = off
blend.gbuffers_particles = off
blend.gbuffers_hand = off
blend.gbuffers_block = off
blend.gbuffers_entities = off
blend.gbuffers_damagedblock = off
blend.gbuffers_beaconbeam = off

blend.gbuffers_water.colortex11 = off
blend.gbuffers_hand_water.colortex11 = off
blend.gbuffers_basic.colortex11 = off
blend.gbuffers_lightning.colortex11 = off
blend.gbuffers_entities_translucent.colortex11 = off

# blend.colortex4 = off
blend.composite.colortex5 = off
blend.deferred1.colortex9 = off
blend.composite1.colortex9 = off
blend.composite4.colortex9 = off
blend.composite1.colortex13 = off
blend.composite1.colortex14 = off

#  Alpha test
alphaTest.gbuffers_weather = off
alphaTest.gbuffers_water = off
alphaTest.gbuffers_skybasic = off
alphaTest.gbuffers_skytextured = off
alphaTest.gbuffers_lightning = off
alphaTest.gbuffers_spidereyes = off
alphaTest.gbuffers_beaconbeam = off
alphaTest.gbuffers_armor_glint = off
alphaTest.gbuffers_damagedblock = off

sliders = END_PLANET_BRIGHTNESS END_PLANET_QUALITY END_METEOR_COUNT END_METEOR_RARITY END_METEOR_SPEED BRIGHT_ORES_INTENSITY PHOTONICS_MAX_SAMPLES PHOTONICS_MAX_LIGHTS PHOTONICS_ALPHA_MODE PATCHY_WAVE_BLEND WAVES_A_RADIUS WAVES_B_RADIUS PHOTONICS_INDIRECT_BRIGHTNESS TEXTURE_RESOLUTION PALE_GARDEN_UNIFORM_DENSITY PALE_GARDEN_CLOUDY_DENSITY PALE_GARDEN_R PALE_GARDEN_G PALE_GARDEN_B GTAO_SLICES RAIN_SPEED RAIN_SPEED_VARIANCE RAIN_DENSITY RAIN_TRAIL RAIN_LIGHT_BRIGHTNESS RAIN_SIZE RAIN_BRIGHTNESS RAIN_LIGHT_BRIGHTNESS RAIN_REALISTIC_SPEED RAIN_REALISTIC_DENSITY RAIN_REALISTIC_DROP_SIZE RAIN_REALISTIC_TRAILS RAIN_REALISTIC_HIGHLIGHTS UNDERWATER_BLOOMY_FOG ENCHANT_GLINT_BRIGHTNESS EMISSIVE_TRIMS_STRENGTH RAY_STEPS FISHEYE_STRENGTH SCREENSPACE_CONTACT_SHADOWS PIXELIZATION_STRENGTH MAX_COLORS_PER_CHANNEL RAINBOW_SELECT_BOX CLOUD_SAMPLES AmbientLightThunder_R AmbientLightThunder_G AmbientLightThunder_B GRASS_RANDOMNESS GRASS_WAVY_STRENGTH GRASS_RANGE GRASS_QUALITY GRASS_DENSITY REPLACE_SHORT_GRASS GRASS_THICKNESS_FALLOFF SHORT_GRASS_HEIGHT BASE_GRASS_HEIGHT GRASS_BASE_THICKNESS FILM_GRAIN_STRENGTH PUDDLE_MODE FLASHLIGHT_SHADOWS_STRENGTH LPV_HANDHELD_SHADOWS_STRENGTH AURORA_R AURORA_G AURORA_B AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE WATER_SIM_STRENGTH WATER_SIM_FRAMERATE WATER_SIM_SCALE WATER_SIM_DISTANCE dayStartTick nightStartTick daySpeed nightSpeed FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT NORMAL_MAP_MULT DEFERRED_SSR_QUALITY FORWARD_SSR_QUALITY RAINBOW_TIME RAINBOW RAINBOW_DISTANCE RAINBOW_BRIGHTNESS VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B END_HAZE_DENSTIY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY Max_Filter_Depth_END Min_Shadow_Filter_Radius_END END_SHADOW_QUALITY MOON_TIME_OFFSET EARTH_ROTATION_TILT CUSTOM_SHADOWS_QUALITY MOON_LATITUDE MOON_SIZE SUN_SIZE MONTH_LENGTH LIGHTNING_SHADOWS WHITE_BALANCE STARS_BRIGHTNESS STARS_AMOUNT AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B CloudLayer0_distance CloudLayer1_distance CloudLayer2_distance CloudLayer3_distance BLEND_FACTOR_DURING_MOVEMENT CloudLayer0_detail CloudLayer1_detail MIN_LIGHT_AMOUNT_INSIDE CUMULONIMBUS_FADE_TIME CUMULONIMBUS NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF WAVE_DETAIL DH_CHUNK_FADING CLOUD_MOVEMENT_TYPE LIGHTLEAKFIX_MODE EMISSIVE_ORES_STRENGTH RIPPLE_STRENGTH RIPPLE_INTENSITY CUSTOM_LIGHTNING_SCALE CUSTOM_LIGHTNING_R CUSTOM_LIGHTNING_G CUSTOM_LIGHTNING_B CUSTOM_LIGHTNING_TEX CUSTOM_LIGHTNING_POS_X CUSTOM_LIGHTNING_POS_Y CUSTOM_LIGHTNING_POS_Z CUMULONIMBUS_LIGHTNING_BRIGHTNESS CUMULONIMBUS_LIGHTNING_DELAY ShaderSnow ShaderSnowStrength BorderFogIntensity CAVE_DETECTION ON_FIRE_DISTORT_EFFECT_STRENGTH USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_R DIRECTLIGHT_FOG_G DIRECTLIGHT_FOG_B INDIRECTLIGHT_FOG_R INDIRECTLIGHT_FOG_G INDIRECTLIGHT_FOG_B SKY_GROUND_R SKY_GROUND_G SKY_GROUND_B DOF_DISPERSION_MULT FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_R FLASHLIGHT_G FLASHLIGHT_B LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START CloudLayer2_scale CloudLayer0_scale CloudLayer1_scale CloudLayer3_scale CloudLayer0_tallness CloudLayer1_tallness EXPOSURE_DARKENING EXPOSURE_BRIGHTENING VIGNETTE_STRENGTH CURVATURE_AMOUNT MINIMUM_WATER_ABSORBANCE CHROMATIC_ABERRATION_STRENGTH SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B LPV_VL_FOG_ILLUMINATION_BRIGHTNESS MOTION_BLUR_STRENGTH OVERDRAW_MAX_DISTANCE DAY0_l3_coverage DAY0_l3_density DAY1_l3_coverage DAY1_l3_density DAY2_l3_coverage DAY2_l3_density DAY3_l3_coverage DAY3_l3_density DAY4_l3_coverage DAY4_l3_density DAY5_l3_coverage DAY5_l3_density DAY6_l3_coverage DAY6_l3_density DAY7_l3_coverage DAY7_l3_density DAY8_l3_coverage DAY8_l3_density DAY9_l3_coverage DAY9_l3_density DAY0_l0_coverage DAY0_l1_coverage DAY0_l2_coverage DAY0_ufog_density DAY0_l0_density DAY0_l1_density DAY0_l2_density DAY0_cfog_density DAY1_l0_coverage DAY1_l1_coverage DAY1_l2_coverage DAY1_ufog_density DAY1_l0_density DAY1_l1_density DAY1_l2_density DAY1_cfog_density DAY2_l0_coverage DAY2_l1_coverage DAY2_l2_coverage DAY2_ufog_density DAY2_l0_density DAY2_l1_density DAY2_l2_density DAY2_cfog_density DAY3_l0_coverage DAY3_l1_coverage DAY3_l2_coverage DAY3_ufog_density DAY3_l0_density DAY3_l1_density DAY3_l2_density DAY3_cfog_density DAY4_l0_coverage DAY4_l1_coverage DAY4_l2_coverage DAY4_ufog_density DAY4_l0_density DAY4_l1_density DAY4_l2_density DAY4_cfog_density DAY5_l0_coverage DAY5_l1_coverage DAY5_l2_coverage DAY5_ufog_density DAY5_l0_density DAY5_l1_density DAY5_l2_density DAY5_cfog_density DAY6_l0_coverage DAY6_l1_coverage DAY6_l2_coverage DAY6_ufog_density DAY6_l0_density DAY6_l1_density DAY6_l2_density DAY6_cfog_density DAY7_l0_coverage DAY7_l1_coverage DAY7_l2_coverage DAY7_ufog_density DAY7_l0_density DAY7_l1_density DAY7_l2_density DAY7_cfog_density DAY8_l0_coverage DAY8_l1_coverage DAY8_l2_coverage DAY8_ufog_density DAY8_l0_density DAY8_l1_density DAY8_l2_density DAY8_cfog_density DAY9_l0_coverage DAY9_l1_coverage DAY9_l2_coverage DAY9_ufog_density DAY9_l0_density DAY9_l1_density DAY9_l2_density DAY9_cfog_density sss_density_multiplier sss_absorbance_multiplier MOTION_AMOUNT TONEMAP WATER_WAVE_SPEED WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER DEBUG_VIEW entityShadowDistanceMul HANDHELD_LIGHT_RANGE CLOUD_SHADOW_AMOUNT CloudLayer0_coverage CloudLayer0_density CloudLayer0_height CloudLayer1_coverage CloudLayer1_density CloudLayer1_height CloudLayer2_coverage CloudLayer2_density CloudLayer2_height CloudLayer3_coverage CloudLayer3_density CloudLayer3_height PLANET_GROUND_BRIGHTNESS FOG_START_HEIGHT WATER_WAVE_STRENGTH SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY SWAMP_R SWAMP_G SWAMP_B JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY JUNGLE_R JUNGLE_G JUNGLE_B DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY DARKFOREST_R DARKFOREST_G DARKFOREST_B NETHER_PLUME_DENSITY END_STORM_DENSTIY LIT_PARTICLE_BRIGHTNESS UPPER_CURVE LOWER_CURVE EMISSIVE_TYPE_SETTING SCALE_FACTOR ambientsss_brightness SSS_TYPE_SETTING Cloud_Speed Cloud_Speed_Rain Cloud_Speed_Thunder ORB_ColMult ORB_X ORB_Y ORB_Z ORB_R ORB_G ORB_B TOD_Fog_mult Morning_Uniform_Fog Noon_Uniform_Fog Evening_Uniform_Fog Night_Uniform_Fog Morning_Cloudy_Fog Noon_Cloudy_Fog Evening_Cloudy_Fog Night_Cloudy_Fog Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B Summer_R Summer_G Summer_B Fall_R Fall_G Fall_B Winter_R Winter_G Winter_B Spring_R Spring_G Spring_B Season_Length CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B indirect_effect GI_Strength ambient_brightness AmbientLightRain_R AmbientLightRain_G AmbientLightRain_B AmbientLight_R AmbientLight_G AmbientLight_B Rain_coverage Thunder_coverage Moon_temp Haze_amount RainFog_amount Sun_temp Puddle_Size Puddle_Reflection_Sharpness LabSSS_Curve Emissive_Curve Emissive_Brightness AO_Strength BLOOMY_FOG WAVY_SPEED WAVY_STRENGTH BLOOM_STRENGTH shadowDistance Sky_Brightness PULSAR_BRIGHTNESS PULSAR_SIZE PLANET_BRIGHTNESS PLANET_QUALITY BLACK_HOLE_SIZE BLACK_HOLE_LENSING black_hole_effect_strength METEOR_COUNT METEOR_RARITY METEOR_SPEED END_FOG_LEVEL fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB sun_illuminance sunColorG sunColorB sunColorR sky_mieg sky_coefficientMieB sky_coefficientMieG sky_coefficientMieR sky_coefficientRayleighB sky_coefficientRayleighG sky_coefficientRayleighR CLOUDS_QUALITY EXPOSURE_MULTIPLIER MIN_LIGHT_AMOUNT TORCH_R TORCH_G TORCH_B TORCH_AMOUNT shadowMapResolution sunPathRotation BLEND_FACTOR VL_SAMPLES Exposure_Speed POM_DEPTH MAX_ITERATIONS MAX_DIST ambientOcclusionLevel SEA_LEVEL moon_illuminance moonColorR moonColorG moonColorB fog_coefficientRayleighR fog_coefficientRayleighG SATURATION Manual_exposure_value focal fstop MANUAL_FOCUS SHADOW_FILTER_SAMPLE_COUNT Max_Filter_Depth VPS_Search_Samples Min_Shadow_Filter_Radius Max_Shadow_Filter_Radius Water_Top_Layer fog_coefficientRayleighB SHARPENING rayMarchSampleCount Dirt_Amount Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B Purkinje_strength Purkinje_R Purkinje_G Purkinje_B DoF_Adaptation_Speed Purkinje_Multiplier CROSSTALK VL_RENDER_SCALE BLOOM_QUALITY RAY_COUNT STEPS STEP_LENGTH cloud_LevelOfDetail cloud_ShadowLevelOfDetail cloud_LevelOfDetailLQ cloud_ShadowLevelOfDetailLQ minRayMarchSteps maxRayMarchSteps minRayMarchStepsLQ maxRayMarchStepsLQ fbmAmount fbmPower1 fbmPower2 ROUGHNESS_THRESHOLD SUN_SPECULAR_MULT reflection_quality DOF_QUALITY DOF_ANAMORPHIC_RATIO AEROCHROME_PINKNESS DOF_JITTER_FOCUS JITTER_STRENGTH SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL LPV_SATURATION LPV_TINT_SATURATION LPV_NORMAL_STRENGTH

screen.columns=2
screen = \
SHADER_VERSION_LABEL <profile>     \
<empty> <empty> \
[Direct_Light]      [World]     \
[Ambient_light]     [Fog]       \
[Post_Processing]   [Clouds]    \
[Resource_Pack_Support] [Climate] \
[Color_Processing] [Camera_Settings] \
<empty> <empty>                 \
[Misc_Settings] [Mod_support] \
       [Emanrux_Configs] 

screen.Emanrux_Configs.columns=1
screen.Emanrux_Configs = [POM_Settings] [Rain_on_Glass_Settings] [Space_Objects_Settings] [Night_Options] [End_Options] BRIGHT_ORES_INTENSITY CUSTOM_REFLECTIONS EXTRA_EMISSIVE_BLOCKS EXTRA_BLOCK_LIGHTS CONNECTED_GLASS RAIN_ON_GLASS_MODE FROST_ON_GLASS CUSTOM_NETHER_PORTAL FIRE_COLOR_CORRECTION ENCHANTING_TABLE_EFFECTS LENS_FLARE_MODE SUN_FLARE_RING

screen.POM_Settings.columns=1
screen.POM_Settings=POM Adaptive_Step_length MAX_ITERATIONS POM_DEPTH MAX_DIST Horrible_slope_normals POM_OFFSET_SHADOW_BIAS DEPTH_WRITE_POM
screen.POM_Settings.name=POM Settings

screen.Bright_Ores = BRIGHT_ORES_INTENSITY

screen.Rain_on_Glass_Settings=RAIN_ON_GLASS_MODE <empty> [Rain_on_Glass_Light_Settings] [Rain_on_Glass_Realistic_Settings]

screen.Rain_on_Glass_Light_Settings=RAIN_SPEED RAIN_SPEED_VARIANCE RAIN_DENSITY RAIN_TRAIL RAIN_SIZE RAIN_LIGHT_BRIGHTNESS
screen.Rain_on_Glass_Light_Settings.columns=1

screen.Rain_on_Glass_Realistic_Settings=RAIN_REALISTIC_SPEED RAIN_REALISTIC_DENSITY RAIN_REALISTIC_DROP_SIZE RAIN_REALISTIC_TRAILS RAIN_REALISTIC_HIGHLIGHTS
screen.Rain_on_Glass_Realistic_Settings.columns=1

screen.Space_Objects_Settings.columns=1
screen.Space_Objects_Settings=GALAXY_SKY NO_CLOUDS_AT_NIGHT <empty> PULSAR PULSAR_BRIGHTNESS PULSAR_SIZE <empty> PLANETS PLANET_BRIGHTNESS PLANET_QUALITY <empty> PLANET_0 PLANET_1 PLANET_2 PLANET_3 PLANET_4 <empty> METEORS_OW METEOR_COUNT METEOR_RARITY METEOR_SPEED
screen.Space_Objects_Settings.name=Space Objects Settings

screen.Night_Options.columns=1
screen.Night_Options=GALAXY_SKY NO_CLOUDS_AT_NIGHT <empty> FLASHLIGHT FLASHLIGHT_RANGE FLASHLIGHT_SIZE FLASHLIGHT_BRIGHTNESS_MULT FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT FLASHLIGHT_SHADOWS <empty> moon_illuminance Moon_temp MOON_SIZE STARS_BRIGHTNESS STARS_AMOUNT Sky_Brightness ambient_brightness MIN_LIGHT_AMOUNT MIN_LIGHT_AMOUNT_INSIDE TORCH_AMOUNT
screen.Night_Options.name=Night Options

screen.End_Options.columns=1
screen.End_Options=END_FOG_LEVEL END_STORM_DENSTIY END_HAZE_DENSTIY END_LIGHTNING <empty> END_VOID_SPIRAL END_WANDERING_DRAGONS <empty> END_PLANETS END_PLANET_BRIGHTNESS END_PLANET_QUALITY END_PLANET_0 END_PLANET_1 END_PLANET_2 END_PLANET_3 END_PLANET_4 <empty> END_METEORS END_METEOR_COUNT END_METEOR_RARITY END_METEOR_SPEED <empty> END_BLACK_HOLE BLACK_HOLE_SIZE BLACK_HOLE_LENSING END_BH_JETS black_hole_effect_strength <empty> END_ISLAND_LIGHT END_SHADOW_QUALITY
screen.End_Options.name=End Options

######## LIGHTING
    ### DIRECT LIGHT
        screen.Direct_Light.columns=1
        screen.Direct_Light =[Shadows] [Subsurface_Scattering] <empty> [SunOptions] [MoonOptions] <empty> [EndLighting] <empty> LIGHTLEAKFIX_MODE

        screen.Shadows.columns=1
        screen.Shadows = TRANSLUCENT_COLORED_SHADOWS SCREENSPACE_CONTACT_SHADOWS RENDER_ENTITY_SHADOWS RENDER_PLAYER_SHADOWS LIGHTNING_SHADOWS CUSTOM_SHADOWS_QUALITY entityShadowDistanceMul <empty> [Filtering] shadowMapResolution shadowDistance
        
        screen.Filtering.columns=1
        screen.Filtering = BASIC_SHADOW_FILTER SHADOW_FILTER_SAMPLE_COUNT Min_Shadow_Filter_Radius <empty> Variable_Penumbra_Shadows VPS_Search_Samples Max_Shadow_Filter_Radius Max_Filter_Depth

        screen.Sun_and_Moon_Colors.columns = 1
        screen.Sun_and_Moon_Colors = sunColorR sunColorG sunColorB moonColorR moonColorG moonColorB colortype Sun_temp Moon_temp

        screen.SunOptions.columns=1
        screen.SunOptions = sun_illuminance sunColorR sunColorG sunColorB colortype Sun_temp SUN_SIZE <empty> SMOOTH_SUN_ROTATION [Smoothing_Settings] <empty> [CUSTOM_MOON_ROTATION_DISCLAIMER2] [CUSTOM_MOON_ROTATION_DISCLAIMER3] sunPathRotation
        
        screen.MoonOptions.columns=2
        screen.MoonOptions = moon_illuminance MOONPHASE_BASED_MOONLIGHT \
                             moonColorR REALMOON \
                             moonColorG MOON_NORMALS \
                             moonColorB MOON_SIZE \
                             colortype  CUSTOM_MOON_ROTATION \
                             Moon_temp  [CUSTOM_MOON_SETTINGS] \
                             <empty>    <empty> \
                             SMOOTH_MOON_ROTATION    [Smoothing_Settings]

            screen.CUSTOM_MOON_SETTINGS.columns=1
            screen.CUSTOM_MOON_SETTINGS = CUSTOM_SHADOWS_QUALITY <empty> [CUSTOM_MOON_ROTATION_DISCLAIMER] MONTH_LENGTH MOON_LATITUDE EARTH_ROTATION_TILT MOON_TIME_OFFSET
        
        screen.EndLighting.columns=1
        screen.EndLighting = END_ISLAND_LIGHT VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B <empty> Max_Filter_Depth_END Min_Shadow_Filter_Radius_END CUSTOM_SHADOWS_QUALITY

        screen.Smoothing_Settings.columns=1
        screen.Smoothing_Settings = [SMOOTHING_DISCLAIMER] [SMOOTHING_DISCLAIMER2] dayStartTick nightStartTick daySpeed nightSpeed
    ### AMBIENT LIGHT
        screen.Ambient_light.columns=1
        screen.Ambient_light = [LPV] [Torch_Colors] \
                                [Ambient_Colors] \
                                <empty> \
                                indirect_effect [SSRT_SETTINGS] \
                                GTAO_SLICES \
                                AO_in_sunlight AO_Strength \
                                ambientOcclusionLevel Hand_Held_lights \
                                HANDHELD_LIGHT_RANGE \

            screen.SSRT_SETTINGS.columns=1
            screen.SSRT_SETTINGS = RAY_COUNT RAY_STEPS GI_Strength HQ_SSGI SKY_CONTRIBUTION_IN_SSRT UseQuarterResDepth

            screen.Torch_Colors.columns=1
            screen.Torch_Colors = TORCH_AMOUNT Emissive_Brightness Emissive_Curve <empty> TORCH_R TORCH_G TORCH_B

            screen.Ambient_Colors.columns=3
            screen.Ambient_Colors = ambient_brightness MIN_LIGHT_AMOUNT MIN_LIGHT_AMOUNT_INSIDE \
                                    AmbientLight_R AmbientLight_G AmbientLight_B \
                                    <empty> <empty> <empty> \
                                    SeparateAmbientColorRain <empty> <empty> \
                                    AmbientLightRain_R AmbientLightRain_G AmbientLightRain_B \
                                    AmbientLightThunder_R AmbientLightThunder_G AmbientLightThunder_B \
                                    <empty> <empty> <empty> \
                                    AmbientLightEnd_R AmbientLightEnd_G AmbientLightEnd_B

    ### RESOURCE PACK SUPPORT
        screen.Resource_Pack_Support.columns = 1
        screen.Resource_Pack_Support = [SPECULAR] [Emissives] [Subsurface_Scattering] [POM] [Refraction] MATERIAL_AO <empty> RESOURCEPACK_SKY NORMAL_MAP_MULT

        screen.SPECULAR.columns=1
        screen.SPECULAR = \
        QUARTER_RES_SSR SUN_SPECULAR_MULT ROUGHNESS_THRESHOLD <empty> DEFERRED_SPECULAR DEFERRED_SSR_QUALITY DEFERRED_BACKGROUND_REFLECTION DEFERRED_ROUGH_REFLECTION DENOISED_REFLECTIONS <empty> FORWARD_SPECULAR FORWARD_SSR_QUALITY FORWARD_BACKGROUND_REFLECTION FORWARD_ROUGH_REFLECTION

        screen.Subsurface_Scattering.columns=1
        screen.Subsurface_Scattering = SSS_TYPE_SETTING sss_density_multiplier sss_absorbance_multiplier LabSSS_Curve <empty> MISC_BLOCK_SSS MOB_SSS <empty> Ambient_SSS ambientsss_brightness SCREENSPACE_DIRECT_SSS_BLENDING

        screen.Emissives.columns = 1
        screen.Emissives = EMISSIVE_TYPE_SETTING Emissive_Brightness Emissive_Curve <empty> EMISSIVE_ORES EMISSIVE_ORES_STRENGTH <empty> EMISSIVE_TRIMS EMISSIVE_TRIMS_STRENGTH
    
        screen.POM.columns=1
        screen.POM = POM Adaptive_Step_length MAX_ITERATIONS POM_DEPTH MAX_DIST Horrible_slope_normals POM_OFFSET_SHADOW_BIAS DEPTH_WRITE_POM
 
        screen.Refraction.columns = 1
        screen.Refraction = FAKE_REFRACTION_AMOUNT FAKE_DISPERSION_AMOUNT REFRACTION_SMUDGE_AMOUNT SNELLS_WINDOW [Water]

    ### FloodFill
        screen.LPV.columns = 2
        screen.LPV = LPV_ENABLED LPV_SIZE \
                     LPV_SATURATION LPV_COLORED_CANDLES \
                     LPV_TINT_SATURATION LPV_REDSTONE_LIGHTS \
                     LPV_NORMAL_STRENGTH LPV_ENTITY_LIGHTS \
                     LPV_NOSHADOW_HACK <empty> \
                     LPV_VL_FOG_ILLUMINATION LPV_VL_FOG_ILLUMINATION_BRIGHTNESS \
                     LPV_VL_FOG_ILLUMINATION_HANDHELD_WATER <empty> \
                     VANILLA_LIGHTMAP_MASK <empty> \
                     LPV_HANDHELD_SHADOWS LPV_HANDHELD_SHADOWS_STRENGTH \
                     LPV_HANDHELD_SHADOWS_QUALITY
        
######## WORLD
    screen.World.columns=1
    screen.World = [Water] [Foliage] [Weather_Effects] [AURORA_SETTINGS] PLANET_CURVATURE CURVATURE_AMOUNT VANILLA_CHUNK_FADING <empty> [Sky_coefficients] SKY_GROUND STARS_AMOUNT STARS_BRIGHTNESS <empty> EMISSIVE_ORES EMISSIVE_ORES_STRENGTH
        
        ### WAVING STUFF
        screen.Foliage.columns=2
        screen.Foliage = WAVY_PLANTS WAVY_STRENGTH \
                         WAVY_SPEED <empty> \
                         <empty> <empty> \
                         SHADER_GRASS_SETTING GRASS_QUALITY \
                         GRASS_DENSITY GRASS_RANGE \
                         REPLACE_SHORT_GRASS GRASS_WAVY_STRENGTH \
                         GRASS_BASE_THICKNESS GRASS_THICKNESS_FALLOFF \
                         BASE_GRASS_HEIGHT SHORT_GRASS_HEIGHT \
                         GRASS_RANDOMNESS <empty> \
                         <empty> <empty> \
                         GRASS_DETECT_FALLOFF GRASS_DETECT_INV_FALLOFF

        screen.AURORA_SETTINGS.columns=1
        screen.AURORA_SETTINGS = AURORA_LOCATION AURORA_MOON AURORA_BRIGHTNESS AURORA_CHANCE AURORA_R AURORA_G AURORA_B
        screen.Weather_Effects.columns=1
        screen.Weather_Effects = [Rainbow_Settings] RAIN_MODE RAIN_BRIGHTNESS <empty> PUDDLE_MODE Puddle_Size Puddle_Reflection_Sharpness <empty> ShaderSnow ShaderSnowStrength <empty> RIPPLE_WATER RIPPLE_PUDDLES RIPPLE_INTENSITY RIPPLE_STRENGTH

            screen.Rainbow_Settings.columns=1
            screen.Rainbow_Settings = RAINBOW RAINBOW_BRIGHTNESS RAINBOW_DISTANCE RAINBOW_TIME RAINBOW_ONLY_BELOW_CLOUDS
######## CLIMATE
    screen.Climate.columns=1
    screen.Climate = [Seasons] <empty> PER_BIOME_ENVIRONMENT [SWAMP] [JUNGLE] [DARKFOREST] [PALE_GARDEN] SNOW_STORMS SAND_STORMS

        ## BIOME SPECIFICS
            screen.SWAMP.columns=1
            screen.SWAMP = SWAMP_ENV SWAMP_UNIFORM_DENSITY SWAMP_CLOUDY_DENSITY <empty> SWAMP_R SWAMP_G SWAMP_B

            screen.JUNGLE.columns=1
            screen.JUNGLE = JUNGLE_ENV JUNGLE_UNIFORM_DENSITY JUNGLE_CLOUDY_DENSITY <empty> JUNGLE_R JUNGLE_G JUNGLE_B

            screen.DARKFOREST.columns=1
            screen.DARKFOREST = DARKFOREST_ENV DARKFOREST_UNIFORM_DENSITY DARKFOREST_CLOUDY_DENSITY <empty> DARKFOREST_R DARKFOREST_G DARKFOREST_B

            screen.PALE_GARDEN.columns=1
            screen.PALE_GARDEN = PALE_GARDEN_ENV PALE_GARDEN_UNIFORM_DENSITY PALE_GARDEN_CLOUDY_DENSITY <empty> PALE_GARDEN_R PALE_GARDEN_G PALE_GARDEN_B
 

        ## SEASONS
            screen.Seasons.columns=1
            screen.Seasons = Seasons Season_Length Start_Season <empty> [Summer_colors] [Fall_colors] [Winter_colors] [Spring_colors] 

                screen.Summer_colors.columns=1
                screen.Summer_colors = Summer_R Summer_G Summer_B <empty> Summer_Leaf_R Summer_Leaf_G Summer_Leaf_B

                screen.Fall_colors.columns=1
                screen.Fall_colors = Fall_R Fall_G Fall_B <empty> Fall_Leaf_R Fall_Leaf_G Fall_Leaf_B

                screen.Winter_colors.columns=1
                screen.Winter_colors = Winter_R Winter_G Winter_B <empty> Winter_Leaf_R Winter_Leaf_G Winter_Leaf_B

                screen.Spring_colors.columns=1
                screen.Spring_colors = Spring_R Spring_G Spring_B <empty> Spring_Leaf_R Spring_Leaf_G Spring_Leaf_B

      
######## ATMOSPHERICS

        screen.Sky_coefficients.columns=1
        screen.Sky_coefficients = Sky_Brightness sky_coefficientRayleighR sky_coefficientRayleighG sky_coefficientRayleighB sky_coefficientMieR sky_coefficientMieG sky_coefficientMieB
       
        ### CLOUDS
            screen.Clouds.columns = 2
            screen.Clouds = VOLUMETRIC_CLOUDS <empty> \
                            VL_RENDER_SCALE HQ_CLOUD_UPSAMPLE \
                            [DAILY_WEATHER] CLOUD_SHADOW_AMOUNT \
                            CLOUD_SAMPLES TERRAIN_SHADOW_ON_CLOUDS \
                            <empty> <empty> \
                            Rain_coverage Thunder_coverage \
                            CLOUD_MOVEMENT_TYPE Cloud_Speed \
                            [CumulusClouds] [HighAltitudeClouds]    

                screen.CumulusClouds.columns = 2
                    screen.CumulusClouds =  CloudLayer0                         CloudLayer1 \
                                            CloudLayer0_coverage                CloudLayer1_coverage \
                                            CloudLayer0_density                 CloudLayer1_density \
                                            CloudLayer0_height                  CloudLayer1_height \
                                            CloudLayer0_tallness                CloudLayer1_tallness \
                                            CloudLayer0_scale                   CloudLayer1_scale \
                                            CloudLayer0_detail                  CloudLayer1_detail \
                                            CloudLayer0_distance                CloudLayer1_distance \
                                            <empty>                             <empty> \
                                            CUMULONIMBUS                        CUMULONIMBUS_FADE_TIME \
                                            CUMULONIMBUS_LIGHTNING              CUMULONIMBUS_LIGHTNING_BRIGHTNESS \
                                            CUMULONIMBUS_LIGHTNING_DELAY        [CUSTOM_LIGHTNING]

                    screen.CUSTOM_LIGHTNING.columns = 2
                        screen.CUSTOM_LIGHTNING =   CUSTOM_LIGHTNING_POS     CUSTOM_LIGHTNING_TEX \
                                                    CUSTOM_LIGHTNING_POS_X   CUSTOM_LIGHTNING_R \
                                                    CUSTOM_LIGHTNING_POS_Y   CUSTOM_LIGHTNING_G \
                                                    CUSTOM_LIGHTNING_POS_Z   CUSTOM_LIGHTNING_B \
                                                    [READ_DESCRIPTION]       CUSTOM_LIGHTNING_SCALE

                screen.HighAltitudeClouds.columns = 2
                    screen.HighAltitudeClouds = CloudLayer2             CloudLayer3 \
                                                CloudLayer2_coverage    CloudLayer3_coverage \
                                                CloudLayer2_density     CloudLayer3_density \
                                                CloudLayer2_height      CloudLayer3_height \
                                                CloudLayer2_scale       CloudLayer3_scale \
                                                CloudLayer2_distance    CloudLayer3_distance
        ### FOG
            screen.Fog.columns=2
            screen.Fog =    VL_RENDER_SCALE VL_SAMPLES \
                            FOG_START_HEIGHT <empty> \
                            BLOOMY_FOG UNDERWATER_BLOOMY_FOG \
                            Haze_amount RainFog_amount \
                            [TOD_fog] [Cave_Fog] \
                            [END_AND_NETHER_FOG] <empty> \
                            <empty> <empty> \
                            BorderFog PER_BIOME_ENVIRONMENT \
                            BorderFogIntensity 

                screen.TOD_fog.columns=2
                screen.TOD_fog = TOD_Fog_mult <empty> Morning_Uniform_Fog Morning_Cloudy_Fog Noon_Uniform_Fog Noon_Cloudy_Fog Evening_Uniform_Fog Evening_Cloudy_Fog Night_Uniform_Fog Night_Cloudy_Fog
                
                screen.Cave_Fog.columns=1
                screen.Cave_Fog = CAVE_FOG CaveFogFallOff CaveFogColor_R CaveFogColor_G CaveFogColor_B

                screen.Fog_Color.columns=1
                screen.Fog_Color = fog_coefficientRayleighR fog_coefficientRayleighG fog_coefficientRayleighB fog_coefficientMieR fog_coefficientMieG fog_coefficientMieB
                
                screen.END_AND_NETHER_FOG = END_LIGHTNING END_STORM_DENSTIY END_HAZE_DENSTIY <empty> NETHER_PLUME_DENSITY NETHER_CEILING_SMOKE_DENSITY NETHER_HAZE_DENSITY <empty> [FOG_LIGHTING_COLORS]
                
                    screen.FOG_LIGHTING_COLORS.columns=1
                    screen.FOG_LIGHTING_COLORS = VORTEX_LIGHT_COL_R VORTEX_LIGHT_COL_G VORTEX_LIGHT_COL_B <empty> END_LIGHTNING_COL_R END_LIGHTNING_COL_G END_LIGHTNING_COL_B
      
        ### WATER
            screen.Water.columns=2
                screen.Water =  Dirt_Amount [Water_fog_color] \
                                MINIMUM_WATER_ABSORBANCE SNELLS_WINDOW \
                                WATER_WAVE_SPEED Water_Top_Layer \
                                WATER_WAVE_STRENGTH PATCHY_WAVE_BLEND \
                                WAVES_A_RADIUS WAVES_B_RADIUS \
                                <empty> <empty> \
                                WATER_INTERACTION [WATER_SIM_DISCLAIMER] \
                                WATER_SIM_SCALE     WATER_SIM_DISTANCE \
                                PIXELATED_WAVES     WATER_SIM_FRAMERATE \
                                WATER_SIM_STRENGTH

                screen.Water_fog_color.columns=1
                screen.Water_fog_color = Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B

######## POST
    screen.Post_Processing.columns=2
    screen.Post_Processing = [TAA_OPTIONS] [GAMEPLAY_EFFECTS] [Purkinje_effect] [FLASHLIGHT_SETTING] <empty> <empty> BLOOM_STRENGTH SHARPENING <empty> <empty> MOTION_BLUR MOTION_BLUR_STRENGTH CHROMATIC_ABERRATION CHROMATIC_ABERRATION_STRENGTH VIGNETTE VIGNETTE_STRENGTH FILM_GRAIN FILM_GRAIN_STRENGTH FISHEYE_EFFECT FISHEYE_STRENGTH
        ### TAA
            screen.TAA_OPTIONS.columns = 1
            screen.TAA_OPTIONS= SCREENSHOT_MODE <empty> TAA RESPONSIVE_TAA BLEND_FACTOR BLEND_FACTOR_DURING_MOVEMENT <empty> TAA_UPSCALING SCALE_FACTOR
        ### PURKINJE
            screen.Purkinje_effect.columns = 1
            screen.Purkinje_effect = Purkinje_strength Purkinje_R Purkinje_G Purkinje_B Purkinje_Multiplier


    ######## CAMERA AND COLOR
            screen.Camera_Settings.columns = 1
            screen.Camera_Settings = SCREENSHOT_MODE CAMERA_GRIDLINES WHITE_BALANCE [Exposure] [DepthOfField]
            
            screen.Color_Processing.columns = 1
            screen.Color_Processing = TONEMAP <empty> [Exposure] [COLOR_GRADING] SATURATION CROSSTALK WHITE_BALANCE 
        ### TONEMAPS
            screen.Tonemapping.columns = 1
            screen.Tonemapping = TONEMAP USE_ACES_COLORSPACE_APPROXIMATION SATURATION CROSSTALK
		### COLOR GRADING
			screen.COLOR_GRADING.columns = 3
			screen.COLOR_GRADING = \
			LUMINANCE_CURVE LOWER_CURVE UPPER_CURVE \
			<empty> <empty> <empty> \
			COLOR_GRADING_ENABLED <empty> <empty> \
			SHADOWS_GRADE_R MIDS_GRADE_R HIGHLIGHTS_GRADE_R \
			SHADOWS_GRADE_G MIDS_GRADE_G HIGHLIGHTS_GRADE_G \
			SHADOWS_GRADE_B MIDS_GRADE_B HIGHLIGHTS_GRADE_B \
			SHADOWS_GRADE_MUL MIDS_GRADE_MUL HIGHLIGHTS_GRADE_MUL

        ### EXPOSURE
            screen.Exposure.columns = 1
            screen.Exposure = Manual_exposure_value EXPOSURE_MULTIPLIER <empty> AUTO_EXPOSURE Exposure_Speed EXPOSURE_DARKENING EXPOSURE_BRIGHTENING
        ### DOF
            screen.DepthOfField.columns = 1
            screen.DepthOfField = DOF_QUALITY DOF_ANAMORPHIC_RATIO focal fstop MANUAL_FOCUS DoF_Adaptation_Speed FAR_BLUR_ONLY REMOVE_HAND_BLUR [JITTER_DOF] DOF_DISPERSION_MULT
				screen.JITTER_DOF.columns=1
				screen.JITTER_DOF = JITTER_STRENGTH FOCUS_LASER_COLOR SCREENSHOT_MODE

        ### COOL GAMEPLAY EFFECTS
        screen.GAMEPLAY_EFFECTS = MOTION_AMOUNT WATER_ON_CAMERA_EFFECT DAMAGE_TAKEN_EFFECT ON_FIRE_DISTORT_EFFECT ON_FIRE_DISTORT_EFFECT_STRENGTH LOW_HEALTH_EFFECT LOW_HEALTH_EFFECT_START CRITICALLY_LOW_HEALTH_EFFECT_START DROWNING_EFFECT
            screen.FLASHLIGHT_SETTING.columns = 2
            screen.FLASHLIGHT_SETTING = FLASHLIGHT FLASHLIGHT_R \
            FLASHLIGHT_SPECULAR FLASHLIGHT_G \
            FLASHLIGHT_BOUNCED_INDIRECT FLASHLIGHT_B \
            FLASHLIGHT_FOG_ILLUMINATION <empty> \
            FLASHLIGHT_RANGE FLASHLIGHT_BRIGHTNESS_MULT \
            FLASHLIGHT_SIZE FLASHLIGHT_BRIGHTNESS_FALLOFF_MULT \
            FLASHLIGHT_SHADOWS FLASHLIGHT_SHADOWS_STRENGTH
            

            
######## MOD SUPPORT SETTINGS
    screen.Mod_support = [DISTANT_HORIZONS_SETTINGS] [PHYSICS_MOD_OCEAN] [VOXY_SETTINGS] CAELUM_SUPPORT [PHOTONICS_SETTINGS]
        screen.PHOTONICS_SETTINGS.columns = 2
        screen.PHOTONICS_SETTINGS = PHOTONICS_ACTIVE PHOTONICS_LIGHTING_MODE PHOTONICS_ALPHA_MODE ENABLE_PHOTONICS_HANDHELD ENABLE_PHOTONICS_GI ENABLE_PHOTONICS_BLOCKLIGHT PHOTONICS_INDIRECT_BRIGHTNESS PHOTONICS_MAX_SAMPLES PHOTONICS_MAX_LIGHTS LPV_VL_FOG_ILLUMINATION <empty> <empty> VOXEL_REFLECTIONS_SOLID VOXEL_REFLECTIONS_TRANSLUCENT TRANSLUCENT_IN_REFLECTIONS MIRROR_IRON VOXEL_REFLECTIONS_FOG VOXEL_REFLECTIONS_LPV_FOG

        screen.DISTANT_HORIZONS_SETTINGS.columns = 1
        screen.DISTANT_HORIZONS_SETTINGS = DH_OVERDRAW_PREVENTION OVERDRAW_MAX_DISTANCE DH_CHUNK_FADING <empty> DH_AMBIENT_OCCLUSION DH_SUBSURFACE_SCATTERING DH_SCREENSPACE_REFLECTIONS DH_TAA_JITTER DH_NOISE_TEXTURE NOISE_RESOLUTION NOISE_INTENSITY NOISE_DROPOFF <empty> DISTANT_HORIZONS_SHADOWMAP shadowDistance shadowMapResolution <empty> TOGGLE_VL_FOG VOLUMETRIC_CLOUDS

        screen.VOXY_SETTINGS.columns = 1
        screen.VOXY_SETTINGS = VOXY_AMBIENT_OCCLUSION VOXY_SSS VOXY_REFLECTIONS

######## MISC SETTINGS
    screen.Misc_Settings.columns = 2
    screen.Misc_Settings = [EXPERIMENTAL_STUFF] [DEBUG_STUFF] [LEGACY_STUFF] TRANSLUCENT_ENTITIES [selection_box_outline]  [scene_controller] <empty> <empty> AEROCHROME_MODE AEROCHROME_PINKNESS AEROCHROME_WOOL_ENABLED

        screen.EXPERIMENTAL_STUFF.columns = 2
        screen.EXPERIMENTAL_STUFF = BLOOMY_PARTICLES BIOME_TINT_WATER HYPER_DETAILED_WAVES LIT_PARTICLE_BRIGHTNESS WATER_CAUSTICS_BRIGHTNESS WATER_CAUSTICS_POWER FORCE_TRANSLUCENT_GLASS LARGE_WAVE_DISPLACEMENT VANILLA_LIKE_WATER PIXELATED PIXELIZATION_STRENGTH MAX_COLORS_PER_CHANNEL HARDCODED_EMISSIVES_APPROX TRANSLUCENT_ENTITIES_DITHER_FALLBACK ENCHANT_GLINT_BRIGHTNESS LPV_VL_FOG_ILLUMINATION_HANDHELD WAVING_MULTIPART_GRASS SHADER_GRASS_UNSUPPORTED_FIX

        screen.DEBUG_STUFF.columns = 2
        screen.DEBUG_STUFF = [the_end_orb] DEBUG_VIEW display_LUT WhiteWorld SSS_view AMBIENT_LIGHT_ONLY LIGHTNING_FLASH DISABLE_ENCHANT_GLINT DISABLE_VANILLA_EMISSIVES PARTICLE_RENDERING_FIX ISOLATE_RESOURCEPACK_SKY CAVE_DETECTION VISUALIZE_LIGHTMAP
        
	screen.LEGACY_STUFF.columns = 2
        screen.LEGACY_STUFF = ORIGINAL_CHOCAPIC_SKY OLD_BLOOM OLD_CAVE_DETECTION CLOUD_PHASE OLD_STARS

        screen.the_end_orb.columns = 1
        screen.the_end_orb = THE_ORB ORB_X ORB_Y ORB_Z ORB_ColMult ORB_R ORB_G ORB_B
        
        screen.selection_box_outline.columns = 1
        screen.selection_box_outline = SELECT_BOX RAINBOW_SELECT_BOX SELECT_BOX_COL_R SELECT_BOX_COL_G SELECT_BOX_COL_B
        
        screen.scene_controller.columns = 4
        screen.scene_controller = \
            USE_CUSTOM_DIFFUSE_LIGHTING_COLORS USE_CUSTOM_CLOUD_LIGHTING_COLORS USE_CUSTOM_FOG_LIGHTING_COLORS USE_CUSTOM_SKY_GROUND_LIGHTING_COLORS \
            DIRECTLIGHT_DIFFUSE_R DIRECTLIGHT_CLOUDS_R DIRECTLIGHT_FOG_R SKY_GROUND_R \
            DIRECTLIGHT_DIFFUSE_G DIRECTLIGHT_CLOUDS_G DIRECTLIGHT_FOG_G SKY_GROUND_G \
            DIRECTLIGHT_DIFFUSE_B DIRECTLIGHT_CLOUDS_B DIRECTLIGHT_FOG_B SKY_GROUND_B \
            INDIRECTLIGHT_DIFFUSE_R INDIRECTLIGHT_CLOUDS_R INDIRECTLIGHT_FOG_R <empty> \
            INDIRECTLIGHT_DIFFUSE_G INDIRECTLIGHT_CLOUDS_G INDIRECTLIGHT_FOG_G <empty> \
            INDIRECTLIGHT_DIFFUSE_B INDIRECTLIGHT_CLOUDS_B INDIRECTLIGHT_FOG_B <empty>




#####################################
####### WEATHER RELATED STUFF #######
#####################################

    screen.DAILY_WEATHER.columns = 2
    screen.DAILY_WEATHER = Daily_Weather CHOOSE_RANDOM_WEATHER_PROFILE \
                           [DAY0_WEATHER] [DAY5_WEATHER] \
                           [DAY1_WEATHER] [DAY6_WEATHER] \
                           [DAY2_WEATHER] [DAY7_WEATHER] \
                           [DAY3_WEATHER] [DAY8_WEATHER] \
                           [DAY4_WEATHER] [DAY9_WEATHER]
    
    screen.DAY0_WEATHER.columns = 2
    screen.DAY0_WEATHER = DAY0_l0_coverage DAY0_l0_density DAY0_l1_coverage DAY0_l1_density DAY0_l2_coverage DAY0_l2_density DAY0_l3_coverage DAY0_l3_density DAY0_ufog_density DAY0_cfog_density
    screen.DAY1_WEATHER.columns = 2
    screen.DAY1_WEATHER = DAY1_l0_coverage DAY1_l0_density DAY1_l1_coverage DAY1_l1_density DAY1_l2_coverage DAY1_l2_density DAY1_l3_coverage DAY1_l3_density DAY1_ufog_density DAY1_cfog_density
    screen.DAY2_WEATHER.columns = 2
    screen.DAY2_WEATHER = DAY2_l0_coverage DAY2_l0_density DAY2_l1_coverage DAY2_l1_density DAY2_l2_coverage DAY2_l2_density DAY2_l3_coverage DAY2_l3_density DAY2_ufog_density DAY2_cfog_density
    screen.DAY3_WEATHER.columns = 2
    screen.DAY3_WEATHER = DAY3_l0_coverage DAY3_l0_density DAY3_l1_coverage DAY3_l1_density DAY3_l2_coverage DAY3_l2_density DAY3_l3_coverage DAY3_l3_density DAY3_ufog_density DAY3_cfog_density
    screen.DAY4_WEATHER.columns = 2
    screen.DAY4_WEATHER = DAY4_l0_coverage DAY4_l0_density DAY4_l1_coverage DAY4_l1_density DAY4_l2_coverage DAY4_l2_density DAY4_l3_coverage DAY4_l3_density DAY4_ufog_density DAY4_cfog_density
    screen.DAY5_WEATHER.columns = 2
    screen.DAY5_WEATHER = DAY5_l0_coverage DAY5_l0_density DAY5_l1_coverage DAY5_l1_density DAY5_l2_coverage DAY5_l2_density DAY5_l3_coverage DAY5_l3_density DAY5_ufog_density DAY5_cfog_density
    screen.DAY6_WEATHER.columns = 2
    screen.DAY6_WEATHER = DAY6_l0_coverage DAY6_l0_density DAY6_l1_coverage DAY6_l1_density DAY6_l2_coverage DAY6_l2_density DAY6_l3_coverage DAY6_l3_density DAY6_ufog_density DAY6_cfog_density
    screen.DAY7_WEATHER.columns = 2
    screen.DAY7_WEATHER = DAY7_l0_coverage DAY7_l0_density DAY7_l1_coverage DAY7_l1_density DAY7_l2_coverage DAY7_l2_density DAY7_l3_coverage DAY7_l3_density DAY7_ufog_density DAY7_cfog_density
    screen.DAY8_WEATHER.columns = 2
    screen.DAY8_WEATHER = DAY8_l0_coverage DAY8_l0_density DAY8_l1_coverage DAY8_l1_density DAY8_l2_coverage DAY8_l2_density DAY8_l3_coverage DAY8_l3_density DAY8_ufog_density DAY8_cfog_density
    screen.DAY9_WEATHER.columns = 2
    screen.DAY9_WEATHER = DAY9_l0_coverage DAY9_l0_density DAY9_l1_coverage DAY9_l1_density DAY9_l2_coverage DAY9_l2_density DAY9_l3_coverage DAY9_l3_density DAY9_ufog_density DAY9_cfog_density


# thank you sixthsurge!
#ifdef LIGHTNING_FLASH
    #ifdef IS_IRIS 
        variable.float.lightningFlash = smooth(if(lightningBoltPosition.w > 0.0, 3.145, 0.0), 0.0, 0.0)
    #else
        variable.float.lightningFlash = smooth(if(equals(skyColor.r, skyColor.g, 0.01) && skyColor.r > 0.3, 1.0, 0.0), 0.0, 0.0)
    #endif
#else
    variable.float.lightningFlash = 0.0
#endif

uniform.vec3.lightningEffect = vec3(77.0 * lightningFlash, 153.0 * lightningFlash, 255.0 * lightningFlash) 

###################################
####### BIOME RELATED STUFF #######
###################################

# in seconds
variable.int.BiomeTransitionTime = 60

#ifdef SWAMP_ENV
    uniform.float.isSwamps = smooth(if(in(biome_category, CAT_SWAMP), 1,0), BiomeTransitionTime, BiomeTransitionTime)
#else
    uniform.float.isSwamps = 0.0
#endif

#ifdef JUNGLE_ENV
    uniform.float.isJungles = smooth(if(in(biome_category, CAT_JUNGLE), 1,0), BiomeTransitionTime, BiomeTransitionTime)
#else
    uniform.float.isJungles = 0.0
#endif

#ifdef DARKFOREST_ENV
    uniform.float.isDarkForests = smooth(if(in(biome, BIOME_DARK_FOREST), 1,0), BiomeTransitionTime, BiomeTransitionTime)
#else
    uniform.float.isDarkForests = 0.0
#endif

#if defined PALE_GARDEN_ENV && MC_VERSION >= 12104
    uniform.float.isPaleGarden = smooth(if(in(biome, BIOME_PALE_GARDEN), 1,0), 2.0 * BiomeTransitionTime, 0.5 * BiomeTransitionTime)
#else
    uniform.float.isPaleGarden = 0.0
#endif

#ifdef SNOW_STORMS
    uniform.float.snowStorm = smooth(if(in(biome_category, CAT_ICY), rainStrength, 0), 15, 30)
#else
    uniform.float.snowStorm = 0.0
#endif

#ifdef SAND_STORMS
    #if defined IS_IRIS
        uniform.float.sandStorm = smooth(if(in(biome_category, CAT_DESERT, CAT_MESA), thunderStrength, 0), 15, 30)
    #else
        uniform.float.sandStorm = smooth(if(in(biome_category, CAT_DESERT, CAT_MESA), rainStrength, 0), 15, 30)
    #endif
#else
    uniform.float.sandStorm = 0.0
#endif

uniform.float.noPuddleAreas = smooth(if(biome_precipitation != 1, 0,1), 15, 15)

############################
####### RANDOM STUFF #######
############################
# force LUT accumulation to have a high blend factor after a certain amount of time
uniform.float.dayChangeSmooth = smooth(if(abs(smooth(worldDay, 0.05, 0.05) - worldDay) > 0.01, 0.0, 1.0), 300.0, 0.0)

uniform.bool.worldTimeChangeCheck = if(frameCounter < 2, 1<2, abs(smooth(sunAngle, 1.0, 1.0) - sunAngle) > 0.01)

#if defined WATER_ON_CAMERA_EFFECT
    uniform.float.exitWater = smooth(if(isEyeInWater == 1,1,0),0.0,5.0)
    uniform.float.enterWater = smooth(if(isEyeInWater == 1,1,0),1.5,0.0)
#endif
#if defined ON_FIRE_DISTORT_EFFECT
    uniform.float.exitLava = smooth(if(isEyeInWater == 2 || is_burning,1,0),0.5,3.0)
#endif
uniform.float.is_soul_burning = smooth(if(is_on_soul_fire, 1, 0), 0.5, 3.0)

#if defined LOW_HEALTH_EFFECT || defined DAMAGE_TAKEN_EFFECT 
    #ifdef IS_IRIS
        variable.float.Currenthealth = currentPlayerHealth * maxPlayerHealth
        uniform.float.oneHeart = smooth(if(Currenthealth <= CRITICALLY_LOW_HEALTH_EFFECT_START && currentPlayerHealth > -1.0, 1,0), 0.0,1.0)
        uniform.float.threeHeart = smooth(if(Currenthealth <= max(LOW_HEALTH_EFFECT_START,CRITICALLY_LOW_HEALTH_EFFECT_START) && currentPlayerHealth > -1.0, 1,0), 0.0,1.0)

        variable.float.interpolatedHealth = smooth(if(is_hurt, 0.0, Currenthealth), 0.0, 1.0)

        # detect over 5 hearts of damage taken
        variable.bool.largeHealthDifference = (interpolatedHealth - Currenthealth) >= 7.0
        variable.bool.delayedCritDamage = smooth(if(largeHealthDifference, 1.0, 0.0), 0.0, 1.0) > 0.01

        uniform.float.CriticalDamageTaken = smooth(if(delayedCritDamage && currentPlayerHealth > -1.0, 1.0, 0.0), 0.5, 3.0)

        # detect over 2 hearts of damage taken
        variable.bool.smallHealthDifference = (interpolatedHealth - Currenthealth) >= 3.0
        uniform.float.MinorDamageTaken = smooth(if(smallHealthDifference && currentPlayerHealth > -1.0, 5.0, 0.0), 0.5, 1.0)

    #else
        uniform.bool.isDead = !is_alive
    #endif
#endif

#if defined OLD_CAVE_DETECTION
    variable.bool.inTheDarkTimer = smooth(if(eyeBrightness.y < 0.01, 1.0, 0.0), 10.0, 0.0) > 0.99

    uniform.float.caveDetection = smooth(if(inTheDarkTimer, 1.0, 0.0), 3.0, 1.0)
#else
    # the idea is to modulate the mood value between 0 - 1
    # then check if the modulated value is non-zero. when it goes back to zero, it will have a very slowly deteriorating value.
    # that value immediately regenerates when it modulates to 1 again. this way, i can check if the mood is climbing by checking if the smoothed value is above zero.

    # doing this is just for readablity, not required.
    variable.float.playerMoodPercent = playerMood*100.0 + 1.0
    # modulo 0 - 1
    variable.float.modMood = playerMoodPercent - floor(playerMoodPercent)

    # check if mood is increasing.
    # and only activate when mood is above the threshold (5% mood)
    # make sure it degenerates slow enough that mood can reach 5% after the mood flips to 0% from 100%
    variable.bool.moodIsClimbing = smooth(if(modMood > 0.50 && playerMoodPercent > 4.0, 1.0, eyeBrightness.x/240.0), 0.0, 10.0) > 0.1

    # add one more check to turn it off when lightlevels are not zero
    uniform.float.caveDetection = smooth(if(moodIsClimbing && eyeBrightness.y < 0.01, 1.0, 0.0), 3.0, 1.0)
#endif


uniform.float.wetnessAmount = smooth(if(biome_precipitation == 1 && rainStrength > 0.01, 3.0, 0.0), 100.0, 100.0)
variable.float.lightlevel = eyeBrightness.y/240.0
uniform.float.skyLightLevelSmooth = smooth(lightlevel,3.0,3.0)

#if defined RIPPLE_PUDDLES || defined RIPPLE_WATER
    uniform.float.rippleAmount = smooth(if(biome_precipitation == 1 && rainStrength > 0.01, 1.0, 0.0), 5.0, 20.0)
#endif

#if RAINBOW == 1
    uniform.float.rainbowAmount = smooth(if(biome_precipitation == 1 && rainStrength > 0.01, 1.0, 0.0), 400.0, RAINBOW_TIME)
#endif

uniform.float.snowAmount = 0.0
#if ShaderSnow == 1
    uniform.float.snowAmount = smooth(if(biome_precipitation == 2 && rainStrength > 0.01, 1.0, 0.0), 100.0, 400.0)
#endif
#if ShaderSnow == 2
    uniform.float.snowAmount = smooth(if(biome_precipitation == 2, 1.0, 0.0), 100.0, 400.0)
#endif
#if ShaderSnow == 3
    uniform.float.snowAmount = 1.0
#endif

#if AURORA_LOCATION == 1
    uniform.float.auroraAmount = smooth(if(biome_precipitation == 2, 1.0, 0.0), 100.0, 100.0)
#elif AURORA_LOCATION == 3
    variable.float.auroraDay = fract(worldDay * 0.16180339887 + 0.37)
    variable.float.isAuroraDay = if(auroraDay < AURORA_CHANCE * 0.01, 1.0, 0.0)
    uniform.float.auroraAmount = smooth(if(biome_precipitation == 2, 1.0, isAuroraDay), 200.0, 200.0)
#else
    uniform.float.auroraAmount = 1.0
#endif

#if CUMULONIMBUS == 1
    variable.float.cumulonimbusFadeTime = (CUMULONIMBUS_FADE_TIME * 60.0) + 60.0
    uniform.float.cumulonimbusStrength = smooth(if(thunderStrength > 0.0, 1.0, 0.0), 60.0, cumulonimbusFadeTime)
#endif

#in(biome_category, CAT_ICY)
# in(biome_category, CAT_DESERT, CAT_SAVANNA, CAT_MESA)

uniform.bool.isInColdArea = temperature < 0.4
uniform.bool.isInHotArea =  temperature > 1.0 

# the idea is to record the altitude at which you entered a body of water.
# using the smooth() function to interpolate to the newest value of eyeAltitude over time, i can make it take a very long time to interpolate. essentially freezing/unfreezing the value in place at any time i need to.

# force water surface level to a fixed height if you entered the water from an area in low light levels (caves). if youre above the hardcoded y level, allow it use the current height
variable.float.waterEnteredLowLight = if(eyeBrightness.y < 0.004 || frameCounter < 2, max(eyeAltitude, SEA_LEVEL), eyeAltitude)

variable.float.freezeTranstion = if(isEyeInWater == 1, 100000000000000.0, 0.0)
uniform.float.waterEnteredAltitude = smooth(waterEnteredLowLight, freezeTranstion, freezeTranstion)

#if WATER_INTERACTION == 1
    variable.float.freezeTranstion2 = if(isEyeInWater == 0, 100000000000000.0, 0.0)
    variable.float.waterEnteredPosition_X = smooth(-relativeEyePosition.x + cameraPosition.x, freezeTranstion, freezeTranstion)
    variable.float.waterEnteredPosition_Y = smooth(-relativeEyePosition.y + cameraPosition.y, freezeTranstion, freezeTranstion)
    variable.float.waterEnteredPosition_Z = smooth(-relativeEyePosition.z + cameraPosition.z, freezeTranstion, freezeTranstion)
    uniform.vec3.waterEnteredPosition = vec3(waterEnteredPosition_X, waterEnteredPosition_Y, waterEnteredPosition_Z)

    variable.float.waterExitedPosition_X = smooth(-relativeEyePosition.x + cameraPosition.x, freezeTranstion2, freezeTranstion2)
    variable.float.waterExitedPosition_Y = smooth(-relativeEyePosition.y + cameraPosition.y, freezeTranstion2, freezeTranstion2)
    variable.float.waterExitedPosition_Z = smooth(-relativeEyePosition.z + cameraPosition.z, freezeTranstion2, freezeTranstion2)
    uniform.vec3.waterExitedPosition = vec3(waterExitedPosition_X, waterExitedPosition_Y, waterExitedPosition_Z)

    uniform.float.waterEnteredTime = smooth(frameTimeCounter, freezeTranstion, freezeTranstion)
    uniform.float.waterExitedTime = smooth(frameTimeCounter, freezeTranstion2, freezeTranstion2)

    variable.vec3.currentVelocity = cameraPosition - previousCameraPosition
    variable.float.waterEnteredVelocity_X = smooth(currentVelocity.x/frameTime, freezeTranstion, freezeTranstion)
    variable.float.waterEnteredVelocity_Y = smooth(currentVelocity.y/frameTime, freezeTranstion, freezeTranstion)
    variable.float.waterEnteredVelocity_Z = smooth(currentVelocity.z/frameTime, freezeTranstion, freezeTranstion)
    uniform.vec3.waterEnteredVelocity = vec3(waterEnteredVelocity_X, waterEnteredVelocity_Y, waterEnteredVelocity_Z)

    variable.float.waterExitedVelocity_X = smooth(currentVelocity.x/frameTime, freezeTranstion2, freezeTranstion2)
    variable.float.waterExitedVelocity_Y = smooth(currentVelocity.y/frameTime, freezeTranstion2, freezeTranstion2)
    variable.float.waterExitedVelocity_Z = smooth(currentVelocity.z/frameTime, freezeTranstion2, freezeTranstion2)
    uniform.vec3.waterExitedVelocity = vec3(waterExitedVelocity_X, waterExitedVelocity_Y, waterExitedVelocity_Z)
#endif

# variable.float.exitedBiomePos_X = smooth(cameraPosition.x, freezeCameraPos, freezeCameraPos)
# variable.float.exitedBiomePos_Y = smooth(cameraPosition.y, freezeCameraPos, freezeCameraPos)
# variable.float.exitedBiomePos_Z = smooth(cameraPosition.z, freezeCameraPos, freezeCameraPos)
# variable.vec3.VARexitedBiomePos = vec3(exitedBiomePos_X, exitedBiomePos_Y, exitedBiomePos_Z)
# 
# variable.float.distanceTreshold = 200.0
# variable.bool.checkDistanceEpislonFromExitPos = equals(cameraPosition.x, VARexitedBiomePos.x, distanceTreshold) && equals(cameraPosition.y, VARexitedBiomePos.y, distanceTreshold) && equals(cameraPosition.z, VARexitedBiomePos.z, distanceTreshold)

#ifdef DROWNING_EFFECT
    uniform.float.drowningSmooth = smooth(if(currentPlayerAir < 0.01, 0.0, 1.0), 6.0, 12.0)
#endif

#  photon stuff
uniform.vec2.view_res = vec2(viewWidth, viewHeight)
uniform.vec2.view_pixel_size = vec2(1.0 / viewWidth, 1.0 / viewHeight)

texture.noise = texture/noises.png
texture.composite.colortex6 = texture/blueNoise.png

variable.float.texelSizeX = 1.0/viewWidth
variable.float.texelSizeY = 1.0/viewHeight
uniform.vec2.texelSize = vec2(texelSizeX,texelSizeY)

#if defined RESPONSIVE_TAA
    uniform.int.framemod8 = frameCounter%4
#else
    uniform.int.framemod8 = frameCounter%8
#endif

#if defined DISTANT_HORIZONS || defined VOXY
    uniform.int.framemod4_DH = frameCounter%4
#endif

variable.float.sunPosXSTEUFF = sunPosition.x
variable.float.sunPosYSTEUFF = sunPosition.y
variable.float.sunPosZSTEUFF = sunPosition.z

variable.float.moonPosXSTEUFF = moonPosition.x
variable.float.moonPosYSTEUFF = moonPosition.y
variable.float.moonPosZSTEUFF = moonPosition.z

variable.float.normSunVec = sqrt(sunPosXSTEUFF*sunPosXSTEUFF+sunPosYSTEUFF*sunPosYSTEUFF+sunPosZSTEUFF*sunPosZSTEUFF)
variable.float.normMoonVec = sqrt(moonPosXSTEUFF*moonPosXSTEUFF+moonPosYSTEUFF*moonPosYSTEUFF+moonPosZSTEUFF*moonPosZSTEUFF)
variable.float.normUpVec = sqrt(upPosition.x*upPosition.x+upPosition.y*upPosition.y+upPosition.z*upPosition.z)

variable.float.sunPosX = (sunPosition.x/normSunVec)
variable.float.sunPosY = (sunPosition.y/normSunVec)
variable.float.sunPosZ = (sunPosition.z/normSunVec)

variable.float.moonPosX = (moonPosition.x/normMoonVec)
variable.float.moonPosY = (moonPosition.y/normMoonVec)
variable.float.moonPosZ = (moonPosition.z/normMoonVec)

uniform.vec3.sunVec=vec3(sunPosX,sunPosY,sunPosZ)

variable.float.upPosX =(upPosition.x)/normUpVec
variable.float.upPosY =(upPosition.y)/normUpVec
variable.float.upPosZ =(upPosition.z)/normUpVec

uniform.vec3.upVec=vec3(upPosX,upPosY,upPosZ)

#if dayStartTick < nightStartTick
    variable.float.smoothTimeFade = if(worldTime >= dayStartTick && worldTime < nightStartTick, 1.0/daySpeed, 1.0/nightSpeed)
#else
    variable.float.smoothTimeFade = if(worldTime <= dayStartTick && worldTime > nightStartTick, 1.0/nightSpeed, 1.0/daySpeed)
#endif

#ifdef SMOOTH_SUN_ROTATION
    uniform.float.sunElevation = smooth(sunPosX*upPosX+sunPosY*upPosY+sunPosZ*upPosZ, smoothTimeFade, smoothTimeFade)
#else
    uniform.float.sunElevation = sunPosX*upPosX+sunPosY*upPosY+sunPosZ*upPosZ
#endif

#ifdef CAELUM_SUPPORT
    variable.float.moonFlip = 1.0
#else
    variable.float.moonFlip = -1.0
#endif

#ifdef SMOOTH_MOON_ROTATION
    uniform.float.moonElevation = smooth(moonPosX*upPosX+moonPosY*upPosY+moonPosZ*upPosZ, smoothTimeFade, smoothTimeFade)*moonFlip
#else
    uniform.float.moonElevation = (moonPosX*upPosX+moonPosY*upPosY+moonPosZ*upPosZ)*moonFlip
#endif

# uniform.float.lightSign = clamp(sunElevation * 1000000000000000000, 0.0, 1.0) * 2.0 - 1.0
# 
#Max angle at frustrum diagonal
# variable.float.maxAngle = atan(1.0 / gbufferProjection.1.1 * sqrt(1.0+(aspectRatio * aspectRatio)))
# uniform.float.cosFov = cos(maxAngle)
# variable.float.viewDirX = gbufferModelViewInverse.2.0
# variable.float.viewDirY = gbufferModelViewInverse.2.1
# variable.float.viewDirZ = gbufferModelViewInverse.2.2
# variable.float.normView = sqrt(viewDirX*viewDirX + viewDirY*viewDirY + viewDirZ*viewDirZ)
# variable.float.shViewDirX = (shadowModelView.0.0 * viewDirX + shadowModelView.1.0 * viewDirY + shadowModelView.2.0 * viewDirZ)/normView
# variable.float.shViewDirY = (shadowModelView.0.1 * viewDirX + shadowModelView.1.1 * viewDirY + shadowModelView.2.1 * viewDirZ)/normView
# variable.float.shViewDirZ = (shadowModelView.0.2 * viewDirX + shadowModelView.1.2 * viewDirY + shadowModelView.2.2 * viewDirZ)/normView
# 
# uniform.vec3.shadowViewDir = vec3(shViewDirX, shViewDirY, shViewDirZ)
# 
# variable.float.shStartX = (shadowModelView.0.0 * gbufferModelViewInverse.3.0 + shadowModelView.1.0 * gbufferModelViewInverse.3.1 + shadowModelView.2.0 * gbufferModelViewInverse.3.2)
# variable.float.shStartY = (shadowModelView.0.1 * gbufferModelViewInverse.3.0 + shadowModelView.1.1 * gbufferModelViewInverse.3.1 + shadowModelView.2.1 * gbufferModelViewInverse.3.2)
# variable.float.shStartZ = (shadowModelView.0.2 * gbufferModelViewInverse.3.0 + shadowModelView.1.2 * gbufferModelViewInverse.3.1 + shadowModelView.2.2 * gbufferModelViewInverse.3.2)
# 
# uniform.vec3.shadowCamera = vec3(shStartX + shadowModelView.3.0 + shViewDirX*2., shStartY + shadowModelView.3.1 + shViewDirY*2., shStartZ + shadowModelView.3.2 + shViewDirZ*2.0)
# 
#if END_BLACK_HOLE == 1
    variable.float.blackHoleViewDirX = -gbufferModelViewInverse.2.0
    variable.float.blackHoleViewDirY = -gbufferModelViewInverse.2.1
    variable.float.blackHoleViewDirZ = -gbufferModelViewInverse.2.2
    variable.float.blackHoleViewLen = sqrt(blackHoleViewDirX*blackHoleViewDirX + blackHoleViewDirY*blackHoleViewDirY + blackHoleViewDirZ*blackHoleViewDirZ)
    variable.float.blackHoleCenterDot = abs((blackHoleViewDirX*0.18 + blackHoleViewDirY*0.42 + blackHoleViewDirZ*-0.89) / blackHoleViewLen)
    variable.float.blackHoleCenterRaw = clamp((blackHoleCenterDot - 0.99905) / 0.00095, 0.0, 1.0)
    uniform.float.blackHoleCenterFocus = smooth(blackHoleCenterRaw, 1.35, 0.22)
#else
    uniform.float.blackHoleCenterFocus = 0.0
#endif

variable.float.wSunX = (gbufferModelViewInverse.0.0 * sunPosX + gbufferModelViewInverse.1.0 * sunPosY + gbufferModelViewInverse.2.0 * sunPosZ)
variable.float.wSunY = (gbufferModelViewInverse.0.1 * sunPosX + gbufferModelViewInverse.1.1 * sunPosY + gbufferModelViewInverse.2.1 * sunPosZ)
variable.float.wSunZ = (gbufferModelViewInverse.0.2 * sunPosX + gbufferModelViewInverse.1.2 * sunPosY + gbufferModelViewInverse.2.2 * sunPosZ)

variable.float.WsmoothSunX = smooth(wSunX, smoothTimeFade, smoothTimeFade)
variable.float.WsmoothSunY = smooth(wSunY, smoothTimeFade, smoothTimeFade)
variable.float.WsmoothSunZ = smooth(wSunZ, smoothTimeFade, smoothTimeFade)

uniform.vec3.unsigned_WsunVecSmooth = vec3(WsmoothSunX, WsmoothSunY, WsmoothSunZ)


variable.float.wMoonX = (gbufferModelViewInverse.0.0 * moonPosX + gbufferModelViewInverse.1.0 * moonPosY + gbufferModelViewInverse.2.0 * moonPosZ)
variable.float.wMoonY = (gbufferModelViewInverse.0.1 * moonPosX + gbufferModelViewInverse.1.1 * moonPosY + gbufferModelViewInverse.2.1 * moonPosZ)
variable.float.wMoonZ = (gbufferModelViewInverse.0.2 * moonPosX + gbufferModelViewInverse.1.2 * moonPosY + gbufferModelViewInverse.2.2 * moonPosZ)

variable.float.WsmoothMoonX = smooth(wMoonX, smoothTimeFade, smoothTimeFade)
variable.float.WsmoothMoonY = smooth(wMoonY, smoothTimeFade, smoothTimeFade)
variable.float.WsmoothMoonZ = smooth(wMoonZ, smoothTimeFade, smoothTimeFade)

uniform.vec3.unsigned_WmoonVecSmooth = vec3(WsmoothMoonX, WsmoothMoonY, WsmoothMoonZ)

variable.float.worldDayTime = fmod(worldDay, 100)*24000.0

uniform.float.worldTimeSmooth2 = smooth(worldTime+worldDayTime, smoothTimeFade, smoothTimeFade)-worldDayTime

uniform.float.worldTimeSmooth = if(worldTime > 200 || worldDayTime > 0, worldTimeSmooth2, worldTime)

# 
# variable.float.shSunX = (shadowModelView.0.0 * wSunX + shadowModelView.1.0 * wSunY + shadowModelView.2.0 * wSunZ)
# variable.float.shSunY = (shadowModelView.0.1 * wSunX + shadowModelView.1.1 * wSunY + shadowModelView.2.1 * wSunZ)
# variable.float.shSunZ = (shadowModelView.0.2 * wSunX + shadowModelView.1.2 * wSunY + shadowModelView.2.2 * wSunZ)
# 
# uniform.vec3.shadowLightVec = vec3(lightSign*shSunX, lightSign*shSunY, lightSign*shSunZ)
# 
# uniform.float.shadowMaxProj = 150.0/abs(sunPosY) 

#ifdef VOXY
uniform.float.dhVoxyNearPlane = 16.0
uniform.float.dhVoxyFarPlane = 48000.0
uniform.int.dhVoxyRenderDistance = vxRenderDistance*16
#else
uniform.float.dhVoxyNearPlane = dhNearPlane
uniform.float.dhVoxyFarPlane = dhFarPlane
uniform.int.dhVoxyRenderDistance = dhRenderDistance
#endif


#################################
####### VOXEL BASED STUFF #######
#################################

### #if defined VOXEL_REFLECTIONS
### 
###     bufferObject.5 = 1610612736
###     #if   LPV_SIZE == 8
###     image.imgQuarterVoxelMask = none RED_INTEGER R8UI UNSIGNED_BYTE true false 64 64 64
###     #elif LPV_SIZE == 7
###     image.imgQuarterVoxelMask = none RED_INTEGER R8UI UNSIGNED_BYTE true false 32 32 32
###     #else
###     image.imgQuarterVoxelMask = none RED_INTEGER R8UI UNSIGNED_BYTE true false 16 16 16
###     #endif
### 
###     customTexture.gtexture=minecraft:textures/atlas/blocks.png
### #endif

#if defined LPV_ENABLED || (WATER_INTERACTION == 2 && IRIS_VERSION < 11004) || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0))
    image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048

    #if   LPV_SIZE == 8 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
        image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 256 256 256
        image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 256 256 256
        image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 256 256 256
    #elif LPV_SIZE == 7 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
        image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 128 128 128
        image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 128 128 128
        image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 128 128 128
    #elif LPV_SIZE == 6 && (defined LPV_ENABLED || (defined SHADER_GRASS && (defined GRASS_DETECT_FALLOFF || defined GRASS_DETECT_INV_FALLOFF || REPLACE_SHORT_GRASS > 0)))
        image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 64 64 64
        image.imgLpv1 = texLpv1 RGB RGBA8 UNSIGNED_BYTE false false 64 64 64
        image.imgLpv2 = texLpv2 RGB RGBA8 UNSIGNED_BYTE false false 64 64 64
    #elif WATER_INTERACTION == 2 && IRIS_VERSION < 11004
        image.imgVoxelMask = none RED_INTEGER R16UI UNSIGNED_SHORT true false 5 5 5  
        program.world1/shadowcomp.enabled = false
        program.world0/shadowcomp.enabled = false
        program.world-1/shadowcomp.enabled = false
    #endif
#else
    #if defined PHOTONICS && defined PHOTONICS_ACTIVE && !defined ENABLE_PHOTONICS_HANDHELD
        image.imgBlockData = texBlockData RG_INTEGER RG32UI UNSIGNED_INT false false 2048
    #else
        program.world1/setup.enabled = false
        program.world0/setup.enabled = false
        program.world-1/setup.enabled = false
    #endif
    
    #ifndef END_ISLAND_LIGHT
        program.world1/shadow.enabled = false
        program.world1/shadow_entities.enabled = false
    #endif
    #ifdef END_ISLAND_LIGHT
        program.world1/shadowcomp.enabled = false
    #endif
    program.world-1/shadow.enabled = false
    program.world-1/shadow_entities.enabled = false

    #if !defined RENDER_ENTITY_SHADOWS && !defined RENDER_PLAYER_SHADOWS
        program.world0/shadow_entities.enabled = false
        program.world1/shadow_entities.enabled = false
        program.world-1/shadow_entities.enabled = false
    #endif
    
    program.world1/shadowcomp.enabled = false
    program.world0/shadowcomp.enabled = false
    program.world-1/shadowcomp.enabled = false
#endif

bufferObject.4 = 1024

#if defined CUSTOM_MOON_ROTATION
    customTexture.CoronaTex = texture/corona.png
#endif

#if WATER_INTERACTION < 2
    program.world1/prepare.enabled = false
    program.world0/prepare.enabled = false

    program.world1/prepare1.enabled = false
    program.world0/prepare1.enabled = false

    program.world1/prepare2.enabled = false
    program.world0/prepare2.enabled = false

    program.world1/prepare3.enabled = false
    program.world0/prepare3.enabled = false
#else
    #if IRIS_VERSION >= 11004
    uniform.bool.onWaterSurface = vehicleInWater || feetInWater
    #endif

    #if WATER_SIM_SCALE == 0
        #if WATER_SIM_DISTANCE == 1
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 512 512
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 512 512
        #endif
        #if WATER_SIM_DISTANCE == 2
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 1024 1024
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 1024 1024
        #endif
        #if WATER_SIM_DISTANCE == 3
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 1536 1536
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 1536 1536
        #endif
        #if WATER_SIM_DISTANCE == 4
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 2048 2048
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 2048 2048
        #endif
    #elif WATER_SIM_SCALE == 1
        #if WATER_SIM_DISTANCE == 1
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 1024 1024
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 1024 1024
        #endif
        #if WATER_SIM_DISTANCE == 2
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 2048 2048
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 2048 2048
        #endif
        #if WATER_SIM_DISTANCE == 3
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 3072 3072
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 3072 3072
        #endif
        #if WATER_SIM_DISTANCE == 4
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 4096 4096
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 4096 4096
        #endif
    #else
        #if WATER_SIM_DISTANCE == 1
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 2048 2048
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 2048 2048
        #endif
        #if WATER_SIM_DISTANCE == 2
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 4096 4096
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 4096 4096
        #endif
        #if WATER_SIM_DISTANCE == 3
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 6144 6144
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 6144 6144
        #endif
        #if WATER_SIM_DISTANCE == 4
            image.waveSim = waveSimSampler RG RG16F HALF_FLOAT false false 8192 8192
            image.waveSim2 = waveSim2Sampler RGBA RGBA16F HALF_FLOAT false false 8192 8192
        #endif
    #endif
#endif
