profile.POTATO=CAMERA_EXPOSURE_MODE:1 REFLECTION_MODE:1 SSR_QUALITY:0 WATER_REFRACTION:0 \
	SHADOW_TYPE:0 SHADOW_FILTER:0 shadowMapResolution:1024 shadowDistance:50 \
	SHADOW_EXCLUDE_ENTITIES SHADOW_EXCLUDE_FOLIAGE SHADOW_PCF_SAMPLES:12 SHADOW_PCF_SIZE:04 \
	!RSM_ENABLED RSM_SCALE:2 RSM_SAMPLE_COUNT:35 RSM_FILTER_SIZE:0.6 \
	AO_TYPE:1 !SSS_SCATTER SSS_PCF_SAMPLES:12 !PARALLAX_ENABLED !BLOOM_ENABLED !BLOOM_SMOOTH \
	!VL_SKY_ENABLED VL_SAMPLES_SKY:8 !VL_WATER_ENABLED VL_SAMPLES_WATER:4 !DOF_ENABLED

profile.LOW=CAMERA_EXPOSURE_MODE:1 REFLECTION_MODE:2 SSR_QUALITY:0 WATER_REFRACTION:1 \
	SHADOW_TYPE:2 SHADOW_FILTER:0 shadowMapResolution:2048 shadowDistance:50 \
	!SHADOW_EXCLUDE_ENTITIES !SHADOW_EXCLUDE_FOLIAGE SHADOW_PCF_SAMPLES:12 SHADOW_PCF_SIZE:04 \
	!RSM_ENABLED RSM_SCALE:2 RSM_SAMPLE_COUNT:35 RSM_FILTER_SIZE:0.8 RSM_INTENSITY:4 \
	AO_TYPE:1 !SSS_SCATTER SSS_PCF_SAMPLES:12 PARALLAX_ENABLED BLOOM_ENABLED !BLOOM_SMOOTH \
	!VL_SKY_ENABLED VL_SAMPLES_SKY:8 !VL_WATER_ENABLED VL_SAMPLES_WATER:4 !DOF_ENABLED

profile.MEDIUM=CAMERA_EXPOSURE_MODE:2 REFLECTION_MODE:2 SSR_QUALITY:1 WATER_REFRACTION:1 \
	SHADOW_TYPE:2 SHADOW_FILTER:1 shadowMapResolution:2048 shadowDistance:100 \
	!SHADOW_EXCLUDE_ENTITIES !SHADOW_EXCLUDE_FOLIAGE SHADOW_PCF_SAMPLES:12 SHADOW_PCF_SIZE:04 \
	!RSM_ENABLED RSM_SCALE:1 RSM_SAMPLE_COUNT:100 RSM_FILTER_SIZE:1.2 RSM_INTENSITY:6 \
	AO_TYPE:2 !SSS_SCATTER SSS_PCF_SAMPLES:12 PARALLAX_ENABLED BLOOM_ENABLED BLOOM_SMOOTH \
	VL_SKY_ENABLED VL_SAMPLES_SKY:8 VL_WATER_ENABLED VL_SAMPLES_WATER:4 !DOF_ENABLED

profile.HIGH=CAMERA_EXPOSURE_MODE:2 REFLECTION_MODE:2 SSR_QUALITY:2 WATER_REFRACTION:1 \
	SHADOW_TYPE:2 SHADOW_FILTER:2 shadowMapResolution:4096 shadowDistance:150 \
	!SHADOW_EXCLUDE_ENTITIES !SHADOW_EXCLUDE_FOLIAGE SHADOW_PCF_SAMPLES:24 SHADOW_PCF_SIZE:12 \
	!RSM_ENABLED RSM_SCALE:1 RSM_SAMPLE_COUNT:100 RSM_FILTER_SIZE:1.8 RSM_INTENSITY:12 \
	AO_TYPE:2 SSS_SCATTER SSS_PCF_SAMPLES:24 PARALLAX_ENABLED BLOOM_ENABLED BLOOM_SMOOTH \
	VL_SKY_ENABLED VL_SAMPLES_SKY:16 VL_WATER_ENABLED VL_SAMPLES_WATER:8 DOF_ENABLED

