#Force Video Settings
dynamicHandLight=true
oldHandLight=false
oldLighting=false
underwaterOverlay=false
vignette=false
separateAo=true
shadow.culling=true

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

#Profiles
profile.LOW=!GI !LPV_FOG !VPS !REFRACTION !BLOOM !VC !VL !AO !AURORA !GENERATED_NORMALS !GENERATED_SPECULAR !NETHER_CLOUDY_FOG !END_CLOUDY_FOG WATER_NORMALS=0 shadowMapResolution=1024 SHADOW_DISTANCE=128.0 VOXEL_VOLUME_SIZE=64 VL_SAMPLES=7 LPV_FOG_SAMPLES=6
profile.MEDIUM=profile.LOW REFRACTION BLOOM VL AO WATER_NORMALS=1 VOXEL_VOLUME_SIZE=64
profile.HIGH=profile.MEDIUM LPV_FOG VC AURORA GENERATED_NORMALS GENERATED_SPECULAR NETHER_CLOUDY_FOG END_CLOUDY_FOG shadowMapResolution=1536 SHADOW_DISTANCE=192.0 VOXEL_VOLUME_SIZE=128
profile.ULTRA=profile.HIGH GI VPS shadowMapResolution=2048 SHADOW_DISTANCE=512.0 VOXEL_VOLUME_SIZE=256 VL_SAMPLES=10 LPV_FOG_SAMPLES=10

#screen Setup
screen=SOLAS_BY_SEPTONIOUS <profile> <empty> [ATMOSPHERICS] [WATER] [LIGHTING] [PBR_MENU] [COLOR] [POST] [OTHER]
screen.columns=1

screen.AO=<empty> <empty> VANILLA_AO AO AO_STRENGTH AO_RADIUS
screen.END_VORTEX=<empty> <empty> END_VORTEX_ARMS END_VORTEX_WHIRL
screen.SKYBOX_CONFIG=<empty> <empty> SKYBOX SKYBOX_BRIGHTNESS SKYBOX_MIX_FACTOR
screen.ATMOSPHERICS=[PC_CONFIG] [VC_CONFIG] [LPV_FOG_CONFIG] [VL_CONFIG] [FOG_CONFIG] [SKY_CONFIG]
screen.PC_CONFIG=<empty> <empty> PLANAR_CLOUDS PLANAR_CLOUDS_BRIGHTNESS PLANAR_CLOUDS_OPACITY
screen.VC_CONFIG=<empty> <empty> VC VC_SHADOWS BLOCKY_CLOUDS <empty> <empty> <empty> VC_AMOUNT VC_HEIGHT VC_THICKNESS VC_OPACITY VC_DENSITY VC_SPEED VC_DETAIL VC_DISTANCE
screen.VL_CONFIG=<empty> <empty> VL VL_STRENGTH VL_SAMPLES
screen.LPV_FOG_CONFIG=<empty> <empty> LPV_FOG LPV_FOG_STRENGTH LPV_FOG_SAMPLES
screen.VF_NETHER_CONFIG=<empty> <empty> VF_NETHER_STRENGTH VF_NETHER_FREQUENCY VF_NETHER_SPEED
screen.VF_END_CONFIG=<empty> <empty>  VF_END_HEIGHT VF_END_THICKNESS VF_END_OPACITY
screen.FOG_CONFIG=<empty> <empty> DISTANT_FADE DISTANT_FADE_STYLE FOG_DENSITY FOG_HEIGHT <empty> <empty> NETHER_CLOUDY_FOG [VF_NETHER_CONFIG] END_CLOUDY_FOG [VF_END_CONFIG]
screen.SKY_CONFIG=STARS END_STARS STAR_AMOUNT STAR_BRIGHTNESS END_VORTEX [END_VORTEX] END_NEBULA END_NEBULA_BRIGHTNESS MILKY_WAY MILKY_WAY_BRIGHTNESS RAINBOW AURORA AURORA_COLD_BIOME_VISIBILITY AURORA_FULL_MOON_VISIBILITY <empty> <empty> SKYBOX [SKYBOX_CONFIG]
screen.PBR_MENU=<empty> <empty> RAIN_PUDDLES RAIN_PUDDLES_STRENGTH <empty> <empty> [IPBR] [PBR]

screen.WATER=<empty> <empty> WATER_REFLECTIONS WATER_FOG WATER_FOG_EXPONENT WATER_CAUSTICS WATER_CAUSTICS_STRENGTH WATER_NORMALS WATER_NORMAL_DETAIL WATER_NORMAL_BUMP WATER_NORMAL_OFFSET REFRACTION REFRACTION_STRENGTH

