# Pencil Drawing Shader Properties

# Buffer formats for bloom and effects
# Override spidereyes blend: replace instead of add, so eye overlay paints over blown-out sockets
blend.gbuffers_spidereyes = SRC_ALPHA ONE_MINUS_SRC_ALPHA ZERO ONE
colortex1Format = RGBA16F
colortex2Format = RGBA16F
colortex3Format = RGBA16F
colortex4Format = RGB8
texture.noise = blueNoiseR.png
# Use colortex5 for color palette (compatible with both Iris and OptiFine)
colortex5Format = RGB8
colortex6Format = RGB8

# Color palette texture assignments
# colortex5 = 1xN palette strip  (used by Custom 1xN / brute-force path, PALETTE_BRAND == 0)
# colortex6 = LUT                (used by Custom LUT and built-in brands,  PALETTE_BRAND != 0)
#
# PALETTE_BRAND:
#   0 = Custom 1xN   -> colortex5 = palettes/CustomPalette.png
#   1 = Custom LUT   -> colortex6 = luts/CustomPalette_lut.png
#   2 = Faber-Castell Polychromos 120 (built-in LUT)
#   3 = Prismacolor Premier 150       (built-in LUT)
#ifdef PALETTE_BRAND
    #if PALETTE_BRAND == 0
        texture.composite.colortex5 = palettes/CustomPalette.png
    #elif PALETTE_BRAND == 1
        texture.composite.colortex6 = luts/CustomPalette_lut.png
    #elif PALETTE_BRAND == 2
        texture.composite.colortex6 = luts/FaberCastell_120_lut.png
    #elif PALETTE_BRAND == 3
        texture.composite.colortex6 = luts/Prismacolor_150_lut.png
    #endif
#endif

# Enable composite passes
composite1.enabled = true
composite2.enabled = true

screen = <profile>  DRAWING_STYLE [ColorPalette] [ArtStyle] [Lighting] [Atmosphere] [Effects] [ColorGrading] [Experimental]


# =============================================================================
# COLOR PALETTE  (promoted to top-level - most likely setting players want)
# =============================================================================
screen.ColorPalette = PALETTE_ENABLED PALETTE_BRAND PALETTE_CUSTOM_1XN_SIZE PALETTE_PRESERVE_LUMINANCE PALETTE_STRENGTH PALETTE_SMOOTHNESS PALETTE_DITHER_STRENGTH
screen.ColorPalette.columns = 2


# =============================================================================
# ART STYLE  (everything that shapes the drawn look)
# =============================================================================
screen.ArtStyle = [Paper] [Pencil] [Outlines] [Hatching] [TextureStyle] [Painterly]
screen.ArtStyle.columns = 2

# --- Paper ---
# Everything about the background surface
screen.Paper = PAPER_STYLE PAPER_WHITENESS PAPER_WARMTH PAPER_TEXTURE_STRENGTH PAPER_TEXTURE_SCALE PAPER_CRINKLE_STRENGTH PAPER_CRINKLE_SCALE [PaperAdvanced]
screen.Paper.columns = 2

# Less-touched fine tuning
screen.PaperAdvanced = PAPER_MAX_BRIGHTNESS PAPER_MIN_BRIGHTNESS PAPER_TEXTURE_SPEED DARKNESS_THRESHOLD DARKNESS_SMOOTHNESS
screen.PaperAdvanced.columns = 2

# --- Pencil ---
# Everything about how the pencil itself looks and behaves
screen.Pencil = PENCIL_R PENCIL_G PENCIL_B GRAYSCALE_STRENGTH [PencilLines] [AdaptivePencil] [PencilGrain]
screen.Pencil.columns = 2

screen.PencilGrain = ADVANCED_GRAIN_SYSTEM PENCIL_GRAIN_ENABLED GRAIN_HEIGHT_SCALE GRAIN_INTENSITY GRAIN_DIRECTIONAL_BIAS GRAIN_FINE_DETAIL PRESSURE_SOFTENING GRAIN_L1_SCALE GRAIN_L2_SCALE
screen.PencilGrain.columns = 2

# --- Outlines ---
screen.Outlines = [GeometricOutlines] [TextureOutlines] COMPOSITE_THICKNESS_BOOST [DistanceSettings]
screen.Outlines.columns = 2

screen.GeometricOutlines = GEOMETRIC_OUTLINES LINE_THRESHOLD_DEPTH LINE_THRESHOLD_NORMAL GEOMETRIC_THICKNESS
screen.GeometricOutlines.columns = 2

