
#====================================================================================================
#
#    Copyright (C) 2025 Pyvtron VX Shaders - Pyvtron
#
#    All Rights Reserved unless otherwise explicitly stated.
#
#    Before You Do Something With Pyvtron VX Shaders, You MUST Read The License
#
#    License: https://pyvtron.22web.org/licenses/pccl
#
#====================================================================================================

# Pyvtron VX Shaders - The Shader System

#
# Shader Properties
#

clouds                                                      = off
sun                                                         = false
moon                                                        = true
stars                                                       = false
vignette                                                    = false
shadowTranslucent                                           = true
frustum.culling                                             = true
shadow.culling                                              = false
shadow.enabled                                              = true
particles.before.deferred                                   = false


version.1.21.8                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21.7                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21.6                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21.4                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21.3                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.21                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.20.6                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.20.4                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.20.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.20.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.20                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.19.4                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.19.3                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.19.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.19.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.19                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.18.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.18.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.18                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.17.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.17                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.16.5                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.16.4                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.16.3                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.16.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.16.1                                              = Pyvtron VX Is Not Compatible With OptiFine!

version.1.15.2                                              = Pyvtron VX Is Not Compatible With OptiFine!

version.1.14.4                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.14.3                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.14.2                                              = Pyvtron VX Is Not Compatible With OptiFine!

version.1.13.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.13.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.13                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.12.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.12.1                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.12                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.11.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.11                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.10.2                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.10                                                = Pyvtron VX Is Not Compatible With OptiFine!

version.1.9.4                                               = Pyvtron VX Is Not Compatible With OptiFine!
version.1.9.2                                               = Pyvtron VX Is Not Compatible With OptiFine!
version.1.9                                                 = Pyvtron VX Is Not Compatible With OptiFine!

version.1.8.9                                               = Pyvtron VX Is Not Compatible With OptiFine!
version.1.8.8                                               = Pyvtron VX Is Not Compatible With OptiFine!
version.1.8                                                 = Pyvtron VX Is Not Compatible With OptiFine!

version.1.7.10                                              = Pyvtron VX Is Not Compatible With OptiFine!
version.1.7.2                                               = Pyvtron VX Is Not Compatible With OptiFine!

#
# Programs
#

program.composite7.enabled                                  = DOF
#program.world-1/composite7.enabled                         = DOF
program.world1/composite7.enabled                           = DOF
program.gbuffers_spidereyes.enabled                         = EYES_LIGHTING
#program.world-1/gbuffers_spidereyes.enabled                = EYES_LIGHTING
program.world1/gbuffers_spidereyes.enabled                  = EYES_LIGHTING                  
program.gbuffers_block.enabled                              = false
#program.world-1/gbuffers_block.enabled                     = false
program.world1/gbuffers_block.enabled                       = false


# ================================================
#  TO DO: Finish DH Support + Nether + End Support
# ================================================

#
# Transparent Entities (Iris only)
#

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

program.world0/gbuffers_entities_translucent.enabled        = TRANSLUCENT_ENTITIES && IS_IRIS
program.world0/gbuffers_block_translucent.enabled           = TRANSLUCENT_ENTITIES && IS_IRIS
program.world-1/gbuffers_entities_translucent.enabled       = TRANSLUCENT_ENTITIES && IS_IRIS
program.world-1/gbuffers_block_translucent.enabled          = TRANSLUCENT_ENTITIES && IS_IRIS
program.world1/gbuffers_entities_translucent.enabled        = TRANSLUCENT_ENTITIES && IS_IRIS
program.world1/gbuffers_block_translucent.enabled           = TRANSLUCENT_ENTITIES && IS_IRIS

#
# Distant Horizons + Iris
#

#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.world-1/dh_terrain.enabled                      = true
    #program.world-1/dh_water.enabled                        = true

    #program.world1/dh_terrain.enabled                       = true
    #program.world1/dh_water.enabled                         = true

    blend.dh_terrain                                        = off
    blend.dh_water                                          = SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE_MINUS_DST_ALPHA ONE

    renderStage.dh_terrain                                  = SOLID, OUTLINE, DEBUG
    renderStage.dh_water                                    = SOLID