screen.GI=<empty> <empty> GI_RADIUS GI_SAMPLES GI_BRIGHTNESS
screen.SHADOWS=shadowMapResolution SHADOW_DISTANCE ENTITY_SHADOWS entityShadowDistanceMul sunPathRotation SHADOW_COLOR VPS VPS_BLUR_STRENGTH
screen.LIGHTING=[SHADOWS] [AO] GI [GI] <empty> <empty> DYNAMIC_HANDLIGHT DYNAMIC_HANDLIGHT_STRENGTH VOXEL_VOLUME_SIZE FLOODFILL_BRIGHTNESS FLOODFILL_RADIUS
screen.PBR=<empty> <empty> PBR MATERIAL_FORMAT PARALLAX [PARALLAX_CONFIG] SELF_SHADOW [SELF_SHADOW_CONFIG]
screen.PARALLAX_CONFIG=<empty> <empty> PARALLAX_DEPTH PARALLAX_DISTANCE PARALLAX_QUALITY
screen.SELF_SHADOW_CONFIG=<empty> <empty> SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH
screen.IPBR=<empty> <empty> GENERATED_SPECULAR WATER_REFLECTIONS GENERATED_EMISSION [IEMISSION] GENERATED_NORMALS [INORMALS]
screen.INORMALS=<empty> <empty> NORMAL_STRENGTH NORMAL_RESOLUTION NORMAL_THRESHOLD
screen.IEMISSION=<empty> <empty> EMISSIVE_FLOWERS EMISSIVE_ORES EMISSIVE_CONCRETE EMISSION_STRENGTH

screen.COLOR=[LIGHTAMBIENT_COLOR] [END_COLOR] [MINLIGHT] [BLOCKLIGHT_COLOR] [WATER_COLOR]
screen.LIGHTAMBIENT_COLOR=<empty> <empty> LIGHTTEMP_SS LIGHTTEMP_ME LIGHTTEMP_D LIGHTTEMP_N <empty> <empty> LIGHTINTENSITY_SS LIGHTINTENSITY_ME LIGHTINTENSITY_D LIGHTINTENSITY_N
screen.END_COLOR=<empty> <empty> LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I <empty> <empty> AMBIENT_END_R AMBIENT_END_G AMBIENT_END_B AMBIENT_END_I
screen.MINLIGHT=<empty> <empty> MINLIGHT_R MINLIGHT_G MINLIGHT_B MINLIGHT_I
screen.BLOCKLIGHT_COLOR=<empty> <empty> BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I
screen.WATER_COLOR=<empty> <empty> WATER_R WATER_G WATER_B WATER_I WATER_A

screen.TONEMAP=<empty> <empty> LIGHTNESS_INTENSITY DARKNESS_INTENSITY CONTRAST
screen.BLOOM_CONFIG=<empty> <empty> BLOOM_STRENGTH BLOOM_CONTRAST BLOOM_TILE_SIZE
screen.DOF_CONFIG=<empty> <empty> DOF_STRENGTH DISTANT_BLUR DISTANT_BLUR_STRENGTH DISTANT_BLUR_RANGE
screen.POST=<empty> <empty> TAA FXAA SHARPENING [TONEMAP] CHROMATIC_ABERRATION CHROMATIC_ABERRATION_STRENGTH DOF [DOF_CONFIG] BLOOM [BLOOM_CONFIG]

screen.OTHER=<empty> <empty> WAVING_PLANTS WAVING_LEAVES WAVING_SPEED WAVING_AMPLITUDE <empty> <empty> FIREFLIES FIREFLIES_BRIGHTNESS

#Set Sliders
sliders=SKYBOX_BRIGHTNESS SKYBOX_MIX_FACTOR GI_RADIUS GI_SAMPLES GI_BRIGHTNESS FLOODFILL_RADIUS DYNAMIC_HANDLIGHT_STRENGTH entityShadowDistanceMul END_NEBULA_BRIGHTNESS STAR_AMOUNT STAR_BRIGHTNESS PARALLAX_DEPTH PARALLAX_DISTANCE PARALLAX_QUALITY SELF_SHADOW_ANGLE SELF_SHADOW_QUALITY SELF_SHADOW_STRENGTH FIREFLIES_BRIGHTNESS PLANAR_CLOUDS_OPACITY VF_NETHER_STRENGTH VF_NETHER_FREQUENCY VF_NETHER_SPEED LPV_FOG_STRENGTH LPV_FOG_SAMPLES VOXEL_VOLUME_SIZE FLOODFILL_BRIGHTNESS PLANAR_CLOUDS_BRIGHTNESS RAIN_PUDDLES_STRENGTH DISTANT_BLUR_STRENGTH DISTANT_BLUR_RANGE NORMAL_RESOLUTION NORMAL_THRESHOLD NORMAL_STRENGTH REFRACTION_STRENGTH END_VORTEX_ARMS END_VORTEX_WHIRL VPS_BLUR_STRENGTH AMBIENT_END_R AMBIENT_END_G AMBIENT_END_B AMBIENT_END_I LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I BLOOM_CONTRAST BLOOM_TILE_SIZE DOF_STRENGTH VL_SAMPLES WATER_NORMAL_BUMP WAVING_SPEED WAVING_AMPLITUDE LIGHTTEMP_SS LIGHTTEMP_ME LIGHTTEMP_D LIGHTTEMP_N LIGHTINTENSITY_SS LIGHTINTENSITY_ME LIGHTINTENSITY_D LIGHTINTENSITY_N MINLIGHT_R MINLIGHT_G MINLIGHT_B MINLIGHT_I BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I WATER_R WATER_G WATER_B WATER_I WATER_A WEATHER_RR WEATHER_RG WEATHER_RB WEATHER_RI BLOOM_STRENGTH EMISSION_STRENGTH SPECULAR_STRENGTH CHROMATIC_ABERRATION_STRENGTH MILKY_WAY_BRIGHTNESS FOG_DENSITY FOG_HEIGHT VC_AMOUNT VC_HEIGHT VC_THICKNESS VC_OPACITY VC_DENSITY VC_SPEED VC_DETAIL VC_DISTANCE VL_STRENGTH WATER_CAUSTICS_STRENGTH WATER_FOG_EXPONENT WATER_NORMALS WATER_NORMAL_DETAIL WATER_NORMAL_OFFSET AO_STRENGTH shadowMapResolution SHADOW_DISTANCE sunPathRotation

