# Lux Shaders Shader Properties

# Profiles
profile.LOW=!AO !VOLUMETRIC_FOG !SHADOW_COLOR !SHADOW_FILTER shadowMapResolution=1024 shadowDistance=128.0 !DOF !CHROMATIC_ABBERATION
profile.MEDIUM=profile.LOW SHADOW_COLOR SHADOW_FILTER shadowMapResolution=2048 shadowDistance=256.0 !DOF !CHROMATIC_ABBERATION
profile.HIGH=profile.MEDIUM AO VOLUMETRIC_FOG !DOF !CHROMATIC_ABBERATION
profile.ULTRA=profile.HIGH shadowMapResolution=4096 shadowDistance=512.0 DOF CHROMATIC_ABBERATION

# Force Video Settings
clouds=off
dynamicHandLight=false
oldHandLight=false
oldLighting=false
separateAo=true
underwaterOverlay=false
vignette=false
particles.ordering=mixed
shadow.culling=true

#ifdef ENTITY_SHADOWS
shadowEntities=true
#else
shadowEntities=false
#endif

# Disable Frustrum Culling for World Curvature
#ifndef WORLD_CURVATURE
frustum.culling=true
#else
frustum.culling=false
#endif

# Video Settings Toggle (not available yet)
#ifndef ROUND_SUN_MOON
sun.enabled=true
moon.enabled=true
#else
sun.enabled=false
moon.enabled=false
#endif

# Screen Setup
screen = <empty> <profile> <empty> <empty> ABOUT <empty> <empty> <empty> <empty> <empty> [CAMERA] <empty> <empty> [ATMOSPHERICS] <empty> <empty> [SURFACE] <empty> <empty> [POST_PROCESS] <empty> <empty> [COLOR] <empty> <empty> [MISC] <empty> 

# NEW
screen.CAMERA=CAMERA_FOCUS_MODE CAMERA_FOCUS_DISTANCE <empty> <empty> DOF [DOF] CHROMATIC_ABBERATION [CHROMATIC_ABBERATION] BLOOM BLOOM_STRENGTH LENS_FLARE LENS_FLARE_STRENGTH MOTION_BLUR MOTION_BLUR_STRENGTH DIRTY_LENS AUTO_EXPOSURE
screen.MISC=WHITE_WORLD SKY_DESATURATION SKYBOX_BRIGHTNESS WEATHER WEATHER_OPACITY WORLD_CURVATURE WORLD_CURVATURE_SIZE WORLD_TIME_ANIMATION ANIMATION_SPEED WEATHER_PERBIOME SOFT_PARTICLES DYNAMIC_HANDLIGHT MINLIGHT_FACTOR GLOWING_ORES
screen.ATMOSPHERICS=VOLUMETRIC_FOG [VOLUMETRICS] CLOUDS [CLOUDS] AURORA [AURORA] STARS ROUND_SUN_MOON SHOOTING_STARS [SHOOTING_STARS] FOG FOG_DENSITY BORDER_FOG
screen.SURFACE=<empty> MATERIAL_SUPPORT <empty> <empty> MATERIAL_FORMAT <empty> <empty> <empty> <empty> <empty> [MATERIAL_NORMAL_SUPPORT] <empty> <empty> [MATERIAL_REFLECTION_SUPPORT] <empty> <empty> [WATER] <empty> <empty> [SURFACE_WAVING] <empty> <empty> [SHADOWS] <empty> <empty> EMISSIVE_BRIGHTNESS
screen.POST_PROCESS=DESATURATION DESATURATION_FACTOR AA SHARPEN VIGNETTE VIGNETTE_STRENGTH <empty> <empty> [COLOR_GRADING]

screen.CLOUDS=<empty> <empty> CLOUD_THICKNESS CLOUD_AMOUNT CLOUD_HEIGHT CLOUD_SPEED CLOUD_OPACITY CLOUD_BRIGHTNESS
screen.AURORA=<empty> <empty> AURORA_SAMPLES_SKY AURORA_SAMPLES_REFLECTION AURORA_BRIGHTNESS AURORA_HEIGHT AURORA_PERBIOME AURORA_PROBABILITY <empty> <empty> AURORA_COLORING_TYPE <empty> AURORA_COLOR_ONE_R AURORA_COLOR_TWO_R AURORA_COLOR_ONE_G AURORA_COLOR_TWO_G AURORA_COLOR_ONE_B AURORA_COLOR_TWO_B
screen.SHOOTING_STARS=<empty> <empty> SHOOTING_STARS_SCALE SHOOTING_STARS_SPEED SHOOTING_STARS_AMOUNT SHOOTING_STARS_ROTATION_ITERATIONS
screen.VOLUMETRICS=<empty> VOLUMETRIC_FOG_TYPE <empty> <empty> VOLUMETRIC_FOG_STRENGTH <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty>

