## // -- VANILLETIX Configuration -- //

## ------------------------------------------------------------------------- ##

profile.Classic = BLOOM SHADOW_MAPPING shadowMapResolution=1024 SPECULAR_HIGHLIGHTS=2 !PBR_QUALITY SSR !SSAO !VOLUMETRIC_LIGHTING ROUGH_REFLECTIONS PREVIOUS_FRAME !WATER_FOAM shadowDistance=96.0 CLOUDS_IN_REFLECTIONS !OUTLINES

profile.High = BLOOM SHADOW_MAPPING shadowMapResolution=2048 SPECULAR_HIGHLIGHTS=2 !PBR_QUALITY SSR SSAO ROUGH_REFLECTIONS PREVIOUS_FRAME shadowDistance=192.0 CLOUDS_IN_REFLECTIONS
profile.Medium = BLOOM SHADOW_MAPPING shadowMapResolution=1024 shadowDistance=128.0 !PBR_QUALITY !WATER_FOAM SSR ROUGH_REFLECTIONS PREVIOUS_FRAME SPECULAR_HIGHLIGHTS=1 !CLOUDS_IN_REFLECTIONS
profile.Low = !BLOOM SHADOW_MAPPING shadowMapResolution=1024 shadowDistance=64.0 !PBR_QUALITY !ROUGH_REFLECTIONS !SSR !WATER_FOAM !WATER_ANIMATION !OUTLINES !PREVIOUS_FRAME SPECULAR_HIGHLIGHTS=0 !CLOUDS_IN_REFLECTIONS
profile.Potato = Low !SHADOW_MAPPING !ROUGH_REFLECTIONS !SSR !SSGI SPECULAR_HIGHLIGHTS=0 !ENTITY_SHADOWS !SUBSURFACE_SCATTERING !ENVIRONMENT_PBR !NORMAL_GENERATION 

## ------------------------------------------------------------------------- ##
## Main Menu Layout (Unchanged Structure)

screen = [DEBUG] ANTI_ALIASING <profile> SHADER_STYLE <empty> <empty> [PERFORMANCE] [CAMERA] [LIGHTING] [ATMOSPHERICS] [PBR] [POST]

## ------------------------------------------------------------------------- ##


screen.DEBUG = COLOR_MODE <empty> ENTITY_BLOCK_TRANSPARENCY <empty> NOISE_SPEED <empty> 

screen.PERFORMANCE = <profile> SPECULAR_HIGHLIGHTS <empty> <empty> SHADOW_MAPPING <empty> shadowMapResolution shadowDistance <empty> <empty> SSR SSAO SSGI PREVIOUS_FRAME <empty> <empty> STORY_MODE_CLOUDS CLOUDS_IN_REFLECTIONS

screen.CAMERA = AUTO_EXPOSURE <empty> LENS_FLARE LENS_FLARE_STRENGTH <empty> <empty> BLOOM BLOOM_STRENGTH MOTION_BLUR MOTION_BLUR_STRENGTH VIGNETTE VIGNETTE_STRENGTH CHROMATIC_ABERRATION ABERRATION_PIXEL_SIZE DOF DOF_STRENGTH  

screen.LIGHTING = SHADOW_MAPPING SHADOW_FILTER SHADOW_COLOR ENTITY_SHADOWS BLOCK_ENTITY_SHADOWS shadowMapResolution shadowDistance sunPathRotation VOLUMETRIC_LIGHTING VOLUMETRIC_LIGHTING_STRENGTH SSAO AMBIENT_LIGHTING [BLOCK_LIGHT_COLOR]

screen.PBR = PBR_MODE SPECULAR_HIGHLIGHTS ENVIRONMENT_PBR SUBSURFACE_SCATTERING EMISSIVE_INTENSITY NORMAL_GENERATION NORMAL_GENERATION_RESOLUTION NORMAL_STRENGTH SLOPE_NORMALS DIRECTIONAL_LIGHTMAPS DIRECTIONAL_LIGHTMAP_STRENGTH ROUGH_REFLECTIONS [POM_SETTINGS]