profile.ULTRA=CAMERA_EXPOSURE_MODE:2 REFLECTION_MODE:2 SSR_QUALITY:2 WATER_REFRACTION:1 \
	SHADOW_TYPE:2 SHADOW_FILTER:2 shadowMapResolution:4096 shadowDistance:200 \
	!SHADOW_EXCLUDE_ENTITIES !SHADOW_EXCLUDE_FOLIAGE SHADOW_PCF_SAMPLES:36 SHADOW_PCF_SIZE:12 \
	!RSM_ENABLED RSM_SCALE:1 RSM_SAMPLE_COUNT:200 RSM_FILTER_SIZE:2.4 RSM_INTENSITY:18 \
	AO_TYPE:2 SSS_SCATTER SSS_PCF_SAMPLES:36 PARALLAX_ENABLED BLOOM_ENABLED BLOOM_SMOOTH \
	VL_SKY_ENABLED VL_SAMPLES_SKY:24 VL_WATER_ENABLED VL_SAMPLES_WATER:16 DOF_ENABLED

screen=[DEBUG_OPTIONS] <profile> <empty> <empty> [WORLD_OPTIONS] [WATER_OPTIONS] [MATERIAL_OPTIONS] [ATMOSPHERE_OPTIONS] [SHADOW_OPTIONS] [CAMERA_OPTIONS] [EFFECT_OPTIONS] SHADER_PLATFORM
screen.WORLD_OPTIONS=BLOCKLIGHT_TEMP SHADOW_BRIGHTNESS BLOCK_OUTLINE ENABLE_WAVING DIRECTIONAL_LIGHTMAP_STRENGTH HANDLIGHT_ENABLED WETNESS_MODE SNOW_MODE LIGHTLEAK_FIX
screen.WATER_OPTIONS=WATER_FANCY WATER_REFRACTION WATER_WAVE_TYPE REFRACTION_STRENGTH VL_WATER_ENABLED VL_SAMPLES_WATER
screen.MATERIAL_OPTIONS=MATERIAL_FORMAT [MATERIAL_PARALLAX_OPTIONS] [MATERIAL_SSS_OPTIONS] REFLECTION_MODE <empty> SSR_QUALITY
screen.MATERIAL_SSS_OPTIONS=SSS_ENABLED SSS_SCATTER SSS_STRENGTH SSS_MAXDIST SSS_PCF_SIZE SSS_PCF_SAMPLES SSS_NORMALIZE_ALBEDO
screen.MATERIAL_PARALLAX_OPTIONS=PARALLAX_ENABLED PARALLAX_SHADOWS_ENABLED PARALLAX_SMOOTH PARALLAX_SMOOTH_NORMALS PARALLAX_SAMPLES PARALLAX_SLOPE_NORMALS PARALLAX_SHADOW_SAMPLES PARALLAX_DEPTH PARALLAX_DEPTH_WRITE
screen.ATMOSPHERE_OPTIONS=VL_SKY_ENABLED sunPathRotation VL_STRENGTH CLOUD_LEVEL VL_SAMPLES_SKY WEATHER_OPACITY CAVEFOG_ENABLED ATMOSFOG_ENABLED
screen.SHADOW_OPTIONS=SHADOW_TYPE SHADOW_FILTER shadowMapResolution shadowDistance SHADOW_PCF_SIZE SHADOW_PCF_SAMPLES SHADOW_COLOR SHADOW_PARTICLES SHADOW_CONTACT [SHADOW_ADV_OPTIONS]
screen.SHADOW_ADV_OPTIONS=SHADOW_EXCLUDE_ENTITIES SHADOW_EXCLUDE_FOLIAGE SHADOW_DISTORT_FACTOR SHADOW_BIAS_SCALE SHADOW_DITHER
screen.CAMERA_OPTIONS=CAMERA_EXPOSURE_MODE CAMERA_EXPOSURE TONEMAP CAMERA_BRIGHTNESS <empty> CAMERA_SATURATION
screen.EFFECT_OPTIONS=[EFFECT_AO_OPTIONS] [EFFECT_RSM_OPTIONS] [EFFECT_BLOOM_OPTIONS] [EFFECT_DOF_OPTIONS]
screen.EFFECT_BLOOM_OPTIONS=BLOOM_ENABLED BLOOM_STRENGTH BLOOM_SMOOTH BLOOM_POWER <empty> BLOOM_THRESHOLD
screen.EFFECT_RSM_OPTIONS=RSM_ENABLED RSM_SCALE RSM_FILTER_SIZE RSM_INTENSITY RSM_SAMPLE_COUNT RSM_UPSCALE
screen.EFFECT_AO_OPTIONS=AO_TYPE SSAO_INTENSITY SSAO_RADIUS SSAO_SAMPLES
screen.EFFECT_DOF_OPTIONS=DOF_ENABLED DOF_SCALE
screen.DEBUG_OPTIONS=DEBUG_VIEW DEBUG_EXPOSURE_METERS <empty> <empty>

