Welcome to the official documentation for "OpenGL3DVision" wrapper.
New in Version 6.12
This is a MAJOR Release with 2 weeks+ in testing to "squash all bugs". This doesn't mean some of them might not still linger around!
- Changed from using Nvidia 3D Vision Automatic to Nvidia 3D Vision Direct.
- Nvidia 3D Vision Direct: Gained an additional 10 FPS in 3D vs 3D Vision Automatic Mode.
- Nvidia 3D Vision Direct: Fixed a crash and locking of the whole render-pipeline (that appeared when using 3D Vision Automatic Mode).
- Nvidia 3D Vision Direct: Simplified rendering loop. The backbuffer doesn't need to be 2xWidth anymore. Less instructions are executed now, as well, and wrapper memory allocation is smaller.
- Nvidia 3D Vision Direct: The Nvidia 3D Vision Overlay(s) is(are) now displayed correctly. (Previously they were cut or missing).
- New Predominant Eye Rendering Mechanism:
- Added support to render the Stereo Frame by maintaing one eye (Left or Right) as it is and instead offseting the other one based on separation + convergence.
- Supported modes for predominant eye: Left, Right, Mono.
- Left Dominant Eye: No stereo offset is added to the left eye. Only the left eye is calculated.
- Right Dominant Eye: No stereo offset is added to the right eye. Only the left eye is calculated. Implementatio is exactly like the one in "Deus Ex: Mankind Divided". This method allows you to perfectly AIM in 3D Shooters when you look down the gun's iron-sight.
- Mono Dominant Eye: Default Nvidia 3D Vision Automatic approach, where each eye is translated left/right from the Monoscopic Camera.
- Added ability to Reset/Reinitialise the Wrapper Renderer by pressing CTRL + F10. Before doing this, CTRL + T to deactivate 3D Vision. Also, BE patient as it takes some time to do it! It doesn't work in all Apps, but in 80% of them it works!
- Added ability to switch between Reshade's Depth3D and Geometry 3D Mode by pressing CTRL + F11. In order for this to work, Depth3D must be configured with OpenGL-3D Vision wrapper in the ini file and must be present in next to the wrapper.
- Added ability to chose between Geometry 3D and Depth 3D at start-up (via the ini file flag).
- Updated the ability to Deactivate 3D Vision (CTRL+T) as follows:
- When 3D Vision is deactivated, no stereo correction will be made and the 2D (mono) image will be displayed.
- When 3D Vision is deactivated, only one buffer will be displayed instead of both L/R buffers side-by-side.
- Improvements in the Key Handler. Detection of pressing keys should be much more responsive now!
New in Version 5.0 - Internal release only
- Added ability to load Reshade library and insert post process effects.
- Memory hack in Reshader library to hook only the OpenGL context and not the DirectX one as well.
- Memory hack in Reshader library to disable calling the wglSwapBuffers() from the System32/opengl32.dll library as we present the results in the DirectX9 context.
- Added special rendering method that enables usage of Depth3D Reshade Shader (by BlueSkyDefender). See "EnableCompatibilityMode3D" in "3DVisionWrapper.ini"
- Added special key combination [Ctrl + F10] to re-initialise/re-generate the renderer. !!! Works only in Window Mode. In exclusive fullscreen will HALT the app/driver !!!
- Cleaned up and removed some deprecated options in 3DVisionWrapper.ini.
New in Version 4.25
- Extended the Shortcut Keys to allow passing of .xyzw parameters on key press.
New in Version 4.19.10
- Fixed a bug that prevented the wrapper from working in Windows 7.
- Fixed various bugs in the Shortcut Key Handler.
- Minor improvements to the rendering pipeline.
New in Version 4.19
- Massive changes and complete RE-WRITE of the Stereo Rendering Pipeline. Should remove any latency introduced by the wrapper.
- Added Unity 5 Renderer Compatibility.
- Added ability for fullscreen support in Windows 10 for Single GPU configurations.
- Various other improvements
- Improvements regarding the Window Handler.
New in Version 3.67
- Wrapper is now UNIFIED. One version for both development and release modes.
- Added support to change a shader based on a vertex+pixel shader checksum.
- Implemented full support for Pixel Shader code injection.
- Added support for Xbox360 controller for key bindings.
- Added Resolution and Aspect Ratio access in all shaders.
- Added wildcard for sending custom paramters to shaders.
- Lots of improvements in the shader manager and shader dummping/swapping.
- Various improvements regarding the Window Handler.
New in Version 3.19 Beta
- Add ability to pass float parameters as a vec4 to shaders.
- Updated the wrapper to properly enumerate GL_EXTENSIONS on OpenGL contexts up to OpenGL 4.x.
- Rewrote the way the shaders are loaded. They now rely on CRC32 to be correctly identified.
- Shaders are now swapped at initialization in order to avoid other complications when swapped after creation.
- Added ability to specify specific separation & convergence value to different Shader Programs from the ini file.
- Updated the ini file parser so is more robust.
- Added ability to force the Wrapper to create a Fullscreen context if the information from the engine window says is in window mode when in fact is not.
- [Development version] Added ability to load the [Shader_Compiler_Options] section real-time by pressing [F11] key.
- [Development version] Added ability to disable both pixel & vertex shader when is being selected.
- [Development version] Added ability to disable pixel & vertex shaders between and interval or not to stereorize them.
- Rewrote the whole Shader Manager!
- Added CRC32 calculation to properly identy shaders.
- Massive rework on shader dump and loading/swapping mechanisms.
- Fixed a bug where the wrapper wasn't injection stereoscopy in vertex shaders in all possible & valid locations.
New in Version 2.20 Beta
- Added ability for the wrapper to detect Screen Resize or Window/Fullscreen change and readjust the internal buffer to the new resolution. See Known Issues for additional information.
- Added ability to specify the 3D Vision "Rating" for an application. The Nvidia Profile now contains a comment informing that the Profile was Created/Updated by the OGL3DVision Wrapper.
- Added ability to specify a default Separation value for the UI/HUD.
- Added version number. It can be seen in the generated log.
- Changed the DX BackBuffer format to A8R8G8B8 to allow drawing of transparent textures.
- Improved the Stereo Injection for applications using Legacy OpenGL. All the elements that are now drawn at the screen depth (like UI/HUD) will not be stereorized.
- If you are a 3D Surround use: When Switching from Desktop Surround resolution to an App in Single Screen resolution (or vice-versa) the Nvidia driver might crash. This is a Nvidia driver problem.
- If for some reason, after a screen Resize, the window is Black try the ALT+ENTER combination (or resize the window) to toggle a Resize of the internal buffers.
- Detecting a screen resize has a reliability of 90%. 10% chances the resize is not detected or the drivers crash.
New in Version 2.00 Beta
- Added ability to enable/disable Legacy OpenGL calls for modifying the projection matrix and adding stereoscopy.(More functions require detouring.)
- Added ability to work on Aurora Engine games (Star Wars: Kotor 1 & 2).
- Added ability to get the Nvidia Profile associated with the game (via NVAPI) and enable 3D Vision compatibility:
a. If a profile does not exist, the wrapper will generate a profile. (Name of Profile :"app.exe-3D Vision Wrapper".)
b. If a profile exists, the wrapper will add the 3D Vision flags.
c. If the Nvidia driver is reinstalled, the wrapper will automatically detect this and apply the correct profile again.
- Added Default Convergence Setting in the ini file. It is set when the profile is created initially.
- Added Ability to read and apply a Game Profile (from a Profile.nip file). It is set when the profile is updated initially. (The Application will require a restart in order for the settings to take effect.)
- Updated to NVAPI 343.
- Added Thread Safety in the NVAPI threads.
- Updated Windows Version Query Mechanism from a legacy one as there were problems with correct initialization of the 3D Vision driver.
- Updated the Wrapper so it doesn't crash if/when 3D Vision is not present/disabled in NVPanel.
- Fixed other various crashes that appeared on improper initialization.
- Updated the Log Generation with additional information.
New in Version 1.50
- Automatic Hooking Mode.
- Alternative Buffer Flipping Mode.
- Partial implementation of loading ARB Object Shaders (required by Minecraft). ShaderSource, Compile & Link to be done.
- Updated the Shader Source Hooking algorithm as sometimes the shader source code was incomplete.
- Fixed some crashes when using the Debug Info option (for intercepting draw calls).
- Implemented Window Resize (still prototype phase as it crashes in multiple games).
All Information below is more or less DEPRECATED NOW!
It still applies for version 1.50 of the wrapper. See Release Notes(above) for new functionality and fixes!!!
Ability to log the wrapper functions.
[3D Vision Specific]
- Ability to toggle 3D Vision Support ON/OFF (so you don't need to delete the wrapper files)
- Ability to trace some of the OpenGL draw functions (Hooking points for the wrapper)
- Ability to specify which hooking point to use
[3D Vision Automatic Enabling]
- Ability to enable or disable the Stereoscopic Shader Injection (equivalent of 3D Vision Automatic)
- Ability to specify up to 3 distinct Shader Stereoscopy Injection points and 3 distinct Shader Uniform Injection points
- Ability to specify the Stereoscopic Injection function.
- Automatic detection of Shader Compilation & Linking errors + full debug information.
- Ability to select a pair of shaders between which the Stereocopy will not be applied (for hunting shaders down)
- Ability to Change & Compile + Link a shader In real-time (so you can immediately see the difference)
- Ability to dump all shaders as soon as they are created.
- Ability to load own shaders during shader creation stage.
Shader Support: Only GLSL is currently supported. No ARB Shaders support. (Please contact me if you want to help in this section)
[Alternative 3D Vision Settings]
- Ability to query the current separation (depth) and convergence values that are being applied
- Ability to bind a different convergence value to a keyboard key/mouse button (hold to work/ toggle mode)
[FPS Frame cap Remover Support]
- Ability to write your own plugin that removes the FPS lock in a game.
- A Development version for creating a FIX.
- A Public Release version for using a FIX.
- Windows 7(and above) x86(32 bits) and x64(64 bits).
Hot-Keys used for Developement
Keyboard Key :
Shader Compiler: Toggle between Vertex and Pixel Shader for the current selected Shader Program
Shader Compiler: Compile & Link the Current Vertex or Pixel Shader for the current selected Shader Program
Show Current 3D Vision Settings: Separation/Depth and Convergence values that are being applied
Reload the section [Shader_Compiler_Options] in Development Mode Only
[CTRL] + [+]
Shader Compiler: Select the Next Vertex Shader
[CTRL] + [-]
Shader Compiler: Select the Previous Vertex Shader
[CTRL] + ]
Shader Compiler: Select the Next Pixel Shader
[CTRL] + [
Shader Compiler: Select the Previous Pixel Shader
- General Information about the tool.
- How it works.
- How it is made.
- What modes are supported.
- What OpenGL spec is supported.
- Tool Versions.
2. Getting Started.
- How to start fixing a game.
- Hooking the wrapper with the game.
- Enabling 3D Vision.
3. Inserting Stereoscopy into a game.
- General Shader information: used variables, used uniforms
- Dumping the shaders
- How to insert Stereoscopy into the shaders
- The Stereo String "Magic"
- Shader Compiling Status and Errors
- Checking to see if all shaders are hooked
4. Finding shaders and Depth Hack Option
- Shader Dump functionality
- Depth Hack option
- How to find a shader responsible for something
- Using the Shader Pair function.
5. Adding Your Modified shaders and swap them at runtime.
- Information about the two existing options
(in swapping shaders) and how/WHY to use them.
6. Enabling the additional Convergence Preset.
- How to get the convergence value that you want to use
- How to bind a keyboard key or mouse button
- Toggle or Hold to work description.
[Advanced] 7. Fixing Shaders:
- Using the Real-time shader Compiler to fix a shader.
- Selecting the shader you want to start from.
- Cycling through shader Programs
- Select Between the Vertex and Fragment Shader
- Re-compile the shader.
- How does the Shader Compiler remembers the last source used.
- New compiled shader generates a separate file.
- How to add Custom Convergence for the UI
- How to add Automatic Convergence based on
the scene position from the Camera
[HIGHLY Advanced] 8. FPS Injector:
- General information about what it is.
- How to use it.
9. Making A Fix Release.
- Creating the Release configuration file.
- Creating the nVidia Profile.
- Using the Release Version of the wrapper.
- Adding your custom LOGO.
All rights reserved. www.3dsurroundgaming.com. Octavian Mihai Vasilovici a.k.a "Helifax". 2016.