screen.ATMOSPHERICS = SUN_MOON_TYPE [SUN_MOON_SETTINGS] WATER_STYLE [WATER_PAGE] CLOUDS_STYLE [CLOUDS_PAGE] <empty> <empty> SKYBOX_BRIGHTNESS [VISUAL_SETTINGS] <empty> <empty> [FOG_SETTINGS] [WAVE_SETTINGS]
   
    screen.WATER_PAGE = WATER_STYLE <empty> <empty> <empty> UNDERWATER_CAUSTICS <empty> WATER_ANIMATION <empty> WATER_FOAM <empty> <empty> <empty> [WATER_SETTINGS]

    screen.CLOUDS_PAGE = CLOUDS_STYLE STORY_MODE_CLOUDS <empty> <empty> [VOLUMETRIC_SETTINGS] [LAYERED_SETTINGS]

        screen.VOLUMETRIC_SETTINGS = SHADOW_STEPS <empty> MARCH_STEPS <empty> INTERIOR_STEPS <empty> <empty> <empty>CLOUD_CELL_SIZE CLOUD_VOXEL_SIZE CLOUD_SPEED
        screen.LAYERED_SETTINGS = DOUBLE_LAYERED_CLOUDS FADE_SPEED SECOND_CLOUD_HEIGHT 
    
    

screen.POST = OUTLINES OUTLINE_BRIGHTNESS OUTLINE_PIXEL_SIZE ANTI_ALIASING SHARPEN_FILTER RETRO_FILTER WORLD_CURVATURE WORLD_CURVATURE_SIZE 

screen.WORLD = TERRAIN_ANIMATION WEATHER_ANIMATION WATER_ANIMATION TIMELAPSE_MODE WIND_SPEED WIND_FREQUENCY CURRENT_SPEED CURRENT_FREQUENCY WORLD_CURVATURE WORLD_CURVATURE_SIZE 

## ------------------------------------------------------------------------- ##
## Sub-Screen Definitions

screen.BLOCK_LIGHT_COLOR = BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I

screen.POM_SETTINGS = PARALLAX_OCCLUSION PARALLAX_DEPTH PARALLAX_STEPS PARALLAX_SHADOW PARALLAX_SHADOW_STEPS 

screen.WATER_SETTINGS = WATER_NOISE WATER_BRIGHTNESS WATER_NORMAL WATER_BLUR_SIZE WATER_DEPTH_SIZE WATER_TILE_SIZE WATER_STYLIZE_ABSORPTION WATER_FOAM WATER_FLAT 

screen.LAVA_SETTINGS = LAVA_BRIGHTNESS LAVA_NOISE LAVA_TILE_SIZE 

screen.CLOUDS_SETTINGS_ADV = DOUBLE_LAYERED_CLOUDS SECOND_CLOUD_HEIGHT STORY_MODE_CLOUDS CLOUD_SHADOWS CLOUD_SHADOW_STRENGTH CLOUD_SHADOW_SPEED CLOUD_SHADOW_SCALE 

screen.SUN_MOON_SETTINGS = sunPathRotation SUN_MOON_INTENSITY

screen.FOG_SETTINGS = BORDER_FOG GROUND_FOG_STRENGTH <empty> <empty> FOG0_VERTICAL_DENSITY_D FOG0_VERTICAL_DENSITY_N FOG0_VERTICAL_DENSITY_T FOG0_TOTAL_DENSITY 

screen.WAVE_SETTINGS = TERRAIN_ANIMATION WEATHER_ANIMATION WATER_ANIMATION

screen.VISUAL_SETTINGS = [OVERWORLD_SETTINGS] [NETHER_SETTINGS] [END_SETTINGS] [BLOCK_LIGHT_COLOR]

screen.OVERWORLD_SETTINGS = [DAY_SETTINGS] [NIGHT_SETTINGS] [TWILIGHT_SETTINGS] [FOG_SETTINGS0]
screen.DAY_SETTINGS = LIGHT0_DR LIGHT0_DG LIGHT0_DB LIGHT0_DI SKY0_DR SKY0_DG SKY0_DB SKY0_DI
screen.NIGHT_SETTINGS = LIGHT0_NR LIGHT0_NG LIGHT0_NB LIGHT0_NI SKY0_NR SKY0_NG SKY0_NB SKY0_NI
screen.TWILIGHT_SETTINGS = LIGHT0_TR LIGHT0_TG LIGHT0_TB LIGHT0_TI SKY0_TR SKY0_TG SKY0_TB SKY0_TI
screen.FOG_SETTINGS0 = FOG0_VERTICAL_DENSITY_D FOG0_VERTICAL_DENSITY_N FOG0_VERTICAL_DENSITY_T FOG0_TOTAL_DENSITY