#Alpha Tests
alphaTest.gbuffers_weather=GREATER 0.001
alphaTest.gbuffers_skytextured=GREATER 0.001
alphaTest.gbuffers_skybasic=GREATER 0.001
alphaTest.gbuffers_water=GREATER 0.001
alphaTest.gbuffers_beaconbeam=GREATER 0.001

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

#Custom Texture
texture.noise=tex/noise.png
texture.deferred.shadowcolor1=tex/clouds.png

#ifdef MILKY_WAY
texture.deferred.depthtex2=tex/milkyWay.png
texture.gbuffers.depthtex2=tex/milkyWay.png
#endif

#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

#Biome uniforms
variable.float.yCold1=if(cameraPosition.y >= 93.0, 1, 0)
variable.float.yCold2=if(cameraPosition.y >= 123.0, 1, 0)
variable.float.yCold3=if(cameraPosition.y >= 153.0, 1, 0)

uniform.float.isSnowy=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), 1, 0), 10, 10) + \
                     smooth(11, if(in(biome, BIOME_WINDSWEPT_HILLS, BIOME_STONY_SHORE, BIOME_WINDSWEPT_FOREST, BIOME_WINDSWEPT_GRAVELLY_HILLS), 1, 0) * yCold1, 10, 10) + \
                     smooth(12, if(in(biome, BIOME_TAIGA, BIOME_OLD_GROWTH_PINE_TAIGA), 1, 0) * yCold2, 10, 10) + \
                     smooth(13, if(in(biome, BIOME_OLD_GROWTH_SPRUCE_TAIGA), 1, 0) * yCold3, 10, 10)

#TAA Jitter
uniform.float.framemod8 = frameCounter % 8

#ifdef VX_SUPPORT
#Custom images for voxelization
iris.features.required = CUSTOM_IMAGES

#if VOXEL_VOLUME_SIZE == 64
image.voxel_img=voxelSampler red_integer r8ui unsigned_int true false 64 64 64
image.floodfill_img=floodfillSampler rgba rgba16f half_float false false 64 64 64
image.floodfill_img_copy=floodfillSamplerCopy rgba rgba16f half_float false false 64 64 64
#elif VOXEL_VOLUME_SIZE == 128
image.voxel_img=voxelSampler red_integer r8ui unsigned_int true false 128 128 128
image.floodfill_img=floodfillSampler rgba rgba16f half_float false false 128 128 128
image.floodfill_img_copy=floodfillSamplerCopy rgba rgba16f half_float false false 128 128 128
#elif VOXEL_VOLUME_SIZE == 256
image.voxel_img=voxelSampler red_integer r8ui unsigned_int true false 256 256 256
image.floodfill_img=floodfillSampler rgba rgba16f half_float false false 256 256 256
image.floodfill_img_copy=floodfillSamplerCopy rgba rgba16f half_float false false 256 256 256
#elif VOXEL_VOLUME_SIZE == 512
image.voxel_img=voxelSampler red_integer r8ui unsigned_int true false 512 512 512
image.floodfill_img=floodfillSampler rgba rgba16f half_float false false 512 512 512
image.floodfill_img_copy=floodfillSamplerCopy rgba rgba16f half_float false false 512 512 512
#endif
#endif

program.world0/shadowcomp.enabled=VX_SUPPORT
program.world-1/shadowcomp.enabled=VX_SUPPORT
program.world1/shadowcomp.enabled=VX_SUPPORT
program.world0/shadowcomp1.enabled=VX_SUPPORT
program.world-1/shadowcomp1.enabled=VX_SUPPORT
program.world1/shadowcomp1.enabled=VX_SUPPORT