Tuesday, March 27, 2012
Fix by Eincrou and Mana84
BEFORE 1: Default Convergence
Stereo Image 1
BEFORE 2: Convergence Increased 
Stereo Image 2
AFTER 
Stereo Image 3
Description:
This fix addresses the fact that the UI, including HUD and menus, render in S3D. The convergence must be kept at 1 to align the UI, but the game world looks very flat. You can see this in the "BEFORE 1" screenshot.
"BEFORE 2" shows how the UI is destroyed after setting the convergence to a reasonable value so that the world doesn't appear all the same depth."AFTER" shows how we were able to use the Helix Mod to align the UI. This screenshot has the same exact convergence value I had in "BEFORE 2."
Problems Not Fixed:
•	This fix will ruin the skybox and some distant buildings.  I have not a clue why.  I haven't seen anything like this in any other game.  I didn't find problem this worse than having to keep the convergence super low.  I'd rather have a weird sky than a flat game world.
Change Log:
•	v2: (03/29/12) Fixed remaining UI elements.
•	v1: (03/27/12) There are still UI art elements that render improperly in S3D.
How to get it working:
Install the d3d9.dll release and ShaderOverride fix to the same location as vampire.exe, just the same as any other fix. When you're done with that, don't get excited yet, because you're not finished!
1.	Get the debug version of d3d9.dll. Temporarily rename the release d3d9.dll to something else, for example: "d3d9x.dll." Put the debug version in the same location as vampire.exe.
2.	Launch the game, and get into the regular game world. Use the hotkeys (default Ctrl+F5 and Ctrl+F6) to set your convergence however you like. The nVidia profile sets the convergence extremely low, so you'll have to hold Ctrl+F6 for a while before you see a change in the game world. Ignore the splitting UI, we'll fix that in a minute.
3.	When your convergence is set how you want it, look at the red debug text at the top and make a note of the "mConvergence" value. In the AFTER screenshot, you can see that my convergence is about 25. Press Ctrl+F7 to save your convergence settings.
4.	Go find the two fixed shaders at ".\ShaderOverride\VertexShaders\[xxxxxxxx].txt" and open them in a text editor.
5.	Locate the lines: "def c220, 0, 25, 0.0625, 1" and change "25" to the convergence value you saw in "mConvergence." Save the files.
6.	Now, you can delete the debug version of d3d9.dll, or you can rename it so it's still there in case you want to change your convergence again. Make the release version have the name "d3d9.dll" again.
When you boot up your game again, the main menu should already be aligned perfectly if you saved your convergence in step 3. If not, just increase your convergence with the hotkeys until it lines up. If you want it to pop out or have depth inside the screen, you're welcome to leave it slightly un-aligned.
Download Links:
Release .dll
Debug .dll
VTMB Fix Shaderoverride
Credits:
Eincrou located the UI shader and did all of the testing, but this fix is thanks to Mana84. He discovered this method of changing the convergence value at which the shader renders at screen depth. This will allow for fixes to many games that have to be played at super-low convergence values.Thanks to eqzitara for helping convert the shader.
Posted by Eincrou