screen.NETHER_SETTINGS = FOGn1_VERTICAL_DENSITY FOGn1_TOTAL_DENSITY WORLDn1_VANILLA_FOGCOLI

screen.END_SETTINGS = LIGHT1_CR LIGHT1_CG LIGHT1_CB LIGHT1_CI SKY1_CR SKY1_CG SKY1_CB SKY1_CI FOG1_VERTICAL_DENSITY FOG1_TOTAL_DENSITY

## ------------------------------------------------------------------------- ##
## Sliders

sliders = NOISE_SPEED \
    OUTLINE_BRIGHTNESS OUTLINE_PIXEL_SIZE \
    DOF_STRENGTH ABERRATION_PIXEL_SIZE BLOOM_STRENGTH LENS_FLARE_STRENGTH VIGNETTE_STRENGTH MOTION_BLUR_STRENGTH \
    CONTRAST SATURATION WHITE_POINT SHOULDER_STRENGTH AUTO_EXPOSURE_SPEED EXPOSURE MINIMUM_EXPOSURE TINT_R TINT_G TINT_B \
    shadowMapResolution shadowDistance sunPathRotation AMBIENT_LIGHTING \
    RAYTRACER_STEPS RAYTRACER_BISTEPS \
    SUN_MOON_INTENSITY VOLUMETRIC_LIGHTING_STRENGTH GROUND_FOG_STRENGTH FADE_SPEED SECOND_CLOUD_HEIGHT SKYBOX_BRIGHTNESS \
    WIND_SPEED CURRENT_SPEED WIND_FREQUENCY CURRENT_FREQUENCY WORLD_CURVATURE_SIZE \
    NORMAL_GENERATION_RESOLUTION EMISSIVE_INTENSITY NORMAL_STRENGTH DIRECTIONAL_LIGHTMAP_STRENGTH \
    PARALLAX_DEPTH PARALLAX_STEPS PARALLAX_SHADOW_STEPS \
    WATER_BRIGHTNESS WATER_BLUR_SIZE WATER_DEPTH_SIZE WATER_TILE_SIZE \
    LAVA_BRIGHTNESS LAVA_TILE_SIZE \
    LIGHT0_DR LIGHT0_DG LIGHT0_DB LIGHT0_DI SKY0_DR SKY0_DG SKY0_DB SKY0_DI \
    LIGHT0_NR LIGHT0_NG LIGHT0_NB LIGHT0_NI SKY0_NR SKY0_NG SKY0_NB SKY0_NI \
    LIGHT0_TR LIGHT0_TG LIGHT0_TB LIGHT0_TI SKY0_TR SKY0_TG SKY0_TB SKY0_TI \
    FOG0_VERTICAL_DENSITY_D FOG0_VERTICAL_DENSITY_N FOG0_VERTICAL_DENSITY_T FOG0_TOTAL_DENSITY \
    FOGn1_VERTICAL_DENSITY FOGn1_TOTAL_DENSITY WORLDn1_VANILLA_FOGCOLI \
    LIGHT1_CR LIGHT1_CG LIGHT1_CB LIGHT1_CI SKY1_CR SKY1_CG SKY1_CB SKY1_CI FOG1_VERTICAL_DENSITY FOG1_TOTAL_DENSITY \
    BLOCKLIGHT_R BLOCKLIGHT_G BLOCKLIGHT_B BLOCKLIGHT_I \
    CLOUD_SHADOW_SPEED CLOUD_SHADOW_SCALE CLOUD_SHADOW_STRENGTH \
    SHADOW_STEPS MARCH_STEPS INTERIOR_STEPS \
    CLOUD_CELL_SIZE CLOUD_VOXEL_SIZE CLOUD_SPEED \
    CLOUD_SHADOW_SPEED CLOUD_SHADOW_SCALE CLOUD_SHADOW_STRENGTH

## ------------------------------------------------------------------------- ##
## Rendering Pipeline Configuration

blend.gbuffers_basic = off
blend.gbuffers_entities = off
blend.gbuffers_hand = off
blend.gbuffers_line = off
blend.gbuffers_skybasic = off
blend.gbuffers_skytextured = off
blend.gbuffers_spidereyes = off
blend.gbuffers_terrain = off
blend.shadow = off
blend.gbuffers_armor_glint = ONE ONE ZERO ZERO