screen.MATERIAL_NORMAL_SUPPORT=<empty> <empty> PARALLAX PARALLAX_DEPTH PARALLAX_QUALITY PARALLAX_DISTANCE DIRECTIONAL_LIGHTMAP DIRECTIONAL_LIGHTMAP_STRENGTH
screen.MATERIAL_REFLECTION_SUPPORT=<empty> <empty> REFLECTION FORCE_REFLECTION <empty> <empty> REFLECTION_TRANSLUCENT REFLECTION_SPECULAR REFLECTION_ROUGH REFLECTION_PREVIOUS REFLECTION_RAIN REFLECTION_RAIN_TYPE

screen.COLOR_GRADING=<empty> <empty> COLOR_GRADING <empty> <empty> <empty> [CG_R] [CG_G] [CG_B] [CG_T] <empty> <empty> TONEMAP TONEMAP_EXPOSURE SATURATION VIBRANCE
screen.CG_R=<empty> <empty> CG_RR CG_RG CG_RB CG_RI <empty> <empty> CG_RM CG_RC
screen.CG_G=<empty> <empty> CG_GR CG_GG CG_GB CG_GI <empty> <empty> CG_GM CG_GC
screen.CG_B=<empty> <empty> CG_BR CG_BG CG_BB CG_BI <empty> <empty> CG_BM CG_BC
screen.CG_T=<empty> <empty> CG_TR CG_TG CG_TB CG_TI <empty> <empty> CG_TM

screen.SHADOWS=SHADOW_FILTER SHADOW_ADVANCED_FILTER <empty> <empty> shadowMapResolution shadowDistance SHADOW_COLOR sunPathRotation <empty> <empty> SHADOW_SUBSURFACE ENTITY_SHADOWS AO AO_STRENGTH SELF_SHADOW SELF_SHADOW_ANGLE
screen.SURFACE_WAVING=<empty> <empty> SCENE_AWARE_WAVING <empty> <empty> <empty> WAVING_GRASS WAVING_CROPS WAVING_PLANT WAVING_TALL_PLANT WAVING_LEAVES WAVING_VINES WAVING_LILYPAD WAVING_FIRE WAVING_WATER WAVING_LAVA WAVING_LANTERN
screen.WATER=<empty> <empty> WATER_NORMALS WATER_PARALLAX WAVE_SPEED GERSTNER_WAVE_DIR_SPREAD <empty> <empty> GERSTNER_WAVE_ITERATIONS NOISE_WAVE_ITERATIONS GERSTNER_WAVE_AMPLITUDE NOISE_WAVE_AMPLITUDE GERSTNER_WAVE_LENGTH NOISE_WAVE_SCALE GERSTNER_WAVE_LACUNARITY NOISE_WAVE_LACUNARITY GERSTNER_WAVE_PERSISTANCE NOISE_WAVE_PERSISTANCE

screen.DOF=<empty> DOF_TYPE <empty> <empty> DOF_STRENGTH <empty> <empty> <empty> <empty> <empty> DOF_SAMPLE_REJECTION <empty> <empty> DOF_SAMPLE_REJECTION_RESPONSE <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> <empty> 
screen.CHROMATIC_ABBERATION=<empty> CHROMATIC_ABBERATION_MODE <empty> <empty> CHROMATIC_ABBERATION_STRENGTH <empty> <empty> CHROMATIC_ABBERATION_STATIC_STRENGTH <empty> <empty> <empty> <empty> <empty> CHROMATIC_ABBERATION_ADAPTIVE_STRENGTH <empty> <empty> CHROMATIC_ABBERATION_ADAPTIVE_STRENGTH_RESPONSE <empty> <empty> <empty>