#else
    program.world0/dh_terrain.enabled                       = false
    program.world0/dh_water.enabled                         = false

    #program.world-1/dh_terrain.enabled                     = false
    #program.world-1/dh_water.enabled                       = false

    #program.world1/dh_terrain.enabled                      = false
    #program.world1/dh_water.enabled                        = false

    dhShadow.enabled                                        = false
#endif

#
# Blending
#

blend.gbuffers_basic                                        = ONE ZERO ONE ZERO
blend.gbuffers_textured                                     = ONE ZERO ONE ZERO
blend.gbuffers_textured_lit                                 = ONE ZERO ONE ZERO
blend.gbuffers_skybasic                                     = ONE ZERO ONE ZERO
blend.gbuffers_skytextured                                  = ONE ZERO ONE ZERO
blend.gbuffers_terrain                                      = ONE ZERO ONE ZERO
blend.gbuffers_damagedblock                                 = ONE ZERO ONE ZERO
blend.gbuffers_entities                                     = ONE ZERO ONE ZERO
#blend.gbuffers_armor_glint                                 = ONE ZERO ONE ZERO
blend.gbuffers_spidereyes                                   = ONE ZERO ONE ZERO
blend.gbuffers_hand                                         = ONE ZERO ONE ZERO
blend.gbuffers_water                                        = ONE ZERO ONE ZERO
blend.gbuffers_hand_water                                   = ONE ZERO ONE ZERO
blend.gbuffers_weather                                      = ONE ONE ONE ZERO

#
# Alpha Tests
#

alphaTest.gbuffers_basic                                   = off
alphaTest.gbuffers_textured_lit                            = on
alphaTest.gbuffers_textured                                = off
alphaTest.gbuffers_weather                                 = off
alphaTest.gbuffers_water                                   = off
alphaTest.gbuffers_terrain                                 = 0.1
alphaTest.gbuffers_entities                                = 0.1
alphaTest.gbuffers_block                                   = 0.1
alphaTest.gbuffers_hand                                    = 0.1
alphaTest.gbuffers_hand_water                              = 0.1
alphaTest.gbuffers_damagedblock                            = 0.1
alphaTest.gbuffers_spidereyes                              = 0.1
alphaTest.gbuffers_block_translucent                       = off
alphaTest.gbuffers_entities_translucent                    = off
alphaTest.shadow                                           = on

#
# Textures
#

texture.noise                                               = Images/Noise.png
texture.shadow.shadowtex0                                   = Images/Voronoi.dat 512 512 UNSIGNED_BYTE A LUMINANCE
texture.shadow.shadowtex1                                   = Images/Voronoi.dat 512 512 UNSIGNED_BYTE A LUMINANCE
texture.shadow.colortex4                                    = Images/Voronoi.dat 512 512 UNSIGNED_BYTE A LUMINANCE
texture.shadow.colortex5                                    = Images/Voronoi.dat 512 512 UNSIGNED_BYTE A LUMINANCE
texture.gbuffers.gaux1                                      = Images/RippleAnimation1.png
texture.gbuffers.gaux2                                      = Images/RippleAnimation2.png
texture.gbuffers.gaux3                                      = Images/RippleAnimation3.png

#
# Shader Option Menu
#

screen                                                      = [PYVTRON_VX_SHADER_INFO] <empty> [ATMOSPHERICS] [LIGHTING] [POSTPROCESSING] [SURFACE] [SHORTCUT] [DEBUG]         

screen.RAYTRACING                                           = RAYTRACE_QUALITY RAYTRACE_REFINEMENT RAYTRACE_REFINEMENT_STEPS
screen.LIGHTING                                             = [LIGHT_SOURCE] [GLOWING_BLOCKS] [HELDLIGHT] [SHADOWS] [GI_OPTION]

screen.LIGHT_SOURCE                                         = SUNLIGHT_INTENSITY NIGHT_BRIGHTNESS sunPathRotation <empty> TORCHLIGHT_BRIGHTNESS TORCHLIGHT_COLOR_TEMPERATURE NOLIGHT_BRIGHTNESS