blend.gbuffers_block.colortex1 = off
blend.gbuffers_block.colortex2 = off
blend.gbuffers_block.colortex3 = off
blend.gbuffers_entities_glowing.colortex1 = off
blend.gbuffers_entities_glowing.colortex2 = off
blend.gbuffers_entities_glowing.colortex3 = off
blend.gbuffers_hand_water.colortex1 = off
blend.gbuffers_hand_water.colortex2 = off
blend.gbuffers_hand_water.colortex3 = off
blend.gbuffers_water.colortex1 = off
blend.gbuffers_water.colortex2 = off
blend.gbuffers_water.colortex3 = off
blend.gbuffers_clouds.colortex3 = off
blend.gbuffers_textured.colortex3 = off

alphaTest.gbuffers_armor_glint = off
alphaTest.gbuffers_basic = off
alphaTest.gbuffers_beaconbeam = off
alphaTest.gbuffers_block = off
alphaTest.gbuffers_clouds = off
alphaTest.gbuffers_damagedblock = off
alphaTest.gbuffers_entities_glowing = off
alphaTest.gbuffers_entities = off
alphaTest.gbuffers_hand_water = off
alphaTest.gbuffers_hand = off
alphaTest.gbuffers_line = off
alphaTest.gbuffers_skybasic = off
alphaTest.gbuffers_skytextured = off
alphaTest.gbuffers_spidereyes = off
alphaTest.gbuffers_terrain = off
alphaTest.gbuffers_textured = off
alphaTest.gbuffers_water = off
alphaTest.gbuffers_weather = off
alphaTest.shadow = off

texture.noise = textures/noise.png
#ifdef STORY_MODE_CLOUDS
    texture.composite.colortex4 = textures/clouds.png
    texture.deferred.colortex4 = textures/clouds.png
#endif

## ------------------------------------------------------------------------- ##
## Custom Uniforms & Logic

#if TIMELAPSE_MODE == 2
    uniform.float.vertexFrameTime = smooth(worldTime / 24, 30)
    uniform.float.fragmentFrameTime = vertexFrameTime
#endif
#if TIMELAPSE_MODE == 1
    uniform.float.vertexFrameTime = frameTimeCounter
    uniform.float.fragmentFrameTime = smooth(worldTime / 24, 30)
#endif
#if TIMELAPSE_MODE == 0
    uniform.float.vertexFrameTime = frameTimeCounter
    uniform.float.fragmentFrameTime = frameTimeCounter
#endif

#if TIMELAPSE_MODE != 0
    variable.float.newSunAngle = smooth(sunAngle, 30) * pi * 2
#else
    variable.float.newSunAngle = sunAngle * pi * 2
#endif
uniform.float.celestialSinX = sin(newSunAngle)
variable.float.absCelestialSinX = abs(celestialSinX)
uniform.float.shdFade = min(absCelestialSinX * pi * 2, 1)
uniform.float.dayCycle = 1 + celestialSinX
uniform.float.dayCycleAdjust = clamp(dayCycle - 0.5, 0, 1)
uniform.float.twilightPhase = absCelestialSinX * absCelestialSinX * (3 - 2 * absCelestialSinX)

uniform.float.isPrecipitationRain = smooth(if(in(biome_precipitation, 1) && cameraPosition.y < 96, 1, 0), 10) * wetness

#ifdef IS_IRIS
    uniform.float.lightningFlash = lightningBoltPosition.w
#endif

uniform.int.frameMod = frameCounter % 8
uniform.float.frameFract = frameMod * 0.20225425

uniform.float.pixelWidth = 1 / viewWidth
uniform.float.pixelHeight = 1 / viewHeight
uniform.float.eyeSkylight = smooth(eyeBrightness.y / 240, 10)

#ifdef DISTANT_HORIZONS
    uniform.float.borderFar = dhRenderDistance
#else
    uniform.float.borderFar = far
#endif

## ------------------------------------------------------------------------- ##
## Core Shader Flags

vignette = false
separateAo = true
oldLighting = false
underwaterOverlay = false

rain.depth = false
shadow.culling = true
frustum.culling = true
beacon.beam.depth = true

#ifdef STORY_MODE_CLOUDS
    clouds = off
#endif

#if SUN_MOON_TYPE != 2
    sun = false
    moon = false
#endif

#ifndef BLOCK_ENTITY_SHADOWS
    shadowBlockEntities = false
#endif

#ifndef ENTITY_SHADOWS
    shadowEntities = false
    shadowPlayer = true
#endif

#if defined ENTITY_BLOCK_TRANSPARENCY
    separateEntityDraws = true
#endif
