[ℹ] FULLNAME=Smart Mirror PREVIEW=https://acstuff.club/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_MIPS2=1 ; Add MIPs to rear view mirrors (reduces aliasing in reflections, requires restart to see the changes); 1 or 0 [PERFORMANCE] ; Performance tweaks COMPACT_FORMAT=0 ; Compact mirrors color format; 1 or 0 SKIP_FRAMES=0 ; Extrapolate frames (skips frames and instead extrapolates previously prepared reflection, might not work that well in VR); from 0 frame(s) to 3, round to 1 [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] ; hidden ; 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, it could be disabled in car’s config. ;; hidden [SHAKING] ; A bit of a shake for older cars at high speeds ENABLED=1 ; Active; 1 or 0 BLUR=1 ; Blur (adds a bit of vertical blur for actively shaking mirror); 1 or 0 [VIRTUAL_MIRROR_YEBIS] ; hidden ; Post-processing for virtual mirrors ENABLED2=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 ; Virtual mirror; pause Real Mirrors is 1, draw center piece with Real Mirrors reflection is 0, show mirrors outside of screen (more expensive) is 2 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 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] ; hidden ; 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] ; hidden ; 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] ; hidden ; 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 WIDTH_LIMIT=4 FIT_DIRECTION=0 ; 0 for fitting by resizing mirror horizontally, 1 for a vertical option, could be 0.5 as well [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 WIDTH_LIMIT=4 FIT_DIRECTION=0 [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 WIDTH_LIMIT=2 FIT_DIRECTION=0 [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 WIDTH_LIMIT=2 FIT_DIRECTION=0