; =================================================================================
; VK3DVision - A Vulkan Stereo3D driver made by Helifax for Stereo3D in Vulkan API. 
; VK3DVisionVR - A fork from Vk3DVision to render in Virtual Reality and based on Vk3DVision.
; www.http://3dsurroundgaming.com/
; PLEASE READ COMMENTS BELOW, to understand what the options DO!
; NOTE: Variables and names are CASE-SENSITIVE!!!
; =================================================================================

[General]
;============================================================================================= 
; Enable Shader Tracking and development mode
; WARNING: This mode will affect performance! Only use it when tracking shaders!
; WARNING: This mode will require a lot more RAM, as NO RESOURCES are DESTROYED!
;============================================================================================= 
DevelopmentMode = false

;============================================================================================= 
; Logger levels: Info, Error, Warn, Debug, Time_Sync, Shader_Binding, Shader_tracer
;============================================================================================= 
LoggerLevel = 3

;============================================================================================= 
; VK3DVision will enable Stereo Rendering only for these processes.
; Up to 10 process names can be added.
;============================================================================================= 
ProcessName1 = "NewColossus_x64vk.exe"

;============================================================================================= 
; Virtual Reality:
;
; - Native Virtual Reality Renderer.
; - Full VR Controller mapping to XBOX Controller (via ViGEm) and configurable from SteamVR! (Valve Index & Vive Wands and Quest 2 controllers)
; - You must install the ViGEm bus software that comes with Vk3DVisionVR for this!
;============================================================================================= 
Stereo3DViewMode = OpenVRDirect

;============================================================================================= 
; Async Redering mode.
;
; Leave it ON for Virtual Theatre Mode.
; For OpenVRDirect it should be FALSE, otherwise stuttering will occur!
; For OpenVR (Cinema), leave it true.
;============================================================================================= 
OpenVR_AsyncRendering = false

;============================================================================================= 
; Present the image in the game window? or just in VR?
;
; Default is true.
; If you experience performance issues, or if you get stuttering or want a bit more performance in VR, turn it false.
; Works both in OpenVR and OpenVRDirect.
;============================================================================================= 
OpenVR_GameWindowRendering = false

;============================================================================================= 
; Frames Per Second Limit (MAX FPS Limiter).
; 0 - No FPS Limit.
;============================================================================================= 
FPSLimit = 0

[OpenVRDirect]
;============================================================================================= 
; Resolution factor.
;
; 1.0 - Render at the SteamVR resolution. 
;
;============================================================================================= 
OpenVR_ResolutionFactor = 1.0

;============================================================================================= 
; Enable Reprojection mechanism.
;
; For SteamVR Headsets this will be Interleaved Reprojection instead of Motion Smoothing and works 100% better in the game.
; For non-SteamVR Headsets (Vive Pro 2, Oculus Quest 2, possibly WMR headsets, etc) it's up to the native runtime to do reprojection.
; This will cut the presented framerate in half if native framerate is not achieved over 4 consecutive frames every 100 frames.
; Ideally, you should not use reprojection in this game! So, consider lowering the "OpenVRResolutionFactor", unless you want better "graphics and resolution" and your GPU can't deliver!
;============================================================================================= 
OpenVR_Reprojection = false

;============================================================================================= 
; Camera Offsets
;
; By default 90% of FPS games puts the camera "between" the shoulders.
; These offsets are used to position the camera in a normal human position (with a neck & head ^_^)
;============================================================================================= 
OpenVR_Camera_Offset_Up = 0.130
OpenVR_Camera_Offset_Forward = 0.015
OpenVR_Camera_Offset_Right = 0.0

;============================================================================================= 
; Motion Controller Aiming
;
; Enables aiming with the VR controllers.
; This will not be 100% accurate as it is very hard to translate 6 DOF movement to XBOX controller axis (linear) accelaration.
; This will make the game more playable with Motion controllers.
; For Keyboard + Mouse or Xbox controller - Set this option to false.
; It requires ViGem client (part of Vk3DVisionVR) to be installed.
; If you have any controller plugged-in, remove it before.
;============================================================================================= 
OpenVR_AimAssist_Enabled = false

;============================================================================================= 
; Xbox Stick X axis paramerers.
;
;============================================================================================= 
OpenVR_AimAssist_acceleration_min_x = 2500
OpenVR_AimAssist_acceleration_max_x = 22500
 
OpenVR_AimAssist_precision_x = 1250
OpenVR_AimAssist_accelearation_x = 2000

;============================================================================================= 
; Xbox Stick Y axis paramerers.
;
;============================================================================================= 
OpenVR_AimAssist_acceleration_min_y = 7500
OpenVR_AimAssist_acceleration_max_y = 30000

OpenVR_AimAssist_precision_y = 1250
OpenVR_AimAssist_accelearation_y = 4000

;============================================================================================= 
; Stereoscopic 3D Rendering, beyond this point. Nothing really insteresting unless you know what you are doing :)
;
;============================================================================================= 