sliders=DEBUG_VIEW sunPathRotation shadowMapResolution shadowDistance CLOUD_LEVEL DOF_SCALE \
	CAMERA_EXPOSURE CAMERA_BRIGHTNESS CAMERA_SATURATION \
	BLOCKLIGHT_TEMP DIRECTIONAL_LIGHTMAP_STRENGTH WEATHER_OPACITY \
	SHADOW_BIAS_SCALE SHADOW_DISTORT_FACTOR SHADOW_BRIGHTNESS SHADOW_PCF_SIZE SHADOW_PCF_SAMPLES \
	SSS_STRENGTH SSS_PCF_SIZE SSS_PCF_SAMPLES SSS_MAXDIST \
	PARALLAX_DEPTH PARALLAX_SAMPLES PARALLAX_SHADOW_SAMPLES \
	RSM_FILTER_SIZE RSM_INTENSITY BLOOM_STRENGTH BLOOM_POWER BLOOM_THRESHOLD \
	VL_STRENGTH VL_SAMPLES_SKY VL_SAMPLES_WATER \
	SSAO_INTENSITY SSAO_RADIUS SSAO_SAMPLES REFRACTION_STRENGTH

iris.feature.optional=SEPARATE_HARDWARE_SAMPLERS
#particles.ordering=mixed


texture.noise=textures/noise.png

texture.gbuffers.colortex9=textures/sun_transmission.dat TEXTURE_2D RGB16F 256 64 RGB HALF_FLOAT
texture.deferred.colortex7=textures/sun_transmission.dat TEXTURE_2D RGB16F 256 64 RGB HALF_FLOAT

texture.gbuffers.colortex13=textures/clouds_3d.dat TEXTURE_3D R16F 256 256 64 RED HALF_FLOAT
texture.deferred.colortex13=textures/clouds_3d.dat TEXTURE_3D R16F 256 256 64 RED HALF_FLOAT

#if REFLECTION_MODE != 0
	texture.gbuffers.colortex10=textures/brdf.dat TEXTURE_2D RG16F 128 128 RG HALF_FLOAT
	texture.deferred.colortex10=textures/brdf.dat TEXTURE_2D RG16F 128 128 RG HALF_FLOAT
#endif

#if DEBUG_VIEW == 24
	texture.composite.colortex15=textures/brdf.dat TEXTURE_2D RG16F 128 128 RG HALF_FLOAT
#endif

#if DEBUG_VIEW == 25
	texture.composite.colortex7=textures/sun_transmission.dat TEXTURE_2D RGB16F 256 64 RGB HALF_FLOAT
#endif

#if !defined SHADOW_ENABLED || SHADOW_TYPE == 0
	program.shadow.enabled=false
	shadowTerrain=false
	shadowTranslucent=false
	shadowBlockEntities=false
	shadowEntities=false
#else
	shadowTerrain=true
	shadowTranslucent=true
	shadowBlockEntities=true

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

frustum.culling=true
oldLighting=false
separateAo=true
vignette=false
underwaterOverlay=false
particles.before.deferred=false
clouds=off

#ifdef RSM_ENABLED
	shadow.culling=false
#else
	shadow.culling=true
#endif

#ifdef HANDLIGHT_ENABLED
	dynamicHandLight=false
	oldHandLight=false
