[ℹ]
FULLNAME=Lighting FX
PREVIEW=https://acstuff.ru/images/modules/lighting_fx.jpg
DESCRIPTION=Adds various car lights, track lights (casted light, not emissive stuff), as well as dynamic ambient color.
SHORT_DESCRIPTION=Dynamic lights of all sorts
URL=https://trello.com/c/rB6qtDiI/1-dynamic-lights

[BASIC]
; Extension
ENABLED=1 ; Active (set to 0 to disable Lighting FX); 1 or 0
BRIGHTNESS_MULT=1 ; Brightness (to adjust for PP-filter); from 0 to 2, perc

SPECULAR_MULT=1.0 ; Track speculars multiplier; from 0 to 1.5, perc
CARS_LIT_MULT=1.0 ; Cars lit multiplier (with 100%, they get way too bright for some reason); from 0 to 1.5, perc
LIGHT_FROM_BEHIND_MULT=1.0 ; Headlights on interior; from 0 to 2, perc
SPECULAR_MULT_CAR=1.0 ; Cars specular multiplier; from 0 to 1.5, perc
SPECULAR_BYFLAMES_MULT=1.0 ; Flames speculars; from 0 to 1.5, perc

HEADLIGHTS_SATURATION_MULT=0.9 ; There is a boring story about tonemapping on why it’s less than zero; from 0 to 1.5, perc
BOUNCED_LIGHT_MULT=0.12 ; Bounced light (how much light should bounce back to car); from 0 to 0.25, perc
BOUNCED_INTERIOR_LIGHT_MULT=0.07 ; Bounced interior light (how much light should bounce back to car interior); from 0 to 0.25, perc
BOUNCED_LIGHT_SH_DIR=0,-1,0 ;; hidden
BOUNCED_LIGHT_SH_WEATHER_MULT=1 ;; hidden
BOUNCED_LIGHT_SH_SATURATION_MULT=0.7 ;; hidden

HEADLIGHTS_RANGE_MULT=1.0 ; multiplier for RANGE_FIRSTPERSON; hidden
HEADLIGHTS_NEARBY_MULT=1.0 ; for RANGE_CARS_NEARBY; hidden
HEADLIGHTS_DISTANT_RANGE_MULT=1.0 ; and for RANGE_CARS_DISTANT; hidden
HEADLIGHTS_SPOT_MULT=1.0 ; headlights wideness; from 0.5 to 2.5, perc

DYNAMIC_AMBIENT_MULT=1.0 ; Dynamic ambient gain; from 0 to 1, perc.
DYNAMIC_AMBIENT_AUTO_BRIGHTNESS=0 ; Auto-brightness for dynamic ambient; 1 or 0; only with "DYNAMIC_AMBIENT_MULT"
DYNAMIC_AMBIENT_BRIGHTNESS=1.0 ; Dyn. ambient brightness; from 0 to 3, perc.; only with "DYNAMIC_AMBIENT_MULT"
DYNAMIC_AMBIENT_SATURATION=0.8 ; Dyn. ambient saturation; from 0 to 3, perc.; only with "DYNAMIC_AMBIENT_MULT"
DYNAMIC_AMBIENT_GAMMA=1.0 ; Dyn. ambient gamma; from 0 to 3, perc.; only with "DYNAMIC_AMBIENT_MULT"
DYNAMIC_AMBIENT_SMOOTHING=0.1 ; Dyn. ambient filtering (helps a lot to reduce flickering); from 0 to 0.1; only with "DYNAMIC_AMBIENT_MULT"
TRACK_AMBIENT_GROUND_MULT=0.4 ; how bright are bits of track facing downwards; hidden
TRACK_AMBIENT_GROUND_MULT_VAO=0.7 ; how bright are bits of track facing downwards if vertex AO is found; hidden

AMBIENT_BASED_BRIGHTNESS_MULT=2 ;; hidden
AMBIENT_BASED_BRIGHTNESS_EXP=2.5 ;; hidden
AMBIENT_BASED_EMISSIVE_DIM=0.8 ;; hidden
AMBIENT_BASED_RANGE_REDUCE=0.5 ;; hidden
AMBIENT_BASED_TRACK_THRESHOLD=0.5 ;; hidden