screen.TextureOutlines = TEXTURE_OUTLINES LINE_THRESHOLD_CONTRAST LIGHTING_ADAPTIVE_THRESHOLD_DARK LIGHTING_ADAPTIVE_THRESHOLD_BRIGHT TEXTURE_THICKNESS TEXTURE_DISTANCE_FADE ENABLE_SKY_TEXTURE_OUTLINES
screen.TextureOutlines.columns = 2

screen.DistanceSettings = TEXTURE_SIMPLIFY_DISTANCE GEOMETRIC_ONLY_DISTANCE
screen.DistanceSettings.columns = 2

# --- Pencil Lines (nested under Pencil) ---
screen.PencilLines = PENCIL_LINE_VARIATION ENABLE_SOFT_PENCIL_LINE OUTLINE_STRENGTH PENCIL_CORE_STRENGTH FINAL_THICKNESS_BOOST LINE_THICKNESS_VARIATION LINE_DIRECTION_VARIATION LINE_GRAIN_STRENGTH PAPER_LINE_MASKING LINE_BLUR_RADIUS THIN_LINE_FADE_FACTOR PENCIL_GRAIN_INTENSITY PENCIL_PRESSURE_VARIATION
screen.PencilLines.columns = 2

screen.AdaptivePencil = COLOR_ADAPTIVE_PENCIL PENCIL_DARKEN_AMOUNT PENCIL_SATURATION_BOOST PENCIL_BRIGHTNESS_BIAS
screen.AdaptivePencil.columns = 2

# --- Hatching ---
screen.Hatching = HATCHING_ENABLED SCALE_HATCHING_WITH_DARKNESS HATCHING_DARKNESS_THRESHOLD HATCHING_STRENGTH HATCHING_DENSITY HATCHING_THICKNESS HATCHING_ANGLE1 HATCHING_ANGLE2 HATCHING_IRREGULARITY MAX_HATCHING_DIRECTIONS HATCHING_DIRECTION_SPACING CROSS_HATCHING_THRESHOLD HATCHING_THICKNESS_VARIATION HATCHING_SPACING_VARIATION HATCHING_PRESSURE_VARIATION HATCHING_LINE_BREAKS HATCHING_LINE_SKIP_ENABLED HATCHING_LINE_SKIP_BASE_CHANCE HATCHING_LINE_SKIP_INCREMENT HATCHING_LINE_SKIP_MAX_CHANCE
screen.Hatching.columns = 2

# --- Texture Style ---
screen.TextureStyle = TEXTURE_PAPER_STYLE DISABLE_TEXTURES TEXTURE_PAPER_WHITENESS TEXTURE_GRAYSCALE_STRENGTH ENABLE_DIRECTIONAL_LIGHTING GRAY_BIAS_STRENGTH GRAY_BIAS_RANGE_MIN GRAY_BIAS_RANGE_MAX GRAY_BIAS_BRIGHTNESS_LIFT
screen.TextureStyle.columns = 2

# --- Painterly (only relevant when Drawing Style = Painterly) ---
screen.Painterly = KUWAHARA_ENABLED KUWAHARA_RADIUS KUWAHARA_SHARPNESS
screen.Painterly.columns = 2


# =============================================================================
# LIGHTING  (shadows, godrays, bloom, emissives, sky)
# =============================================================================
screen.Lighting = [Shadow] [Godrays] [Bloom] [EmissiveSettings] [HandheldLight] [Sky]
screen.Lighting.columns = 2

screen.Shadow = ENABLE_SHADOWS ENABLE_DIRECTIONAL_LIGHTING SHADOW_BRIGHTNESS SOFT_SHADOWS PCF_SAMPLE PCF_BLUR_RADIUS COLORED_SHADOWS BLOCK_LIGHT_INTENSITY CAVE_DARKNESS shadowMapResolution shadowDistance [ShadowAdvanced]
screen.Shadow.columns = 2

# Bias/artifact fixes - rarely needed by players
screen.ShadowAdvanced = SHADOW_DISTORTION SHADOW_DISTORT_REDUCTION FAR_DISTANCE_BIAS_START FAR_DISTANCE_BIAS_RANGE FAR_DISTANCE_BIAS_MAX WATER_SHADOW_BIAS_MULTIPLIER WATER_PCF_SAMPLES WATER_SHADOW_SOFTNESS LIGHT_DIRECTION_OFFSET
screen.ShadowAdvanced.columns = 2

