[ℹ]
FULLNAME=Smart Mirror
PREVIEW=https://acstuff.ru/images/modules/smart_mirror.jpg
DESCRIPTION=At first it was just a few tweaks, but then, @henter implemented brilliant Real Mirrors system. Oh, and it adds an option to turn on post-processing for virtual mirrors.
SHORT_DESCRIPTION=Real reflections and more
URL=https://trello.com/c/RgjExfs5/5-smart-mirror

[BASIC]
; Extension 
ENABLED=1 ; Active (set to 0 to disable Smart Mirror extension); 1 or 0
ACTIVE_ON_FOCUSED=1 ; Enable mirrors if car is focused (not only in first person view); 1 or 0
MIRROR_MIPS=1 ; Add MIPs to rear view mirrors (reduces aliasing in reflections, requires restart to see the changes); 1 or 0; new

[CUSTOM_RENDER_DISTANCE]
; Custom render distance
ENABLED=0 ; Active; 1 or 0
DISTANCE=1600 ; Custom render distance; from 400 m to 2400, round to 100; only with ENABLED
__HINT_BOTTOM=Original distance: 800 m for high quality mirrors, 400 m for low quality ;; hidden

[NORMALIZE_MAPPING]
; Normalize UV mapping
ENABLED=1 ; Active (doesn’t affect FPS); 1 or 0
__HINT_BOTTOM=Some cars might not have the most accurate UV mapping for rear mirrors, causing reflections to look stretched or even tilted. This option will reset mapping to correct values during loading. If it breaks mirrors for a particular car, <url="https://github.com/ac-custom-shaders-patch/acc-extension-config/wiki/Cars-%E2%80%93-General-options">it could be disabled in car’s config</url>. ;; hidden

[SHAKING]
; A bit of shaking on older cars on high speeds
ENABLED=1 ; Active; 1 or 0

[VIRTUAL_MIRROR_YEBIS]
; Post-processing for virtual mirrors
ENABLED=1 ; Active (doesn’t affect FPS); 1 or 0

[REAL_MIRRORS]
; Real Mirrors
ENABLED=0 ; Active; 1 or 0
ALTER_FOV=1 ; Alter FOV (allows to see more when getting closer to a mirror); 1 or 0
ONLY_WITHOUT_VIRTUAL=1 ; Only without virtual mirror; 1 or 0
SHOW_CAR=1 ; Show car in reflections; 1 or 0
VR_STEREO=0 ; Stereo reflections in VR; 1 or 0
VR_LOCK=0 ; VR lock (real mirrors would use default head placement and ignore VR movement, not recommended to use); 1 or 0
SHOW_HEAD=1 ; Show driver head in reflections; 1 or 0
RENDER_PER_FRAME=0 ; Refresh rate per frame (set it to 1 to make real mirrors refresh less frequent, but have practically zero FPS cost); update everything is 0, update single reflection per frame is 1, update two reflections per frame is 2, update three reflections per frame is 3
RENDER_ONLY_VISIBLE=1 ; Render only visible mirrors (doesn’t work with virtual mirror at the moment); 1 or 0
ACTIVE_ON_FOCUSED=0 ; Enable real mirrors if car is focused (not only in first person view); 1 or 0
NO_SUNLIGHT_ON_INTERIOR=1 ; No sunlight in interior; 1 or 0
__HINT_BOTTOM=Proper, accurate reflections, with separate textures for different mirrors, could be quite costly. ;; hidden

[SIMPLE_TILTING_BASE]
; Simple Tilt
ENABLED=0 ; Active; 1 or 0; not available with REAL_MIRRORS/ENABLED
DISTANCE_MULT=7, 7 ; Distance multiplier
K_MULT=1.4, 0.7 ; Coefficient multiplier
ANGLE_MULT=0.1, -0.1 ; Angle multiplier
__HINT_BOTTOM=View alteration is a cheap alternative to real mirrors altering reflection orientation based on interior camera movement. Doesn’t affect performance and makes reflections a bit more live, but overall not that great. ;; hidden

[SIMPLE_TILTING_VR]
; Simple Tilt (VR)
ENABLED=0 ; Active; 1 or 0; not available with REAL_MIRRORS/ENABLED
DISTANCE_MULT=7, 7 ; Distance multiplier
K_MULT=1.0, 0.5 ; Coefficient multiplier
ANGLE_MULT=0.1, -0.1 ; Angle multiplier

[MONITOR_SHADER]
; Digital screen shader (for digital mirrors only)
ENABLED=1 ; Active; 1 or 0

[MONITOR_SHADER_DEV]
; hidden
ACCURATE=1

[VIRTUAL_MIRROR_ADAPTIVE]
; hidden

; adaptive virtual mirror takes visible in-game mirrors into account to pick out
; pieces to show according to their roles. to work properly, mirrors should be
; described in car’s config
ENABLED=0

[PIECE_0]
; hidden
HEIGHT=0.1185 * screen.height
WIDTH=0.1185 * screen.height * 4
CENTER_X=0.5 * screen.width
CENTER_Y=85 + 0.1185 * screen.height / 2
OPACITY=1

[PIECE_1]
; hidden
HEIGHT=0.14 * screen.height
WIDTH=0.14 * screen.height * 2.6
CENTER_X=0.5 * screen.width
CENTER_Y=85 + 0.14 * screen.height / 2
TEX_ALIGN_Y=1
OPACITY=1
ROLE=TOP

[PIECE_2]
; hidden
HEIGHT=0.15 * screen.height
WIDTH=0.15 * screen.height * 1.6
CENTER_X=55 + 0.15 * screen.height * 1.6 / 2
CENTER_Y=screen.height - 55 - 0.15 * screen.height / 2
TEX_ALIGN_X=-1
OPACITY=1
ROLE=LEFT

[PIECE_3]
; hidden
HEIGHT=0.15 * screen.height
WIDTH=0.15 * screen.height * 1.6
CENTER_X=screen.width - (55 + 0.15 * screen.height * 1.6 / 2)
CENTER_Y=screen.height - 55 - 0.15 * screen.height / 2
TEX_ALIGN_X=1
OPACITY=1
ROLE=RIGHT