screen.GLOWING_BLOCKS                                       = GLOWING_LAPIS_BLOCK GLOWING_LAPIS_BLOCK_STRENGTH <empty> GLOWING_EMERALD_BLOCK GLOWING_EMERALD_BLOCK_STRENGTH <empty> GLOWING_DIAMOND_BLOCK GLOWING_DIAMOND_BLOCK_STRENGTH

screen.HELDLIGHT                                            = HELDLIGHT_BRIGHTNESS HELDLIGHT_FALLOFF <empty> NORMAL_HELDLIGHT SPECULAR_HELDLIGHT <empty> FLASHLIGHT_HELDLIGHT FLASHLIGHT_HELDLIGHT_FALLOFF

screen.SHADOWS                                              = shadowMapResolution shadowDistance SHADOW_MAP_BIAS <empty> VARIABLE_PENUMBRA_SHADOWS COLORED_SHADOWS SCREEN_SPACE_SHADOWS <empty> SUNLIGHT_LEAK_FIX
screen.GI_OPTION                                            = GI <empty> GI_QUALITY GI_FILTER_QUALITY GI_RENDER_RESOLUTION GI_RADIUS GI_BRIGHTNESS GI_SATURATION SKYLIGHT_EFFECT_GI ENABLE_SSAO 

screen.SURFACE                                              = TEXTURE_RESOLUTION <empty> [POM] [PBR] [WATER_RAIN] [SKY_TEXTURE] [SURFMISC]
screen.POM                                                  = PARALLAX SMOOTH_PARALLAX <empty> PARALLAX_DEPTH PARALLAX_DISTANCE <empty> PARALLAX_SHADOW

screen.PBR                                                  = TEXTURE_PBR_FORMAT TERRAIN_NORMAL_CLAMP ROUGHNESS_CLAMP HAND_NORMAL_CLAMP ENTITY_NORMAL_CLAMP SKY_IMAGE_LOD SKY_IMAGE_HORIZON  
screen.WATER_RAIN                                           = WATER_WAVES_SPEED WATER_PARALLAX <empty> RAIN_VISIBILITY RAIN_FOG RAIN_FOG_DENSITY RAIN_SPLASH_EFFECT RAIN_SPLASH_BILATERAL UNDERWATER_FOG <empty> drynessHalflife wetnessHalflife <empty>

screen.SKY_TEXTURE                                          = STARS STARS_SCALE STARS_AMOUNT ROUND_MOON SKY_TEXTURE_BRIGHTNESS
screen.SURFMISC                                             = ENTITY_STATUS_COLOR WAVING_PLANTS EYES_LIGHTING PLANT_TO SELECTION_BOX_COLOR GENERAL_GRASS_FIX

screen.ATMOSPHERICS                                         = [VOLUMETRIC_CLOUDS] [PLANAR_CLOUDS] [VOLUMETRIC_FOG] [LIGHT_RAYS] [SKY_MISC] 
screen.VOLUMETRIC_CLOUDS                                    = VOLUMETRIC_CLOUDS CLOUD_ACCURACY CLOUD_SPEED [CLEAR_SETTING] [RAIN_SETTING] CLOUD_FBM_OCTAVES ADAPTIVE_OCTAVES CLOUD_NOISE_SCALE ATMO_TRAINSITION_DISTANCE CLOUD_MULTISCAT_QUALIT CLOUD_SKYLIGHT_QUALITY

screen.PLANAR_CLOUDS                                        = PLANE_CLOUDS PC_COVERAGE PC_NOISE_SCALE PC_ALTITUDE			   
screen.CLEAR_SETTING                                        = CLOUD_CLEAR_ALTITUDE CLOUD_CLEAR_SUNLIGHTING CLOUD_CLEAR_THICKNESS CLOUD_CLEAR_SKYLIGHTING CLOUD_CLEAR_COVERY CLOUD_CLEAR_DENSITY CLOUD_CLEAR_SUNLIGHT_LENGTH CLOUD_CLEAR_SKYLIGHT_LENGTH CLOUD_CLEAR_FBM_OCTSCALE CLOUD_CLEAR_UPPER_LIMIT CLOUD_CLEAR_LOWER_LIMIT 