#else
	dynamicHandLight=true
#endif

#ifdef SHADOW_COLOR
	blend.shadow=DST_COLOR ZERO ZERO ZERO
#endif

blend.gbuffers_skybasic=off
blend.gbuffers_skytextured=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO
blend.gbuffers_weather=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO
blend.gbuffers_clouds=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO
#blend.gbuffers_basic=off
#blend.gbuffers_line=off
#blend.gbuffers_block=off
blend.gbuffers_basic=off
blend.gbuffers_terrain=off
blend.gbuffers_entities=off
#blend.gbuffers_water=DST_COLOR ZERO ZERO ZERO
blend.gbuffers_hand=off
#blend.gbuffers_hand_water=off
blend.gbuffers_beaconbeam=off
#blend.gbuffers_textured=SRC_ALPHA ONE_MINUS_SRC_ALPHA ONE ZERO
blend.deferred1=off
blend.deferred2=off
blend.deferred3=off
blend.deferred4=off
blend.deferred5=off
blend.deferred6=off
blend.deferred7=off
blend.composite1=off
blend.composite2=off
blend.composite3=off
blend.composite4=off
blend.composite5=off
blend.composite6=off
blend.composite7=off
blend.composite8=off
blend.final=off

alphaTest.gbuffers_skybasic=off
#alphaTest.gbuffers_skytextured=off
alphaTest.gbuffers_weather=off
alphaTest.gbuffers_water=off
#alphaTest.gbuffers_hand_water=off
#alphaTest.gbuffers_line=off
#alphaTest.gbuffers_block=off
alphaTest.gbuffers_basic=off
#alphaTest.gbuffers_textured=off
alphaTest.deferred1=off
alphaTest.deferred2=off
alphaTest.deferred3=off
alphaTest.deferred4=off
alphaTest.deferred5=off
alphaTest.deferred6=off
alphaTest.deferred7=off
alphaTest.composite5=off
alphaTest.final=off

#if SHADER_PLATFORM == 1
	#alphaTest.shadow=off
	alphaTest.gbuffers_terrain=off
	alphaTest.gbuffers_entities=off
	alphaTest.gbuffers_clouds=off
	alphaTest.gbuffers_hand=off
#endif

#if SSR_QUALITY == 0
	size.buffer.colortex5=0.25 0.25
	#size.buffer.colortex6=0.25 0.25
	size.buffer.colortex12=0.25 0.25
#elif SSR_QUALITY == 1
	size.buffer.colortex5=0.5 0.5
	#size.buffer.colortex6=0.5 0.5
	size.buffer.colortex12=0.5 0.5
#endif

size.buffer.colortex11=2048 2048

#if WATER_WAVE_TYPE != 2
	program.deferred1.enabled=false
#endif

#if WATER_REFRACTION == 0 || defined WATER_REFRACT_HACK
	program.deferred7.enabled=false
#endif

#ifdef RSM_ENABLED
	#if RSM_SCALE == 1
		size.buffer.colortex8=0.5 0.5
		size.buffer.colortex9=0.5 0.5
	#elif RSM_SCALE == 2
		size.buffer.colortex8=0.25 0.25
		size.buffer.colortex9=0.25 0.25
	#endif
#else
	program.deferred2.enabled=false
#endif

#if AO_TYPE == 2
	size.buffer.colortex3=0.5 0.5
#else
	program.deferred4.enabled=false
#endif

program.composite1.enabled=false
program.composite2.enabled=false
program.composite3.enabled=false

program.composite4.enabled=DOF_ENABLED

program.composite6.enabled=BLOOM_ENABLED
program.composite7.enabled=BLOOM_ENABLED
program.composite8.enabled=BLOOM_ENABLED


#== CUSTOM UNIFORMS ==#

variable.float.waterScatterR_default=0.304
variable.float.waterScatterG_default=0.626
variable.float.waterScatterB_default=0.646
variable.float.waterAbsorbR_default=0.625
variable.float.waterAbsorbG_default=0.793
variable.float.waterAbsorbB_default=0.838
variable.float.waterFogDist_default=16.0