[Single_Frame_Stereo]
;============================================================================================= 
;
; WARNING: 
; This is under development and should be treated as experimental! 
; If starting a new fix, use Default Sequential Frame Stereo instead! (The resulted fix can be later ported to SingleFrameStereo)
; Change from Rendering using 2 Sequential Frames to produce a Stereo3D image to Single-Frame Stereo
;
; Limitations:
; Texture3D & Buffers used as samplers/input/outputs in shaders are not duplicated. (99% of the time you don't need it anyway)
; Not all GLSL shader funnctions are covered to support SingleFrameStereo. However they can be added via injection mechanism.
; Vk3DVision will attempt to stereorize all GLSL functions it finds. However, this does not 100% work. Some shaders will fail to compile and can be found in "ShaderFail" folder:
; - Use an offline GLSL compiler like GLSLC (https://github.com/google/shaderc) to fix them.
; - Once fixed, put them in ShaderSwap folder.
; Some Compute Shader Dispatches must be hunted down and made to run 1 time for both eyes
; Some RenderPasses if Stereo will freeze the renderer (due to inproper synchronization in the game engine). They need to be either creator or executed Mono instead of Stereo
;============================================================================================= 
SingleFrameStereo = true

[Stereo_Injection]
;============================================================================================= 
; Enables Stereoscopic 3D Injection.
; Enables Shader Swapping with custom ones.
; In SingleStereoPass it does automatic shader injection. See [Single_Frame_Stereo] for info.
;============================================================================================= 
Stereo = true

;============================================================================================= 
; Enable the Usage of ShaderCache
; Default is disabled (false)
; The ShaderCache can help by reducing stutters if the game creates a lot of shaders in the background, like Detroit: Become Human
; Development Mode: 
; Shader Cache is not used, but shaders can be added to the cache (including the edited ones if ShaderCache is enabled).
; Normal Mode:
; The shader cache is loaded and used and new shaders are added to the cache, both from injection and from ShaderSwap.
;
; If the ShaderCache is disabled, it will not be loaded nor shaders will be added to the cache both in Normal and Development Mode.
;============================================================================================= 
ShaderCache = true

;============================================================================================= 
; Enable Shader Optimizations.
; !!! Shader Creation time will take significantly longer! However, ShaderCache size will drop by aprox. 50%.
;============================================================================================= 
ShaderCacheOptimization = true

;============================================================================================= 
; GL Shader Language Version
; 450 - supports all features up to RTX
; 460 - is required for RTX and Vulkan 1.1 or 1.2
;============================================================================================= 
ShaderVersion = 450

;============================================================================================= 
; Separation & Convergence values that will be used (These will also be used for Nvidia 3D Vision. Values from NvPanel and profile WILL BE IGNORED!)
; Values from 0(%) to 1000(%).
;============================================================================================= 
; Depth that is going to be used in all modes
; Use CTRL+F3/F4 to increase/decrease it.
Separation = 100

; Convergence that is going to be used in all modes 
; Use CTRL+F5/F6 to increase/decrease it.
Convergence = 0.825

UniformInjection1 = "layout(set"
ShaderInjectionPoint1 = "gl_Position.y = -gl_Position.y"   
ShaderStereoString1 = "gl_Position.x += vk3d_params[VIEW].stereo.x * (gl_Position.w - vk3d_params[VIEW].stereo.y);\n"
ShaderOperation1 = insert
ShaderType1 = Vertex
Regex1 = false

[Params]
;============================================================================================= 
; Values that are sent as a vec4 PER FRAME to all shaders. Can be used for custom operations.
; Currently only ONE Vec4 is sent to shaders!
;============================================================================================= 
x = 0.01 ; UI DEPTH
y = 0.0 ; 
z = 0.0  ; Weapons convergence cutoff
w = 0.0 ; Weapon Custom Depth

; Shortcut Keys
;============================================================================================= 
; From [Key1] to [Key50]. Key numbers MUST BE SEQUENTIAL!
; type = once, hold, toggle
; Supports: convergence, separation values
; For Keyboard Keys see: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
;=============================================================================================
; For Xbox Controller, use these values:
;=============================================================================================
; XBOX_DPAD_UP
; XBOX_DPAD_DOWN
; XBOX_DPAD_LEFT
; XBOX_DPAD_RIGHT
; XBOX_START
; XBOX_BACK
; XBOX_LEFT_THUMB
; XBOX_RIGHT_THUMB
; XBOX_LEFT_SHOULDER
; XBOX_RIGHT_SHOULDER
; XBOX_LEFT_TRIGGER
; XBOX_RIGHT_TRIGGER
; XBOX_A
; XBOX_B
; XBOX_X
; XBOX_Y
;=============================================================================================

[key1]
key = 0x56 ; V Key for weapon wheel
type = hold
x = 0.0
y = 1.0
StartDelay = 200
ReleaseDelay = 300

[key2]
key = XBOX_RIGHT_SHOULDER ; for weapon wheel
type = hold
x = 0.0
y = 1.0
StartDelay = 200
ReleaseDelay = 300



































































