[ℹ]
FULLNAME=Mode tweaks: VR
PREVIEW=https://acstuff.ru/images/modules/vr_tweaks.jpg
DESCRIPTION=Change VR mirroring mode, configure how VR HUD looks and more.
SHORT_DESCRIPTION=Various tweaks for VR
ORDER=1

[BASIC]
; Extension
ENABLED=1 ; Active (set to 0 to disable VR tweaks); 1 or 0

[SINGLE_PASS_STEREO]
; Single Pass Stereo
ENABLED=0 ; Active; 1 or 0; new
USE_VS_INSTANCING=1 ; Use VS instancing; hidden
USE_SINGLE_POSTPROCESSING_PASS=0 ; Single YEBIS pass (instead of running post-processing individually for each eye, runs it once for both. Disables sun rays. If glare effects are wide, they might leak from one eye to another. Please note: while you can change this setting live, after enabling it resulting image might be blurred until AC restart.); 1 or 0
USE_VRS=1 ; NVIDIA VRS (VRS, or variable rate shading, reduces resolution towards edges of a frame and increases resolution in the middle if MSAA is enabled. Uses NVIDIA VRWorks, requires 16-series, 20-series or 30-series NVIDIA GPU); 1 or 0; only with ENABLED
VRS_RATE=3 ; VRS rate (for best results, set MSAA accordingly); "Highest performance (no MSAA)" is 1, "High performance (no MSAA)" is 2, "Balanced (MSAA 4x)" is 3, "High quality (MSAA 4x)" is 4, "Highest quality (MSAA 8x)" is 5
VRS_AREA=2 ; VRS detailed area; "Wide" is 1, "Balanced" is 2, "Narrow" is 3
__HINT_BOTTOM=Single Pass Stereo renders both eyes at once, speeding things up. Not available with FSR.

[MASKING_STENCIL]
; Corners masking optimization
ENABLED=1 ; Active (with this optimization, AC would not waste extra time painting pixels which wouldn’t be visible because of lens distortion); 1 or 0; only with SINGLE_PASS_STEREO/ENABLED
NORMALIZE_STENCIL=1 ; Normalize corners masking mesh (if corners masking mesh is misplaced and covering visuals, disable this option); 1 or 0
FLIP_STENCIL=0 ; Flip corners masking mesh horizontally; 1 or 0

[OCULUS_TWEAKS]
USE_ASW2=1 ; Use ASW 2.0 (uses depth buffer for smoother VR extrapolation in case AC would fail to deliver enough frames per second); 1 or 0; only with SINGLE_PASS_STEREO/ENABLED and not SINGLE_PASS_STEREO/USE_SINGLE_POSTPROCESSING_PASS
EXIT_AWARE=1 ; Exit-aware (shut down AC when chosen to from VR); 1 or 0
UPDATE_MANIFEST=1 ; Update manifest (experimental, fixes Assetto Corsa name and icons in Oculus UI); 1 or 0
UPDATE_MANIFEST_RACE_DETAILS=1 ; Show details about car and track during loading; 1 or 0; only with UPDATE_MANIFEST

[OPENVR_TWEAKS]
; OpenVR tweaks
OPENCOMPOSITE_COMPATIBLE=-1 ; OpenComposite compatible; Auto is -1, No is 0, "Yes (original version)" is 1, "Yes (ACC version)" is 2
OPENCOMPOSITE_HANDLE_CRASHES=1 ; Handle possible OpenComposite crashes (if active, any OpenComposite message dialog would terminate AC and be shown in a separate window so it would be clearly visible that something went wrong); 1 or 0
POINTING_ANGLE=30 ;; hidden
AXIS_THUMBSTICK=1 ; Thumbstick axis (used for scrolling when controller is pointing to a scrollable list); from 1 to 5, round to 1
AXIS_INDEX=2 ; Index trigger axis (used for clicking); from 1 to 5, round to 1
AXIS_HAND=3 ; Hand trigger axis (used for grabbing things like rear view mirror); from 1 to 5, round to 1

[CONTROLLERS_INTEGRATION]
INTERACT_WITH_UI=1 ; UI integration (use controllers to move mouse pointer and click); 1 or 0
INTERACT_WITH_CARS=1 ; Cars integration (use controllers to interact with touch screens and pushable buttons in cars); 1 or 0
INTERACT_WITH_MIRRORS=1 ; Mirrors integration (use controllers to grab and adjust rear view mirrors); 1 or 0
SHOW_CONTROLLERS_POINTS=1 ; Render controllers as two points (better visual representation is coming later); 1 or 0
SHOW_CONTROLLERS_LINE=1 ; Render controllers directions as blue lines (better visual representation is coming later); 1 or 0
VIBRATION_INTENSITY=1 ; Vibration intensity (because of differences in API switching between different VR modes and frameworks can change vibration intensity); from 0 to 2, perc.
CONTROLLERS_RIG=0 ; Move driver model hands with controllers (experimental); 1 or 0