screen.RAIN_SETTING                                         = CLOUD_RAIN_ALTITUDE CLOUD_RAIN_THICKNESS CLOUD_RAIN_SUNLIGHTING CLOUD_RAIN_SKYLIGHTING CLOUD_RAIN_COVERY CLOUD_RAIN_DENSITY CLOUD_RAIN_SUNLIGHT_LENGTH CLOUD_RAIN_SKYLIGHT_LENGTH CLOUD_RAIN_FBM_OCTSCALE CLOUD_RAIN_UPPER_LIMIT CLOUD_RAIN_LOWER_LIMIT
screen.VOLUMETRIC_FOG                                       = VFOG VFOG_QUALITY VFOG_MULTISCAT_QUALITY VFOG_FOG_DENSITY VFOG_DENSITY_BASE VFOG_DENSITY VFOG_IGNORE_WORLDTIME [VOLUMETRIC_CLOUD_FOG] VFOG_REFLECTION LANDFOG_REFLECTION VFOG_NOISE_TYPE VFOG_STAINED VFOG_HQ_CLOUD_SHADOW VFOG_STAINED VFOG_FALLOFF VFOG_SUNLIGHT_DENSITY VFOG_HEIGHT VFOG_HEIGHT_2 INDOOR_VFOG VFOG_SUNLIGHT_STEPLENGTH VFOG_SUNLIGHT_STEPS

screen.VOLUMETRIC_CLOUD_FOG                                 = VCFOG_QUALITY VCFOG_RANGE VCFOG_HIGH_ACCURACY VCFOG_DENSITY VCFOG_H_FADE_HEIGHT VCFOG_H_FADE_MIDPOINT VCFOG_D_FADE_RATIO
screen.LIGHT_RAYS                                           = VOLUMETRIC_LIGHT_STRENGTH VOLUMETRIC_LIGHT_QUALITY 

screen.SKY_MISC                                             = RAYLEIGH_AMOUNT AURORA AURORA_STRENGTH					
screen.POSTPROCESSING                                       = TAA <empty> [LENS_FLARE] [DOF] [EXPOSURE_SETTING] [MOTION_BLUR_SETTING] [BLOOM] [COLOR] [POSTMISC]

screen.LENS_FLARE                                           = LENS_FLARE LENS_FLARE_STRENGTH LENS_FLARE_SAMPLES LENS_FLARE_BLUR_SAMPLES LENS_FLARE_THRESHOLD GHOST_FLARE_SPACING_MULT HALO_FLARE_SPACING_MULT

screen.DOF                                                  = DOF <empty> DOF_SAMPLES CAMERA_FOCUS_MODE CAMERA_FOCAL_POINT DISTORTION_BARREL CAMERA_APERTURE
screen.EXPOSURE_SETTING                                     = MANUAL_EXPOSURE EXPOSURE_TIME AE_MODE AE_CURVE AE_OFFSET SMOOTH_EXPOSURE LUMINANCE_WEIGHT LUMINANCE_WEIGHT_MODE LUMINANCE_WEIGHT_STRENGTH EV_VALUE
screen.MOTION_BLUR_SETTING                                  = MOTION_BLUR MOTION_BLUR_STRENGTH MOTION_BLUR_DITHER MOTION_BLUR_QUALITY MOTION_BLUR_SUTTER_ANGLE

screen.BLOOM                                                = BLOOM_EFFECTS BLOOM_AMOUNT <empty> BLOOM_KB BLOOM_DB BLOOM_DB_MULTIPLIER
screen.COLOR                                                = TONEMAP_OPERATOR TONEMAP_CURVE <empty> ADVANCED_COLOR [ADVANCED_COLOR]

screen.ADVANCED_COLOR                                       = SATURATION GAMMA LUMA_GAMMA WHITE_CLIP WHITE_BALANCE TINT_BALANCE
screen.POSTMISC                                             = POST_SHARPENING <empty> LOWLIGHT_COLORFADE