screen.Godrays = GODRAYS_ENABLED GODRAY_DUAL_TWILIGHT GODRAY_SAMPLES GODRAY_INTENSITY GODRAY_DENSITY GODRAY_DECAY GODRAY_WEIGHT GODRAY_WARMTH GODRAY_NIGHT_INTENSITY GODRAY_MOON_WARMTH
screen.Godrays.columns = 2

screen.Bloom = BLOOM_ENABLED PIXEL_BLOOM BLOOM_THRESHOLD BLOOM_INTENSITY BLOOM_RADIUS
screen.Bloom.columns = 2

screen.EmissiveSettings = EMISSIVE_BASE_THRESHOLD EMISSIVE_BOOST_STRENGTH
screen.EmissiveSettings.columns = 2

screen.HandheldLight = HANDHELD_LIGHT HANDHELD_LIGHT_RANGE HANDHELD_LIGHT_STRENGTH
screen.HandheldLight.columns = 2

screen.Sky = sunPathRotation ENABLE_SKY_TEXTURE_OUTLINES
screen.Sky.columns = 1


# =============================================================================
# ATMOSPHERE  (fog, water)
# =============================================================================
screen.Atmosphere = FOG_ENABLED WATER_FOG_ENABLED [WaterWaves] 
screen.Atmosphere.columns = 2

screen.WaterWaves = Shininess WATER_WAVE_AMPLITUDE WATER_WAVE_FREQUENCY WATER_WAVE_SPEED
screen.WaterWaves.columns = 2

# =============================================================================
# EFFECTS  (post-process visuals layered on top of the world)
# =============================================================================
screen.Effects = WHITE_VIGNETTE_ENABLED DRAW_ON_ENABLED [VignetteSettings] [SpeedLines] [Voronoi] [VertexDistortion]
screen.Effects.columns = 2

screen.VignetteSettings = VIGNETTE_STRENGTH VIGNETTE_RADIUS VIGNETTE_SOFTNESS
screen.VignetteSettings.columns = 2

screen.SpeedLines = SPEED_LINES_ENABLED SPEED_LINE_WHITE SPEED_LINE_COUNT SPEED_LINE_INTENSITY SPEED_LINES_STATIC SPEED_THRESHOLD
screen.SpeedLines.columns = 2

screen.Voronoi = ENABLE_VORONOI_DISTORTION VORONOI_BLOCK_DISTORTION VORONOI_ENTITY_DISTORTION VORONOI_VIEWMODEL_DISTORTION
screen.Voronoi.columns = 2

screen.VertexDistortion = Uncube Camera UNCUBE_DISTANCE_SCALING UNCUBE_MIN_DISTANCE UNCUBE_MAX_DISTANCE UNCUBE_MIN_STRENGTH UNCUBE_TIME_SYNC
screen.VertexDistortion.columns = 2


# =============================================================================
# COLOR GRADING  (fine-tune colors - most players won't need this)
# =============================================================================
screen.ColorGrading = COLOR_GRADING_ENABLED VIBRANCE_AMOUNT SATURATION_AMOUNT CONTRAST_AMOUNT BRIGHTNESS_FACTOR LIFT_AMOUNT GAMMA_AMOUNT GAIN_AMOUNT COLOR_TEMP_AMOUNT PURKINJE_ENABLED PURKINJE_STRENGTH
screen.ColorGrading.columns = 2


# =============================================================================
# EXPERIMENTAL  (unstable or novelty effects)
# =============================================================================
screen.Experimental = GENERATE_SURFACE_HATCHING [ColorGrid] [LegacyOutlines]
screen.Experimental.columns = 2

# Color Grid / Assimilation effect (all related settings together)
screen.ColorGrid = COLOR_GRID_ENABLED ADAPTIVE_COLOR_STRENGTH GRID_COLOR_SATURATION GRID_COLOR_INTENSITY BASE_DESATURATION COLOR_BLEEDING
screen.ColorGrid.columns = 2

# Legacy outline system (kept for compatibility)
screen.LegacyOutlines = ENABLE_TEXTURE_OUTLINES TEXTURE_OUTLINE_STRENGTH OUTLINE_THICKNESS
screen.LegacyOutlines.columns = 2