[RAYCAST]
; Mouse cursor raycasting
RAYCAST_EYE=0 ; Origin; "Left eye" is 0, "Right eye" is 1, "Middle point" is -1

[VR_MIRRORING]
; Custom VR mirroring onto the main screen
ENABLED=1 ; Active; 1 or 0
SEPARATE_EYES=0 ; Mode; "Left eye" is 0, "Right eye" is 3, "Anaglyph" is 2, "Two eyes (straight)" is 4, "Two eyes (distorted)" is 1
ZOOM=0.98 ; Zoom; from 0.8 to 1.2, perc.; not available with FILL_VIEW and ( SEPARATE_EYES:0 or SEPARATE_EYES:3 or SEPARATE_EYES:2 )
FILL_VIEW=1 ; Fill view; 1 or 0; only with SEPARATE_EYES:0 or SEPARATE_EYES:3 or SEPARATE_EYES:2
ANAGLYPH_MODE=RED_CYAN ; Anaglyph mode; Red/Cyan is RED_CYAN, "Red/Cyan (monochrome)" is RED_CYAN_MONOCHROME, "Red/Cyan (half-color)" is RED_CYAN_HALF_COLOR, "Red/Cyan (optimized)" is RED_CYAN_OPTIMIZED, Dubois is DUBOIS, Red/Green is RED_GREEN, Red/Blue is RED_BLUE, Anachrome is ANACHROME, trioscopic is TRIOSCOPIC, ColorCode 3-D is COLOR_CODE_3D, Magenta/Cyan is MAGENTA_CYAN; only with SEPARATE_EYES=2

LENS_ABERRATION=1 ; Lens abberration; from 0 to 2, perc.; only with SEPARATE_EYES=1
LENS_DARKENING=1 ; Lens darkening; from 0 to 2, perc.; only with SEPARATE_EYES=1
LENS_DISTORTION=0.2 ; Lens distortion; from 0 to 0.8, perc.; only with SEPARATE_EYES=1
BLUR_BRIGHTNESS=0.8 ; Blur brightness; from 0 to 2; perc.; not available with SEPARATE_EYES=1
BLUR_STRENGTH=2.5 ; Blur strength; from 0 to 4; perc.; not available with SEPARATE_EYES=1

SHOW_FPS_COUNTER=0 ; Show FPS counter; 1 or 0

[VR_HUD]
; Custom VR HUD rendering
ENABLED=0 ; Active; 1 or 0
ONLY_IN_FIRST_PERSON=0 ; Visible only in first person view; 1 or 0
MOVE_WITH_FIRST_PERSON_CAMERA=1 ; Move with first person view (by default HUD is aligned with default head position, so if you move camera, it would get offset. With this option, HUD instead would use actual camera position before taking into account VR movement); 1 or 0
MOVE_WITH_CAMERA=1 ; Move with other camera modes; 1 or 0

SHAPE_ARC=140 ; Shape, arc (decrease to make HUD smaller horizontally); from 80° to 160, round to 5
SHAPE_VERTICAL_SCALE=1.0 ; Shape, vertical scale; from 0.6 to 1.4, perc.
SHAPE_RADIUS=0.4 ; Shape, radius; from 0.2 m to 1, round to 0.05
BRIGHTNESS_MULT=1 ; Brightness; from 0 to 2, perc.

BASE_OFFSET=0, 0, 0 ; Original position HUD offset (increase X to move HUD to the left, increase Y to move it up, increase Z to move it further from camera); 3D-offset
CAMERA_OFFSET=0, 0, 0 ; Moving with camera HUD offset (increase X to move HUD to the left, increase Y to move it up, increase Z to move it further from camera); 3D-offset; only with MOVE_WITH_CAMERA

RENDER_MODE=0 ; Render style (originally HUD is rendered above everything else which might look weird if there are objects in the scene closer to camera and still covered by HUD. With this option you can make it so that parts of HUD covered by other geometry would look different: either more transparent with See-Through mode, or more trasparent and shaded differently with X-Ray mode.); Original is 0, See-Through is 1, X-Ray is 2
RENDER_OCCLUDED_OPACITY=0.2 ; Occluded opacity (applied only with non-original render style); from 0 to 1, perc.; not available with RENDER_MODE:0

[EXTRA_TWEAKS]
; Extra tweaks
EXTRA_EYES_MARGIN_MM=0 ; Extra eyes distance (will be added to the distance reported by VR driver); from -200 mm to 200
EXTRA_DITHERING=0 ; Extra dithering (helps to reduce banding, especially in dark areas); from 0 to 50, perc.; only with SINGLE_PASS_STEREO/ENABLED