screen.SHORTCUT                                             = sunPathRotation shadowDistance CLOUD_SHADOW LUMINANCE_WEIGHT MANUAL_EXPOSURE EV_VALUE
screen.DEBUG                                                = WHITE_DEBUG_WORLD LUT CLOUD_SPEED FTC_OFFSET
                                                     
#
# Sliders
#

sliders                                                     = CLOUD_SPEED NIGHT_BRIGHTNESS sunPathRotation TORCHLIGHT_BRIGHTNESS TORCHLIGHT_COLOR_TEMPERATURE NOLIGHT_BRIGHTNESS GLOWING_LAPIS_BLOCK_STRENGTH GLOWING_EMERALD_BLOCK_STRENGTH GLOWING_DIAMOND_BLOCK_STRENGTH HELDLIGHT_BRIGHTNESS HELDLIGHT_FALLOFF FLASHLIGHT_HELDLIGHT_FALLOFF shadowMapResolution shadowDistance SHADOW_MAP_BIAS GI_QUALITY GI_FILTER_QUALITY GI_RADIUS GI_BRIGHTNESS GI_SATURATION TEXTURE_RESOLUTION PARALLAX_DEPTH PARALLAX_DISTANCE SKY_IMAGE_LOD WATER_WAVES_SPEED RAIN_VISIBILITY wetnessHalflife drynessHalflife PC_COVERAGE PC_NOISE_SCALE PC_ALTITUDE CLOUD_ACCURACY CLOUD_FBM_OCTAVES CLOUD_NOISE_SCALE CLOUD_MULTISCAT_QUALITY CLOUD_SPEED CLOUD_SUNLIGHT_QUALITY CLOUD_SKYLIGHT_QUALITY ATMO_TRAINSITION_DISTANCE CLOUD_CLEAR_THICKNESS CLOUD_CLEAR_COVERY CLOUD_CLEAR_DENSITY CLOUD_CLEAR_SKYLIGHTING CLOUD_CLEAR_SUNLIGHT_LENGTH CLOUD_CLEAR_SKYLIGHT_LENGTH CLOUD_CLEAR_FBM_OCTSCALE CLOUD_CLEAR_UPPER_LIMIT CLOUD_CLEAR_LOWER_LIMIT CLOUD_RAIN_ALTITUDE CLOUD_RAIN_THICKNESS CLOUD_RAIN_COVERY CLOUD_RAIN_DENSITY CLOUD_RAIN_SUNLIGHTING CLOUD_RAIN_SKYLIGHTING CLOUD_RAIN_SUNLIGHT_LENGTH CLOUD_RAIN_SKYLIGHT_LENGTH CLOUD_RAIN_FBM_OCTSCALE CLOUD_RAIN_UPPER_LIMIT CLOUD_RAIN_LOWER_LIMIT VFOG_NOISE_TYPE VFOG_DENSITY VFOG_DENSITY_BASE VFOG_QUALITY VFOG_HEIGHT VFOG_HEIGHT_2 VFOG_FALLOFF VFOG_SUNLIGHT_DENSITY VFOG_FOG_DENSITY VCFOG_RANGE VCFOG_DENSITY VCFOG_QUALITY VCFOG_H_FADE_HEIGHT VCFOG_H_FADE_MIDPOINT VCFOG_D_FADE_RATIO RAYLEIGH_AMOUNT RAIN_FOG_DENSITY AURORA_STRENGTH DOF_SAMPLES CAMERA_APERTURE CAMERA_FOCAL_POINT centerDepthHalflife DOF_MANUAL_FOCAL_POINT DISTORTION_BARREL EV_VALUE AE_OFFSET AE_CURVE EXPOSURE_TIME LUMINANCE_WEIGHT_STRENGTH MOTION_BLUR_QUALITY MOTION_BLUR_SUTTER_ANGLE BLOOM_AMOUNT BLOOM_DB_MULTIPLIER TONEMAP_OPERATOR TONEMAP_CURVE SATURATION GAMMA LUMA_GAMMA WHITE_CLIP WHITE_BALANCE TINT_BALANCE POST_SHARPENING UPPER_LIMIT STARS_SCALE STARS_AMOUNT LOWER_LIMIT FTC_OFFSET VOLUMETRIC_LIGHT_STRENGTH VOLUMETRIC_LIGHT_QUALITY RAYTRACE_QUALITY RAYTRACE_REFINEMENT_STEPS CLOUD_CLEAR_ALTITUDE CLOUD_CLEAR_SUNLIGHTING CLOUD_CLEAR_THICKNESS CLOUD_CLEAR_SKYLIGHTING CLOUD_CLEAR_COVERY CLOUD_CLEAR_DENSITY CLOUD_CLEAR_SUNLIGHT_LENGTH CLOUD_CLEAR_SKYLIGHT_LENGTH CLOUD_CLEAR_FBM_OCTSCALE CLOUD_CLEAR_UPPER_LIMIT CLOUD_CLEAR_LOWER_LIMIT CLOUD_RAIN_ALTITUDE CLOUD_RAIN_THICKNESS CLOUD_RAIN_SUNLIGHTING CLOUD_RAIN_SKYLIGHTING CLOUD_RAIN_COVERY CLOUD_RAIN_DENSITY CLOUD_RAIN_SUNLIGHT_LENGTH CLOUD_RAIN_SKYLIGHT_LENGTH CLOUD_RAIN_FBM_OCTSCALE CLOUD_RAIN_UPPER_LIMIT LOUD_RAIN_LOWER_LIMIT VFOG_MULTISCAT_QUALITY VFOG_SUNLIGHT_STEPLENGTH VFOG_SUNLIGHT_STEPS LENS_FLARE_STRENGTH LENS_FLARE_SAMPLES LENS_FLARE_BLUR_SAMPLES LENS_FLARE_THRESHOLD GHOST_FLARE_SPACING_MULT HALO_FLARE_SPACING_MULT MOTION_BLUR_STRENGTH