variable.float.waterScatterR_swamp=0.304
variable.float.waterScatterG_swamp=0.626
variable.float.waterScatterB_swamp=0.646
variable.float.waterAbsorbR_swamp=0.531/2.0
variable.float.waterAbsorbG_swamp=0.630/2.0
variable.float.waterAbsorbB_swamp=0.370/2.0
variable.float.waterFogDist_swamp=8.0

variable.float.waterScatterR_jungle=0.541
variable.float.waterScatterG_jungle=0.768
variable.float.waterScatterB_jungle=0.740
variable.float.waterAbsorbR_jungle=0.625
variable.float.waterAbsorbG_jungle=0.793
variable.float.waterAbsorbB_jungle=0.838
variable.float.waterFogDist_jungle=24.0

variable.float.skyWetness=if(biome_precipitation == PPT_RAIN, rainStrength, 0.0)
variable.float.skySnow=if(biome_precipitation == PPT_SNOW, rainStrength, 0.0)

variable.float.waterScatterR=if(\
	biome_category == CAT_SWAMP, waterScatterR_swamp,\
	biome_category == CAT_JUNGLE, waterScatterR_jungle,\
	waterScatterR_default)

variable.float.waterScatterG=if(\
	biome_category == CAT_SWAMP, waterScatterG_swamp,\
	biome_category == CAT_JUNGLE, waterScatterG_jungle,\
	waterScatterG_default)

variable.float.waterScatterB=if(\
	biome_category == CAT_SWAMP, waterScatterB_swamp,\
	biome_category == CAT_JUNGLE, waterScatterB_jungle,\
	waterScatterB_default)

variable.float.waterAbsorbR=if(\
	biome_category == CAT_SWAMP, waterAbsorbR_swamp,\
	biome_category == CAT_JUNGLE, waterAbsorbR_jungle,\
	waterAbsorbR_default)

variable.float.waterAbsorbG=if(\
	biome_category == CAT_SWAMP, waterAbsorbG_swamp,\
	biome_category == CAT_JUNGLE, waterAbsorbG_jungle,\
	waterAbsorbG_default)

variable.float.waterAbsorbB=if(\
	biome_category == CAT_SWAMP, waterAbsorbB_swamp,\
	biome_category == CAT_JUNGLE, waterAbsorbB_jungle,\
	waterAbsorbB_default)

variable.float.waterFogDist=if(\
	biome_category == CAT_SWAMP, waterFogDist_swamp,\
	biome_category == CAT_JUNGLE, waterFogDist_jungle,\
	waterFogDist_default)

variable.float.biomeWetness=if(\
	biome_category == CAT_SWAMP, 0.7,\
	biome_category == CAT_JUNGLE, 0.6,\
	biome_category == CAT_MUSHROOM, 0.4,\
	0.0)

variable.float.biomeSnow=if(biome_precipitation == PPT_SNOW, 0.8, 0.0)

uniform.float.biomeWetnessSmooth=smooth(biomeWetness, 6, 6)
uniform.float.biomeSnowSmooth=smooth(biomeSnow, 6, 6)

variable.float.waterScatterSmoothR=smooth(waterScatterR, 6)
variable.float.waterScatterSmoothG=smooth(waterScatterG, 6)
variable.float.waterScatterSmoothB=smooth(waterScatterB, 6)
uniform.vec3.waterScatterColor=vec3(waterScatterSmoothR, waterScatterSmoothG, waterScatterSmoothB)

variable.float.waterAbsorbSmoothR=smooth(waterAbsorbR, 6)
variable.float.waterAbsorbSmoothG=smooth(waterAbsorbG, 6)
variable.float.waterAbsorbSmoothB=smooth(waterAbsorbB, 6)
uniform.vec3.waterAbsorbColor=vec3(waterAbsorbSmoothR, waterAbsorbSmoothG, waterAbsorbSmoothB)

uniform.float.waterFogDistSmooth=smooth(waterFogDist, 6)

uniform.float.skyWetnessSmooth=smooth(skyWetness, 6, 150)
uniform.float.skySnowSmooth=smooth(skySnow, 6, 150)

uniform.float.eyeHumidity=smooth(rainfall, 3, 3)