# OLD
screen.COLOR=<empty> <empty> <empty> <empty> <empty> <empty> <empty> [BLOCKLIGHT_COLOR] <empty> <empty> [SKY_COLOR] <empty> <empty> [WATER_COLOR] <empty> <empty> [WEATHER_COLOR] <empty> <empty> [DIMENSION_COLOR]
screen.BLOCKLIGHT_COLOR=<empty> <empty> BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I
screen.SKY_COLOR=<empty> <empty> SKY_R SKY_G SKY_B SKY_I <empty> <empty> SKY_VANILLA
screen.WATER_COLOR=<empty> <empty> WATER_R WATER_G WATER_B WATER_I WATER_A WATER_F <empty> <empty> WATER_MODE
screen.WEATHER_COLOR=<empty> <empty> [WEATHER_R] [WEATHER_C] [WEATHER_D] [WEATHER_B] [WEATHER_S] [WEATHER_M] [WEATHER_V]
screen.WEATHER_R=<empty> <empty> WEATHER_RR WEATHER_RG WEATHER_RB WEATHER_RI
screen.WEATHER_C=<empty> <empty> WEATHER_CR WEATHER_CG WEATHER_CB WEATHER_CI
screen.WEATHER_D=<empty> <empty> WEATHER_DR WEATHER_DG WEATHER_DB WEATHER_DI
screen.WEATHER_B=<empty> <empty> WEATHER_BR WEATHER_BG WEATHER_BB WEATHER_BI
screen.WEATHER_S=<empty> <empty> WEATHER_SR WEATHER_SG WEATHER_SB WEATHER_SI
screen.WEATHER_M=<empty> <empty> WEATHER_MR WEATHER_MG WEATHER_MB WEATHER_MI
screen.WEATHER_V=<empty> <empty> WEATHER_VR WEATHER_VG WEATHER_VB WEATHER_VI

screen.DIMENSION_COLOR=<empty> <empty> [NETHER_COLOR] [END_COLOR]

screen.NETHER_COLOR=<empty> <empty> [NETHER_N] [NETHER_V] [NETHER_C] [NETHER_W] [NETHER_B]
screen.NETHER_N=<empty> <empty> NETHER_NR NETHER_NG NETHER_NB NETHER_NI
screen.NETHER_V=<empty> <empty> NETHER_VR NETHER_VG NETHER_VB NETHER_VI
screen.NETHER_C=<empty> <empty> NETHER_CR NETHER_CG NETHER_CB NETHER_CI
screen.NETHER_W=<empty> <empty> NETHER_WR NETHER_WG NETHER_WB NETHER_WI
screen.NETHER_B=<empty> <empty> NETHER_BR NETHER_BG NETHER_BB NETHER_BI

screen.END_COLOR=<empty> <empty> END_R END_G END_B END_I