#
# Columns
#

screen.columns                                              = 1
screen.RAYTRACING                                           = 1
screen.LIGHTING.columns                                     = 1 
screen.LIGHT_SOURCE.columns                                 = 1 
screen.GLOWING_BLOCKS.columns                               = 1
screen.HELDLIGHT.columns                                    = 1
screen.SHADOWS.columns                                      = 1
screen.GI_OPTION.columns                                    = 1
screen.SURFACE.columns                                      = 1
screen.POM.columns                                          = 1
screen.PBR.columns                                          = 1
screen.WATER_RAIN.columns                                   = 1
screen.SKY_TEXTURE.columns                                  = 1
screen.SURFMISC.columns                                     = 1
screen.ATMOSPHERICS.columns                                 = 1 
screen.VOLUMETRIC_CLOUDS.columns                            = 1
screen.PLANAR_CLOUDS.columns                                = 1
screen.CLEAR_SETTING.columns                                = 1
screen.RAIN_SETTING.columns                                 = 1
screen.VOLUMETRIC_FOG.columns                               = 1
screen.VOLUMETRIC_CLOUD_FOG.columns                         = 1
screen.LIGHT_RAYS.columns                                   = 1
screen.SKY_MISC.columns                                     = 1
screen.POSTPROCESSING.columns                               = 1
screen.DOF.columns                                          = 1
screen.RAIN_SETTING.columns                                 = 1
screen.EXPOSURE_SETTING.columns                             = 1
screen.MOTION_BLUR_SETTING.columns                          = 1
screen.BLOOM.columns                                        = 1
screen.COLOR.columns                                        = 1
screen.ADVANCED_COLOR.columns                               = 1
screen.POSTMISC.columns                                     = 1
screen.SHORTCUT.columns                                     = 1
screen.DEBUG.columns                                        = 1
screen.LENS_FLARE.columns                                   = 1

#
# Uniforms
#

#if MC_VERSION >= 11600
variable.bool.isBiomeNetherWastes                           = in(biome, BIOME_NETHER_WASTES)
uniform.float.BiomeNetherWastesSmooth                       = smooth(1, if(isBiomeNetherWastes, 1, 0), 5, 5)