# =============================================================================
# SLIDERS
# =============================================================================
sliders = PCF_BLUR_RADIUS WATER_PCF_SAMPLES PCF_SAMPLE KUWAHARA_RADIUS KUWAHARA_SHARPNESS PAPER_WHITENESS PAPER_MAX_BRIGHTNESS PAPER_MIN_BRIGHTNESS PAPER_WARMTH PAPER_TEXTURE_STRENGTH PAPER_TEXTURE_SCALE PAPER_TEXTURE_SPEED PAPER_CRINKLE_STRENGTH PAPER_CRINKLE_SCALE DARKNESS_THRESHOLD DARKNESS_SMOOTHNESS GRAYSCALE_STRENGTH TEXTURE_GRAYSCALE_STRENGTH LINE_THRESHOLD_DEPTH LINE_THRESHOLD_NORMAL GEOMETRIC_THICKNESS LINE_THRESHOLD_CONTRAST LIGHTING_ADAPTIVE_THRESHOLD_DARK LIGHTING_ADAPTIVE_THRESHOLD_BRIGHT TEXTURE_THICKNESS TEXTURE_DISTANCE_FADE TEXTURE_SIMPLIFY_DISTANCE GEOMETRIC_ONLY_DISTANCE LINE_THICKNESS_VARIATION LINE_DIRECTION_VARIATION LINE_GRAIN_STRENGTH PAPER_LINE_MASKING FINAL_THICKNESS_BOOST LINE_BLUR_RADIUS OUTLINE_STRENGTH PENCIL_GRAIN_INTENSITY PENCIL_PRESSURE_VARIATION PENCIL_CORE_STRENGTH THIN_LINE_FADE_FACTOR COMPOSITE_THICKNESS_BOOST TEXTURE_OUTLINE_STRENGTH OUTLINE_THICKNESS GRAY_BIAS_STRENGTH GRAY_BIAS_RANGE_MIN GRAY_BIAS_RANGE_MAX GRAY_BIAS_BRIGHTNESS_LIFT Shininess HATCHING_THICKNESS_VARIATION HATCHING_SPACING_VARIATION HATCHING_PRESSURE_VARIATION HATCHING_LINE_BREAKS HATCHING_LINE_SKIP_BASE_CHANCE HATCHING_LINE_SKIP_INCREMENT HATCHING_LINE_SKIP_MAX_CHANCE SHADOW_DISTORT_REDUCTION SHADOW_BRIGHTNESS BLOCK_LIGHT_INTENSITY CAVE_DARKNESS shadowMapResolution TEXTURE_PAPER_WHITENESS BLOOM_THRESHOLD BLOOM_INTENSITY BLOOM_RADIUS GODRAY_SAMPLES GODRAY_INTENSITY GODRAY_DENSITY GODRAY_DECAY GODRAY_WEIGHT GODRAY_WARMTH GODRAY_NIGHT_INTENSITY GODRAY_MOON_WARMTH HANDHELD_LIGHT_RANGE HANDHELD_LIGHT_STRENGTH GRAIN_HEIGHT_SCALE GRAIN_INTENSITY GRAIN_DIRECTIONAL_BIAS GRAIN_FINE_DETAIL PRESSURE_SOFTENING GRAIN_L1_SCALE GRAIN_L2_SCALE HATCHING_DARKNESS_THRESHOLD HATCHING_DENSITY MAX_HATCHING_DIRECTIONS HATCHING_DIRECTION_SPACING HATCHING_ANGLE1 HATCHING_ANGLE2 HATCHING_THICKNESS HATCHING_STRENGTH CROSS_HATCHING_THRESHOLD HATCHING_IRREGULARITY FAR_DISTANCE_BIAS_START FAR_DISTANCE_BIAS_RANGE FAR_DISTANCE_BIAS_MAX WATER_SHADOW_BIAS_MULTIPLIER WATER_SHADOW_SOFTNESS WATER_WAVE_AMPLITUDE WATER_WAVE_FREQUENCY WATER_WAVE_SPEED Uncube Camera UNCUBE_MIN_DISTANCE UNCUBE_MAX_DISTANCE UNCUBE_MIN_STRENGTH EMISSIVE_BASE_THRESHOLD EMISSIVE_BOOST_STRENGTH GRID_COLOR_SATURATION GRID_COLOR_INTENSITY BASE_DESATURATION COLOR_BLEEDING LIGHT_DIRECTION_OFFSET sunPathRotation shadowDistance PENCIL_R PENCIL_G PENCIL_B VIBRANCE_AMOUNT SATURATION_AMOUNT CONTRAST_AMOUNT BRIGHTNESS_FACTOR LIFT_AMOUNT GAMMA_AMOUNT GAIN_AMOUNT COLOR_TEMP_AMOUNT PURKINJE_STRENGTH PURKINJE_THRESHOLD PALETTE_CUSTOM_1XN_SIZE PALETTE_STRENGTH PALETTE_SMOOTHNESS PALETTE_DITHER_STRENGTH VIGNETTE_STRENGTH VIGNETTE_RADIUS VIGNETTE_SOFTNESS SPEED_LINE_INTENSITY SPEED_THRESHOLD PENCIL_DARKEN_AMOUNT PENCIL_SATURATION_BOOST PENCIL_BRIGHTNESS_BIAS