# Set Sliders
sliders=AO_STRENGTH VOLUMETRIC_FOG_STRENGTH DESATURATION_FACTOR PARALLAX_DEPTH SELF_SHADOW_ANGLE PARALLAX_QUALITY PARALLAX_DISTANCE \
DIRECTIONAL_LIGHTMAP_STRENGTH DOF_STRENGTH MOTION_BLUR_STRENGTH BLOOM_STRENGTH LENS_FLARE_STRENGTH SHARPEN TONEMAP_EXPOSURE SATURATION \
VIBRANCE CG_RR CG_RG CG_RB CG_RI CG_RM CG_RC CG_GR CG_GG CG_GB CG_GI CG_GM CG_GC CG_BR CG_BG CG_BB CG_BI CG_BM CG_BC CG_TR CG_TG CG_TB \
CG_TI CG_TM shadowMapResolution shadowDistance sunPathRotation LIGHT_MR LIGHT_MG LIGHT_MB LIGHT_MI LIGHT_DR LIGHT_DG LIGHT_DB LIGHT_DI \
LIGHT_ER LIGHT_EG LIGHT_EB LIGHT_EI LIGHT_NR LIGHT_NG LIGHT_NB LIGHT_NI AMBIENT_MR AMBIENT_MG AMBIENT_MB AMBIENT_MI AMBIENT_DR \
AMBIENT_DG AMBIENT_DB AMBIENT_DI AMBIENT_ER AMBIENT_EG AMBIENT_EB AMBIENT_EI AMBIENT_NR AMBIENT_NG AMBIENT_NB AMBIENT_NI BLOCKLIGHT_R \
BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I SKY_R SKY_G SKY_B SKY_I WATER_R WATER_G WATER_B WATER_I WATER_A WATER_F WEATHER_RR WEATHER_RG \
WEATHER_RB WEATHER_RI WEATHER_CR WEATHER_CG WEATHER_CB WEATHER_CI WEATHER_DR WEATHER_DG WEATHER_DB WEATHER_DI WEATHER_BR WEATHER_BG \
WEATHER_BB WEATHER_BI WEATHER_SR WEATHER_SG WEATHER_SB WEATHER_SI WEATHER_MR WEATHER_MG WEATHER_MB WEATHER_MI WEATHER_VR WEATHER_VG \
WEATHER_VB WEATHER_VI NETHER_NR NETHER_NG NETHER_NB NETHER_NI NETHER_VR NETHER_VG NETHER_VB NETHER_VI NETHER_CR NETHER_CG NETHER_CB \
NETHER_CI NETHER_WR NETHER_WG NETHER_WB NETHER_WI NETHER_BR NETHER_BG NETHER_BB NETHER_BI END_R END_G END_B END_I CLOUD_THICKNESS \
CLOUD_AMOUNT CLOUD_HEIGHT CLOUD_OPACITY CLOUD_SPEED CLOUD_BRIGHTNESS SKYBOX_BRIGHTNESS WATER_OCTAVE WATER_BUMP WATER_LACUNARITY \
WATER_PERSISTANCE WATER_SHARPNESS WATER_SIZE WATER_SPEED EMISSIVE_BRIGHTNESS WEATHER_OPACITY FOG_DENSITY WORLD_CURVATURE_SIZE \
ANIMATION_SPEED AURORA_SAMPLES_REFLECTION AURORA_SAMPLES_SKY AURORA_BRIGHTNESS SHOOTING_STARS_SCALE SHOOTING_STARS_SPEED \
SHOOTING_STARS_AMOUNT SHOOTING_STARS_ROTATION_ITERATIONS AURORA_HEIGHT AURORA_COLOR_ONE_R AURORA_COLOR_TWO_R AURORA_COLOR_ONE_G \
AURORA_COLOR_TWO_G AURORA_COLOR_ONE_B AURORA_COLOR_TWO_B WAVE_SPEED GERSTNER_WAVE_LENGTH GERSTNER_WAVE_LACUNARITY \
GERSTNER_WAVE_PERSISTANCE GERSTNER_WAVE_AMPLITUDE GERSTNER_WAVE_DIR_SPREAD GERSTNER_WAVE_ITERATIONS NOISE_WAVE_SCALE \
NOISE_WAVE_LACUNARITY NOISE_WAVE_AMPLITUDE NOISE_WAVE_PERSISTANCE NOISE_WAVE_ITERATIONS CHROMATIC_ABBERATION_STRENGTH VIGNETTE_STRENGTH \
CHROMATIC_ABBERATION_STATIC_STRENGTH DOF_SAMPLE_REJECTION_RESPONSE CHROMATIC_ABBERATION_SAMPLE_REJECTION_RESPONSE \
CHROMATIC_ABBERATION_ADAPTIVE_STRENGTH_RESPONSE CAMERA_FOCUS_DISTANCE MINLIGHT_FACTOR AURORA_PROBABILITY

# Program Toggle
program.world0/composite1.enabled=VOLUMETRIC_FOG || BORDER_FOG
program.world1/composite1.enabled=VOLUMETRIC_FOG || BORDER_FOG
program.world0/composite2.enabled=MOTION_BLUR
program.world-1/composite2.enabled=MOTION_BLUR
program.world1/composite2.enabled=MOTION_BLUR
program.world0/composite3.enabled=DOF
program.world-1/composite3.enabled=DOF
program.world1/composite3.enabled=DOF

# Disable Fast Leaves
alphaTest.gbuffers_terrain=GREATER 0.1

# Allow Low Weather Opacity
alphaTest.gbuffers_weather=GREATER 0.0001

# Enable Beacon Beam Depth
beacon.beam.depth=true

# Custom Texture
texture.composite.depthtex2=tex/dirt.png