variable.bool.isBiomeSoulSandValley                         = in(biome, BIOME_SOUL_SAND_VALLEY)
uniform.float.BiomeSoulSandValleySmooth                     = smooth(2, if(isBiomeSoulSandValley, 1, 0), 5, 5)

variable.bool.isBiomeCrimsonForest                          = in(biome, BIOME_CRIMSON_FOREST)
uniform.float.BiomeCrimsonForestSmooth                      = smooth(3, if(isBiomeCrimsonForest, 1, 0), 5, 5)

variable.bool.isBiomeWarpedForest                           = in(biome, BIOME_WARPED_FOREST)
uniform.float.BiomeWarpedForestSmooth                       = smooth(4, if(isBiomeWarpedForest, 1, 0), 5, 5)

variable.bool.isBiomeBasaltDeltas                           = in(biome, BIOME_BASALT_DELTAS)
uniform.float.BiomeBasaltDeltasSmooth                       = smooth(5, if(isBiomeBasaltDeltas, 1, 0), 5, 5)
#else
uniform.float.BiomeNetherWastesSmooth                       = 1.0
#endif

uniform.vec2.viewDimensions                                 = vec2(viewWidth, viewHeight)
uniform.vec2.pixelSize                                      = vec2(1.0 / viewWidth, 1.0 / viewHeight)

uniform.float.compositeOutputFactor                         = 0.0005

variable.int.taaJitterIndex                                 = frameCounter % 16
uniform.vec2.taaJitter = vec2((if( \
	taaJitterIndex ==  0,   0.0  / 16.0,  taaJitterIndex ==  1,  -8.0  / 16.0, \
	taaJitterIndex ==  2,   2.0  / 16.0,  taaJitterIndex ==  3,  -10.0 / 16.0, \
	taaJitterIndex ==  4,   12.0 / 16.0,  taaJitterIndex ==  5,  -4.0  / 16.0, \
	taaJitterIndex ==  6,   14.0 / 16.0,  taaJitterIndex ==  7,  -6.0  / 16.0, \
	taaJitterIndex ==  8,  -3.0  / 16.0,  taaJitterIndex ==  9,   11.0 / 16.0, \
	taaJitterIndex == 10,  -1.0  / 16.0,  taaJitterIndex == 11,   9.0  / 16.0, \
	taaJitterIndex == 12,  -15.0 / 16.0,  taaJitterIndex == 13,   7.0  / 16.0, \
	taaJitterIndex == 14,  -13.0 / 16.0,  taaJitterIndex == 15,   5.0  / 16.0, \
	0.0) \
) / viewWidth, \
(if( \
	taaJitterIndex ==  0,  -3.0  / 16.0,  taaJitterIndex ==  1,   11.0 / 16.0, \
	taaJitterIndex ==  2,   1.0  / 16.0,  taaJitterIndex ==  3,  -9.0  / 16.0, \
	taaJitterIndex ==  4,  -15.0 / 16.0,  taaJitterIndex ==  5,   7.0  / 16.0, \
	taaJitterIndex ==  6,   13.0 / 16.0,  taaJitterIndex ==  7,  -5.0  / 16.0, \
	taaJitterIndex ==  8,   0.0  / 16.0,  taaJitterIndex ==  9,  -8.0  / 16.0, \
	taaJitterIndex == 10,  -2.0  / 16.0,  taaJitterIndex == 11,   10.0 / 16.0, \
	taaJitterIndex == 12,   12.0 / 16.0,  taaJitterIndex == 13,  -4.0  / 16.0, \
	taaJitterIndex == 14,  -14.0 / 16.0,  taaJitterIndex == 15,   6.0  / 16.0, \
	0.0) \
) / viewHeight)

uniform.float.rotaionAngle                                   = 0.4

#if MC_VERSION >= 11600
variable.bool.isBiomeArid = biome_category == CAT_DESERT || biome_category == CAT_MESA || biome_category == CAT_SAVANNA
uniform.float.BiomeAridSmooth = smooth(10, if(isBiomeArid, 1, 0), 30, 30)
uniform.float.biome_arid = BiomeAridSmooth
#endif