EMISSIVE_CAMERA_GAIN=5.0 ; (increases headlights glare if camera is caught up in lights); from 1 to 30, perc.
EMISSIVE_MIRROR_GAIN=20.0 ; (increases headlights glare in mirror if camera is caught up in lights); from 1 to 30, perc.

[DEV]
; hidden
DEBUG_LIGHTS_ORIGIN=? ; filters for MESHES or MATERIALS of lights to debug
DEBUG_LIGHTS_COUNT=10 ; amount of closest lights to debug
DEBUG_LIGHTS_DISTANCE=1000 ; distance for debugging, in meters
EXTRA_LIGHT_OFFSET=0, -0.15, 0.55
; DEBUG_LIGHTS_MODE=11        ; sum numbers: 1 for outline, 2 for bounding box, 4 for bounding sphere, 8 for text
; PERVERTEX_AO_DEBUG=DISABLED
; PERVERTEX_AO_DEBUG=AOONLY

[PERFORMANCE]
CARS_WITH_LIGHTS=10 ; Cars casting lights (to save FPS, you can have only limited number of cars casting light); from 0 car(s) to 50, round
DISABLE_DASHBOARD_LIGHT=0 ; (not that it affects performance that much); 1 or 0
DISABLE_MIRRORING=0 ; (collapse all headlights and brakelights by default); 1 or 0
DISABLE_MIRRORING_FIRSTPERSON=0 ; Disable mirroring in first person view (turn both headlights into one while driving in first person view); 1 or 0
ENABLE_TREES_LIGHTING=1 ; Enable trees lighting; 1 or 0
ENABLE_REARVIEWMIRROR_LIGHT=1 ; Enable lights in mirror; 1 or 0
ENABLE_REFLECTION_LIGHT=1 ; Enable lighting in reflections (expensive); 1 or 0

INCREASE_RANGE_OUTSIDE=1.0 ; by how much headlights range would increase in replays and such; from 0.5 to 2.5, perc
INCREASE_RANGE_OUTSIDE_CARS_THRESHOLD=6 ; only if cars are fewer than (that’s a heavy thing); from 1 to 10, round

START_BRANCH_FACTOR=8 ;; hidden
BRANCH_FACTOR_GROW=2 ;; hidden
BRANCH_FACTOR_MAX=16 ;; hidden

[SHADOWS]
; Dynamic shadows (expensive)
ENABLED=0 ; Active; 1 or 0
FULL_RESOLUTION=1 ; Full resolution; 1 or 0
CARS_SHADOWS=2 ; Cars with shadows (with zero, selected car wouldn’t cast shadows as well); from 0 to 5, round to 1
SPECTATING_CARS_SHADOWS=3 ; Cars with shadows in replay (or without a focused car, like with free or track camera); from 0 to 5, round to 1
CARS_SHADOWS_HIGH_RESOLUTION=0 ; High resolution for cars’ shadows (selected car is always in high resolution; reduces range of track lights shadows; also might look worse); hidden
CARS_IN_TRACK_SHADOWS=1 ; Include car shadows in track lights’ shadows (if disabled, forces all shadows to operate in static mode); 1 or 0
HIGH_QUALITY_HEADLIGHT_SHADOWS=0 ; High quality headlight shadows (very expensive); 1 or 0
DETAILED_SHADOWS_FROM_CARS_NEARBY=1 ; Detailed car shadows (number of closest cars casting detailed shadows instead of using a single call with LOD D or collider mesh); from 0 car(s) to 4, round to 1; new

[RANGES]
; hidden
COMPLEXIFY_RANGE_FROM=50.0 ; Increase when far, from; from 30 m to `COMPLEXIFY_RANGE_TO`
COMPLEXIFY_RANGE_TO=500.0 ; Increase when far, to; from `COMPLEXIFY_RANGE_FROM` m to 800
TREAT_AS_SIMPLE_FROM=100.0   ; at this distance, complex light with shape and second cone will start to turn into 
                             ; a simple one, which is easier to render
TREAT_AS_SIMPLE_TO=200.0
NOMIRROR_FROM=120.0          ; distance to collapse headlights and brakelights into a single light source
NOMIRROR_TO=150.0