# Custom Time Uniform
variable.float.tAmin=frac(sunAngle - 0.033333333)
variable.float.tAlin=if(tAmin < 0.433333333, tAmin * 1.15384615385, tAmin * 0.882352941176 + 0.117647058824)
variable.float.hA=if(tAlin > 0.5, 1.0, 0.0)
variable.float.tAfrc=frac(tAlin * 2.0)
variable.float.tAfrs=tAfrc * tAfrc * (3.0 - 2.0 * tAfrc)
variable.float.tAmix=if(hA < 0.5, 0.3, -0.1)
uniform.float.timeAngle=(tAfrc * (1.0-tAmix) + tAfrs * tAmix + hA) * 0.5
uniform.float.timeBrightness=max(sin(timeAngle * 6.28318530718), 0.0)
uniform.float.shadowFade=clamp(1.0 - (abs(abs(sunAngle - 0.5) - 0.25) - 0.23) * 100.0, 0.0, 1.0)

# Custom Blindness Uniform
variable.float.blindFactorSqrt=clamp(blindness * 2.0 - 1.0, 0.0, 1.0)
uniform.float.blindFactor=blindFactorSqrt * blindFactorSqrt

# Custom Biome Uniforms

#if MC_VERSION >= 11800

uniform.float.isValley=smooth(7, if(in(biome, BIOME_SOUL_SAND_VALLEY), 1, 0), 10, 10)
uniform.float.isCrimson=smooth(8, if(in(biome, BIOME_CRIMSON_FOREST), 1, 0), 10, 10)
uniform.float.isWarped=smooth(9, if(in(biome, BIOME_WARPED_FOREST), 1, 0), 10, 10)
uniform.float.isBasalt=smooth(10, if(in(biome, BIOME_BASALT_DELTAS), 1, 0), 10, 10)

uniform.float.isCold=smooth(1, if(in(biome, BIOME_GROVE, BIOME_SNOWY_SLOPES, BIOME_FROZEN_OCEAN, BIOME_FROZEN_PEAKS, BIOME_FROZEN_RIVER, BIOME_SNOWY_PLAINS, BIOME_SNOWY_BEACH, BIOME_SNOWY_TAIGA, BIOME_ICE_SPIKES, BIOME_JAGGED_PEAKS), 1, 0), 10, 10)
uniform.float.isDesert=smooth(2, if(in(biome, BIOME_DESERT), 1, 0), 10, 10)
uniform.float.isMesa=smooth(3, if(in(biome, BIOME_BADLANDS, BIOME_WOODED_BADLANDS, BIOME_ERODED_BADLANDS), 1, 0), 10, 10)
uniform.float.isSwamp=smooth(4, if(in(biome, BIOME_SWAMP), 1, 0), 10, 10)
uniform.float.isMushroom=smooth(5, if(in(biome, BIOME_MUSHROOM_FIELDS), 1, 0), 10, 10)
uniform.float.isSavanna=smooth(6, if(in(biome, BIOME_SAVANNA, BIOME_SAVANNA_PLATEAU), 1, 0), 10, 10)

#else

uniform.float.isValley=smooth(7, if(in(biome, 170), 1, 0), 10, 10)
uniform.float.isCrimson=smooth(8, if(in(biome, 171), 1, 0), 10, 10)
uniform.float.isWarped=smooth(9, if(in(biome, 172), 1, 0), 10, 10)
uniform.float.isBasalt=smooth(10, if(in(biome, 173), 1, 0), 10, 10)

uniform.float.isCold=smooth(1, if(in(biome, 10, 11, 12, 13, 26, 30, 31, 140, 158), 1, 0), 10, 10)
uniform.float.isDesert=smooth(2, if(in(biome, 2, 17, 130), 1, 0), 10, 10)
uniform.float.isMesa=smooth(3, if(in(biome, 37, 38, 39, 165, 166, 167), 1, 0), 10, 10)
uniform.float.isSwamp=smooth(4, if(in(biome, 6, 134), 1, 0), 10, 10)
uniform.float.isMushroom=smooth(5, if(in(biome, 14, 15), 1, 0), 10, 10)
uniform.float.isSavanna=smooth(6, if(in(biome, 35, 36, 163, 164), 1, 0), 10, 10)

#endif