# =============================================================================
# PERFORMANCE PROFILES
# =============================================================================
profile.SCREENSHOT = ENABLE_SHADOWS=1 ADVANCED_GRAIN_SYSTEM=STYLE_ADVANCED_GRAIN_SYSTEM shadowMapResolution=8192 shadowDistance=512.0 BLOOM_ENABLED=1 GODRAYS_ENABLED=1 GODRAY_DUAL_TWILIGHT=1 GODRAY_SAMPLES=64 ENABLE_SOFT_PENCIL_LINE=1 MAX_HATCHING_DIRECTIONS=4 ENABLE_DIRECTIONAL_LIGHTING=1 SHADOW_DISTORT_REDUCTION=0.30 PCF_SAMPLE=64 KUWAHARA_RADIUS=12 PALETTE_CUSTOM_1XN_SIZE=72
profile.ULTRA = ENABLE_SHADOWS=1 ADVANCED_GRAIN_SYSTEM=STYLE_ADVANCED_GRAIN_SYSTEM shadowMapResolution=2048 shadowDistance=384.0 BLOOM_ENABLED=1 GODRAYS_ENABLED=1 GODRAY_DUAL_TWILIGHT=1 GODRAY_SAMPLES=48 ENABLE_SOFT_PENCIL_LINE=1 MAX_HATCHING_DIRECTIONS=4 ENABLE_DIRECTIONAL_LIGHTING=1 SHADOW_DISTORT_REDUCTION=0.15 PCF_SAMPLE=32 KUWAHARA_RADIUS=12 PALETTE_CUSTOM_1XN_SIZE=72
profile.HIGH= ENABLE_SHADOWS=1 ADVANCED_GRAIN_SYSTEM=STYLE_ADVANCED_GRAIN_SYSTEM shadowMapResolution=1024 shadowDistance=256.0 BLOOM_ENABLED=1 GODRAYS_ENABLED=1 GODRAY_DUAL_TWILIGHT=1 GODRAY_SAMPLES=48 ENABLE_SOFT_PENCIL_LINE=1 MAX_HATCHING_DIRECTIONS=4 ENABLE_DIRECTIONAL_LIGHTING=1 SHADOW_DISTORT_REDUCTION=0.15 PCF_SAMPLE=16 KUWAHARA_RADIUS=10 PALETTE_CUSTOM_1XN_SIZE=72
profile.MEDIUM = ENABLE_SHADOWS=1 ADVANCED_GRAIN_SYSTEM=0 shadowMapResolution=512 shadowDistance=128.0 BLOOM_ENABLED=1 GODRAYS_ENABLED=1 GODRAY_DUAL_TWILIGHT=0 GODRAY_SAMPLES=32 ENABLE_SOFT_PENCIL_LINE=1 MAX_HATCHING_DIRECTIONS=3 ENABLE_DIRECTIONAL_LIGHTING=1 SHADOW_DISTORT_REDUCTION=0.15 PCF_SAMPLE=8 KUWAHARA_RADIUS=8 PALETTE_CUSTOM_1XN_SIZE=72
profile.LOW = ENABLE_SHADOWS=0 ADVANCED_GRAIN_SYSTEM=STYLE_ADVANCED_GRAIN_SYSTEM shadowMapResolution=512 shadowDistance=128.0 BLOOM_ENABLED=1 GODRAYS_ENABLED=0 GODRAY_DUAL_TWILIGHT=0 GODRAY_SAMPLES=24 ENABLE_SOFT_PENCIL_LINE=1 MAX_HATCHING_DIRECTIONS=4 ENABLE_DIRECTIONAL_LIGHTING=1 SHADOW_DISTORT_REDUCTION=0.15 KUWAHARA_RADIUS=8 PALETTE_CUSTOM_1XN_SIZE=72
profile.POTATO = ENABLE_SHADOWS=0 ADVANCED_GRAIN_SYSTEM=0 shadowMapResolution=512 shadowDistance=64.0 BLOOM_ENABLED=0 GODRAYS_ENABLED=0 GODRAY_DUAL_TWILIGHT=0 GODRAY_SAMPLES=16 ENABLE_SOFT_PENCIL_LINE=0 MAX_HATCHING_DIRECTIONS=2 ENABLE_DIRECTIONAL_LIGHTING=0 SHADOW_DISTORT_REDUCTION=0.15 KUWAHARA_RADIUS=6
