That video looks pretty good.
A lot better than using the dgVoodoo wrapper did with the first Tomb Raider.
Using it the resolution was being up-scaled and the frame rate was locked at something like 30, making it stutter pretty bad. Couldn't alter any in-game settings via a config file either.
Here's a link to the wrapper, it works great on most dx7/glide games.
https://forums.geforce.com/default/topic/828843/
A lot better than using the dgVoodoo wrapper did with the first Tomb Raider.
Using it the resolution was being up-scaled and the frame rate was locked at something like 30, making it stutter pretty bad. Couldn't alter any in-game settings via a config file either.
I also tried dgVOODOO to try to get Turok 2 - Seeds Of Evil running in 3D. I can't get it to run without issues. No problems with the framerate but lot's of stuff missing on one eye. Very strange issue. One eye looks good and the other not. I've spend a lot of time trying to fix this but it didn't work. :(
It's sad because I really like this game. It came with my ASUS RIVA TNT2 Deluxe with 3D Stereo glasses.
I also tried dgVOODOO to try to get Turok 2 - Seeds Of Evil running in 3D. I can't get it to run without issues. No problems with the framerate but lot's of stuff missing on one eye. Very strange issue. One eye looks good and the other not. I've spend a lot of time trying to fix this but it didn't work. :(
It's sad because I really like this game. It came with my ASUS RIVA TNT2 Deluxe with 3D Stereo glasses.
[quote="Alien-Grey"]I also tried dgVOODOO to try to get Turok 2 - Seeds Of Evil running in 3D. I can't get it to run without issues. No problems with the framerate but lot's of stuff missing on one eye. Very strange issue. One eye looks good and the other not. I've spend a lot of time trying to fix this but it didn't work. :(
It's sad because I really like this game. It came with my ASUS RIVA TNT2 Deluxe with 3D Stereo glasses.[/quote]
Yah, I never realized how into 3D ASUS was until just awhile back.
But they used to have their own 3D Glasses and Motherboards with a vesa stereo connector. This was prior to Nvidia doing anything 3D related.
In fact, I think this is why Helifax and I could never find out how Nvidia implemented OpenGL support, because they didn't, they just inherited it with their purchase of 3DFX.
ASUS used have an SDK or something similar, that developers could use to make their game 3D.
Unfortunately, ASUS has removed all traces of this from their website and I can't find any real information on it, just bad links in old threads.
Anyhow, we can't thank Helifax enough for his wrapper. Otherwise, we could only play a few old OpenGL games that enable 3D via cofig file edits.
Alien-Grey said:I also tried dgVOODOO to try to get Turok 2 - Seeds Of Evil running in 3D. I can't get it to run without issues. No problems with the framerate but lot's of stuff missing on one eye. Very strange issue. One eye looks good and the other not. I've spend a lot of time trying to fix this but it didn't work. :(
It's sad because I really like this game. It came with my ASUS RIVA TNT2 Deluxe with 3D Stereo glasses.
Yah, I never realized how into 3D ASUS was until just awhile back.
But they used to have their own 3D Glasses and Motherboards with a vesa stereo connector. This was prior to Nvidia doing anything 3D related.
In fact, I think this is why Helifax and I could never find out how Nvidia implemented OpenGL support, because they didn't, they just inherited it with their purchase of 3DFX.
ASUS used have an SDK or something similar, that developers could use to make their game 3D.
Unfortunately, ASUS has removed all traces of this from their website and I can't find any real information on it, just bad links in old threads.
Anyhow, we can't thank Helifax enough for his wrapper. Otherwise, we could only play a few old OpenGL games that enable 3D via cofig file edits.
Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :(
Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :(
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
What about Doom 3 BFG? They released the source code for it.
Or what about that one guys wrapper for second life, if I remember right, he had his code on github.
EDIT: ctrlaltstudio is still maintaining his Stereoscopic addon and has added occulus support.
http://ctrlaltstudio.com/blog/2015/10/03/ctrlaltstudio-viewer-updated-to-oculus-sdk-0-6
BFG source code
https://github.com/id-Software/DOOM-3-BFG
D3 BFG uses stereoRender_enable as it's stereoscopic type flag.
On that page, I see
"// In stereoRender mode, the front end has generated two RC_DRAW_VIEW commands"
https://github.com/id-Software/DOOM-3-BFG/search?utf8=%E2%9C%93&q=stereoRender
There's a guy that has a site where he has picked apart some of the code
Here's his RC_DRAW_VIEW commands page
http://fabiensanglard.net/doom3/renderer.php
[quote="D-Man11"]What about Doom 3 BFG? They released the source code for it.
Or what about that one guys wrapper for second life, if I remember right, he had his code on github.[/quote]
I looked in the Doom3 BFG source code;) Actually I had a Linux port a couple of years ago;) Unfortunately it didn't help since is using Quad Buffering that is available in the OpenGL driver. In my wrapper I don't do this at all;) since I am rendering in a DX9 window;)
What is the wrapper for Second Life. Haven't seen anything like this as of yet. Do you remember what was it called? or have a link to it?
Thx!
D-Man11 said:What about Doom 3 BFG? They released the source code for it.
Or what about that one guys wrapper for second life, if I remember right, he had his code on github.
I looked in the Doom3 BFG source code;) Actually I had a Linux port a couple of years ago;) Unfortunately it didn't help since is using Quad Buffering that is available in the OpenGL driver. In my wrapper I don't do this at all;) since I am rendering in a DX9 window;)
What is the wrapper for Second Life. Haven't seen anything like this as of yet. Do you remember what was it called? or have a link to it?
Thx!
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
You know me, completely clueless overall, but maybe you can find something useful in those links.
EDIT:
This is the thread where I learned that SecondLife had a viewer
https://forums.geforce.com/default/topic/573378/
[quote="helifax"]Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :([/quote]
Wait, maybe I'm misunderstanding.
Rereading that, I now think that you are saying that you can not let OpenGL create that second frame, because if it does, then it becomes Quad Buffered. And if it becomes Quad Buffered, it will not work because Direct X has no use for it.
So you want to convert the first frame to DirectX and have Nvida create the stereoized/offset sister frame.
Whereas currently your wrapper creates the sister frames and not Nvidia or OpenGL.
helifax said:Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :(
Wait, maybe I'm misunderstanding.
Rereading that, I now think that you are saying that you can not let OpenGL create that second frame, because if it does, then it becomes Quad Buffered. And if it becomes Quad Buffered, it will not work because Direct X has no use for it.
So you want to convert the first frame to DirectX and have Nvida create the stereoized/offset sister frame.
Whereas currently your wrapper creates the sister frames and not Nvidia or OpenGL.
Wing Commander - Prophecy with the 3D Vision Wrapper
https://www.youtube.com/watch?v=TB_t97FeZqc
[quote="D-Man11"]Anyhow, we can't thank Helifax enough for his wrapper. Otherwise, we could only play a few old OpenGL games that enable 3D via cofig file edits.[/quote]
I agree. Without this wrapper it wouldn't be possible to run Quake 4, Wing Commander - Prophecy and a lot more other OpenGL games.
Wing Commander - Prophecy with the 3D Vision Wrapper
D-Man11 said:Anyhow, we can't thank Helifax enough for his wrapper. Otherwise, we could only play a few old OpenGL games that enable 3D via cofig file edits.
I agree. Without this wrapper it wouldn't be possible to run Quake 4, Wing Commander - Prophecy and a lot more other OpenGL games.
Yah, I looked and looked for a way to get idTech 4 games to launch in 3D. They did prior to the launch of 3D Vision/Windows Vista(prior 2009 on XP Drivers), somehow.
https://forums.geforce.com/default/topic/399990/
I was surprised when I found that quite a few idTech 2/3 games could be enabled via their config files once Nvidia allowed Quad Buffering in their consumer drivers again.
Yah, I looked and looked for a way to get idTech 4 games to launch in 3D. They did prior to the launch of 3D Vision/Windows Vista(prior 2009 on XP Drivers), somehow.
https://forums.geforce.com/default/topic/399990/
I was surprised when I found that quite a few idTech 2/3 games could be enabled via their config files once Nvidia allowed Quad Buffering in their consumer drivers again.
[quote="D-Man11"][quote="helifax"]Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :([/quote]
Wait, maybe I'm misunderstanding.
Rereading that, I now think that you are saying that you can not let OpenGL create that second frame, because if it does, then it becomes Quad Buffered. And if it becomes Quad Buffered, it will not work because Direct X has no use for it.
So you want to convert the first frame to DirectX and have Nvida create the stereoized/offset sister frame.
Whereas currently your wrapper creates the sister frames and not Nvidia or OpenGL.[/quote]
Yupp;) That is correct.
What I need to do is what 3D Vision Automatic in DirectX does.
I cannot enable Quad Buffering in OpenGL since the drivers are very restrictive (doesn't work in SUrround or SLI at all).
Plus in order to enable 3D Vision Hardware I need to insert the MAGIC Stereo FLAG in the Buffer creation;)
The Quad Buffering isn't anything special actually. Just enabling it would not solve the issue.
The way Quad Buffering works:
- Activate Left
- Draw full frame or part
- Activate Right
- Draw full frame or part
Swap (aka Present)
This is EXACTLY what I do with my buffers as well (have 1 for left and one for right which are hooked into OpenGL via the interoop layer)
Now notice something important: BOTH Draws are issued from the CPU and the "Time doesn't modify", thus you get the same frame from different perspectives.
In normal drawing you have:
Activate Back buffer
- Draw full frame or part
Swap/Present
Advance Time
See where the problem is ? Since I render sequential the TIME gets updated between consecutive frames (only if a couple of milliseconds) The rapid the movement (Rotation) the bigger the offset between individual frames.
What I also tried is to hook all the Windows Tick and Performance Counter functions and try to stop the time between calls. However this doesn't work since the 3D Vision driver also relies on these functions and much more so when you stop you get instant freeze across the game;))
Now 3D Vision AUtomatic says:
- Duplicate all the Framebuffers
- Duplicate all the draw calls
So the rendering would be like this:
- Activate Left
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- SWAP/Present the "Single" Frame. By single I mean OpenGL still thinks is rendering a mono-frame.
I can do the duplication of draw calls. Problem is... I can't duplicate the FBOS to get an exact copy of it. To date I have more than 200+ hours spent of this with no result whatsoever, except for the games where only ONE FBO is used (which is the main FBO and is the simplest form).
This explains while you don;t get any problems when moving forwards, backwards, strafe left, strafe right, but the moment a ROTATION takes place you get the eye-sync issue;)
helifax said:Yeah, I also wasn't able to find more info on this:( It sux that I still have no clue on how they tackled the "Duplication of the Framebuffers/aka render targets".
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :(
Wait, maybe I'm misunderstanding.
Rereading that, I now think that you are saying that you can not let OpenGL create that second frame, because if it does, then it becomes Quad Buffered. And if it becomes Quad Buffered, it will not work because Direct X has no use for it.
So you want to convert the first frame to DirectX and have Nvida create the stereoized/offset sister frame.
Whereas currently your wrapper creates the sister frames and not Nvidia or OpenGL.
Yupp;) That is correct.
What I need to do is what 3D Vision Automatic in DirectX does.
I cannot enable Quad Buffering in OpenGL since the drivers are very restrictive (doesn't work in SUrround or SLI at all).
Plus in order to enable 3D Vision Hardware I need to insert the MAGIC Stereo FLAG in the Buffer creation;)
The Quad Buffering isn't anything special actually. Just enabling it would not solve the issue.
The way Quad Buffering works:
- Activate Left
- Draw full frame or part
- Activate Right
- Draw full frame or part
Swap (aka Present)
This is EXACTLY what I do with my buffers as well (have 1 for left and one for right which are hooked into OpenGL via the interoop layer)
Now notice something important: BOTH Draws are issued from the CPU and the "Time doesn't modify", thus you get the same frame from different perspectives.
In normal drawing you have:
Activate Back buffer
- Draw full frame or part
Swap/Present
Advance Time
See where the problem is ? Since I render sequential the TIME gets updated between consecutive frames (only if a couple of milliseconds) The rapid the movement (Rotation) the bigger the offset between individual frames.
What I also tried is to hook all the Windows Tick and Performance Counter functions and try to stop the time between calls. However this doesn't work since the 3D Vision driver also relies on these functions and much more so when you stop you get instant freeze across the game;))
Now 3D Vision AUtomatic says:
- Duplicate all the Framebuffers
- Duplicate all the draw calls
So the rendering would be like this:
- Activate Left
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- SWAP/Present the "Single" Frame. By single I mean OpenGL still thinks is rendering a mono-frame.
I can do the duplication of draw calls. Problem is... I can't duplicate the FBOS to get an exact copy of it. To date I have more than 200+ hours spent of this with no result whatsoever, except for the games where only ONE FBO is used (which is the main FBO and is the simplest form).
This explains while you don;t get any problems when moving forwards, backwards, strafe left, strafe right, but the moment a ROTATION takes place you get the eye-sync issue;)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
Thanks to Helifax's 4.19 OpenGL wrapper, I managed to get Neverwinter Nights - Diamond Edition working almost flawlessly in 3D Vision! All graphics settings are maxed out and everything looks especially excellent with the toyification effect. Reminds me of the old table top D&D RPG experience, a real treat to play.
There is only one minor thing which I have encountered in the opening level, the "Fire Bowls" only seem to have a displaced shader. I did enable debug mode to hunt for this shader but as soon as I hit the ctrl & [+] combination, the game exits to desktop. The F8, F9 & F10 key seem to be working since the F10 causes the game to minimize to desktop revealing a dialog box with convergence settings.
Perhaps helifax may have a suggestions or any ideas on this? I would like to make this game a excellent status but I can say so far is at least a very good status. This is my effort to give back to the community ;)
Anyway, the code blocks have been included for both my 3DVisionWrapper.ini and nwn.ini files. Set up game at least once before installing the wrapper and changing the .ini files.
A couple of things with 3DVisionWrapper.ini to note is my hex value for convergence is extremely high and I would suggest lowering. Also, the Hex value for alternate 3d setting has been changed to the "U" since the F1, F2 & F3 and mouse are needed by the game. I cannot see any reason why you cannot change to you preferred key. See this link for list of Hex values.
[url]https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx[/url]
I'll also provide the following link for a camera mod that enhances the viewing experience. I personally love this old style RPG and I've been having a blast to finally play in true 3D.
[b]Thanks Helifax for making this possible![/b]
[url]http://neverwintervault.org/project/nwn1/other/patch/nwn-souhotu-169-camera-hack-mod[/url]
3DVisionWrapper.ini
[code]
[General]
EnableSplashScreen = true | Enables or Disables the splashscreen. Usefull to know if the wrapper is being loaded or not.
EnableLog = false | Enables Logging of wrapper internal information
EnableShaderDump = true | Enable Shader Dump. Shaders will be written to disk as soon as they are created. ONLY IN DEV MODE!
EnableScrBfrCallTracer = false | Special Logging case. If enabled the log file will contain the Call Order of the glBindFramebuffer, glBindFramebufferEXT, glBindFramebufferARB, glSwapBuffers functions (whichever is used).ONLY IN DEV MODE!
EnableDevMode = true | Enable developer MODE. (Shader hunting/dumping/selecting, etc).
[3D_Vision_Global_Settings]
Enable3DVision = true | Enable or Disable 3D VISION SUPPORT. If disabled the game will render normally (2D).
SyncToMonitorRefreshRate = true | Should we sync to monitor Refresh rate? Or leave it run "Wild"? Try this setting to see if you get "less eye-sync" problems.
AlternateFramesRendering = false | Default value: OFF. Frames are rendered: 1/2->show; 3/4->show; 5/6->show. If ON, frames are rendered: 1/2->show; 2/3->show; 3/4->show. Setting to ON MIGHT improve eye-sync on some systems or decrease on others.
ForceFullScreen = false | Flag used only in SLI configurations. Forces the DX Device to be created in FullScreen Mode.
ForceWindowModeSupport = false | Force Window Mode context creation. This setting will not force the render engine to work in window mode. It is a flag used for DX device/context creation. Some applications require it.
FullScreenDetection = false | Enable of Disable Fullscreen detection. Some games will enter in a loop if this is enabled.
DepthMultiplicationFactor = 2.5 | Depth Hack. The Current depth Value will be multiplied with this factor. Ex: Current depth (NVpanel) is 50%. Factor is 2. Actual Depth will be 100%.
DefaultConvergence = 0x428d4a02 | The default convergence value that is used for this game when the nVidia Profile is created. If you saved a different convergence (via hotkeys) this value will be ignored. Must be a hex value. This value overides the value read from the nip file.
ForceNVProfileLoad = true | This will force the Nvidia Profile to be loaded each time the wrapper is started!!! Your saved convergence value will be overwriten with the one above !!! Requires at least one game restart to take effect!
3DVisionRating = 0.0 | Possible values: 0.0 - 3D Vision Ready; 1.0 - Excelent; 2.0 - Good; 3.0 - Fair; 4.0 - Not Recommended
| This flag controls how the wrapper works internally.
| LegacyMode is for old applications (OpenGL prior to version v.3.x)
[Legacy_OpenGL_Calls]
LegacyMode = true | Currently used in older games like: Star Wars: Knights of the Old Republic 1&2
LegacyHUDSeparation = 0.0 | 0.0 is no separation; Positive values will "push-in" the UI; Negative values will "pop-out" the UI;
| Enable Toggle Mode: if set to true it will toggle between values. If set to false a value will be applied as long as you keep that key pressed.
| Use only HEX NUMBERS: for both Keyboard Keys and Mouse Buttons
| 0x70 = F1;
| 0x71 = F2;
| 0x72 = F3;
| 0x55 = U;
| Mouse:
| Left mouse btn :0x01
| Right mouse btn :0x02
| Middle mouse btn :0x04
|
| For xbox controller use the codes from the following:
| XINPUT_GAMEPAD_DPAD_UP 0x0001
| XINPUT_GAMEPAD_DPAD_DOWN 0x0002
| XINPUT_GAMEPAD_DPAD_LEFT 0x0004
| XINPUT_GAMEPAD_DPAD_RIGHT 0x0008
| XINPUT_GAMEPAD_START 0x0010
| XINPUT_GAMEPAD_BACK 0x0020
| XINPUT_GAMEPAD_LEFT_THUMB 0x0040
| XINPUT_GAMEPAD_RIGHT_THUMB 0x0080
| XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100
| XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200
| XINPUT_GAMEPAD_A 0x1000
| XINPUT_GAMEPAD_B 0x2000
| XINPUT_GAMEPAD_X 0x4000
| XINPUT_GAMEPAD_Y 0x8000
| Params: (Key Code, separation, convergence, toggle?)
[Alternative_3D_Settings]
NewKeyShortcut|(0x55, -1.0, 0.75, true)
[End]
[Shader_Stereo_Injection]
Enable = true | Enable StereoScopic 3D Injection. If Disabled the engine will render 2 images from the SAME perspective (2D).
EnableUnity5 = false | Unity 5 Game Engine Mode. Legacy Mode must be enabled. Unity 5 Engine uses both Legacy + Shaders and is a hybrid engine.
EmbedProgramIdInCRC32 = false | IS the ProgramNumber embedded in the CRC value? This is used for some ID5 engines to get a better granularity in shaders!! LEAVE disabled unless you know what you are doing!
VertexAutoStereoInjectionInfo = false | If enabled will display all the Vertex Shaders in which the Stereoscopy wasn't inserted. ONLY IN DEV MODE!
| Part of a STRING that is FOUND in all the VERTEX and PIXEL shaders. The Uniforms (required by "Stereo String") will be inserted after this line.
UniformInjection1 = "#version"
UniformInjection2 = "NULL"
UniformInjection3 = "NULL"
UniformInjection4 = "NULL"
| Part of a STRING that is FOUND in all the VERTEX SHADERS.
VertexInjectionPoint1 = "gl_Position ="
VertexInjectionPoint2 = "NULL"
VertexInjectionPoint3 = "NULL"
VertexInjectionPoint4 = "NULL"
VertexInjectionPoint5 = "NULL"
VertexInjectionPoint6 = "NULL"
VertexInjectionPoint7 = "NULL"
VertexInjectionPoint8 = "NULL"
VertexInjectionPoint9 = "NULL"
VertexInjectionPoint10 = "NULL"
VertexStereoString1 = "gl_Position.x -= g_eye * g_eye_separation * (gl_Position.w - g_convergence);\n"
VertexStereoString2 = ""
VertexStereoString3 = ""
VertexStereoString4 = ""
VertexStereoString5 = ""
VertexStereoString6 = ""
VertexStereoString7 = ""
VertexStereoString8 = ""
VertexStereoString9 = ""
VertexStereoString10 = ""
| insert: Will insert the "VertexStereoString1" after all matches for "VertexInjectionPoint1". "replace": Will replace the string in "VertexInjectionPoint1" with "VertexStereoString1".
VertexOperation1 = insert
VertexOperation2 = insert
VertexOperation3 = insert
VertexOperation4 = insert
VertexOperation5 = insert
VertexOperation6 = insert
VertexOperation7 = insert
VertexOperation8 = insert
VertexOperation9 = insert
VertexOperation10 = insert
| Part of a STRING that is FOUND in all the PIXEL SHADERS.
PixelInjectionPoint1 = "gl_FragData[0] ="
PixelInjectionPoint2 = "NULL"
PixelInjectionPoint3 = "NULL"
PixelInjectionPoint4 = "NULL"
PixelInjectionPoint5 = "NULL"
PixelInjectionPoint6 = "NULL"
PixelInjectionPoint7 = "NULL"
PixelInjectionPoint8 = "NULL"
PixelInjectionPoint9 = "NULL"
PixelInjectionPoint10 = "NULL"
PixelStereoString1 = "tmpvar_1.x -= g_eye * g_eye_separation *(tmpvar_1.z - g_convergence) / gl_ProjectionMatrix[0].x;\n"
PixelStereoString2 = ""
PixelStereoString3 = ""
PixelStereoString4 = ""
PixelStereoString5 = ""
PixelStereoString6 = ""
PixelStereoString7 = ""
PixelStereoString8 = ""
PixelStereoString9 = ""
PixelStereoString10 = ""
| insert: Will insert the "PixelStereoString1" after all matches for "PixelInjectionPoint1". "replace": Will replace the string in "PixelInjectionPoint1" with "PixelInjectionPoint1".
PixelOperation1 = insert
PixelOperation2 = insert
PixelOperation3 = insert
PixelOperation4 = insert
PixelOperation5 = insert
PixelOperation6 = insert
PixelOperation7 = insert
PixelOperation8 = insert
PixelOperation9 = insert
PixelOperation10 = insert
ShaderSwapIsContinous = true | Stop after one shader have been found and swapped? or look for more identical shaders and swap them as well
ShaderPairSwapIsContinous = false | Stop after one PAIR shader(Must match CRC of Vertex + Pixel) have been found and swapped? or look for more identical shaders and swap them as well.
| The Disable Code will be appended AFTER VertexInjectionPoint1 & PixelInjectionPoint1 points ONLY!!!
VertexDisableString = "\n if(g_vertexEnabled < 1.0)\n{gl_Position = vec4(0.0);}\n"
PixelDisableString = "\n if(g_pixelEnabled < 1.0)\n{gl_FragData[0] = vec4(0.0);}\n"
//////////////////////////////////DEVELOPER ONLY OPTIONS///////////////////////////////////
///////////////////// PRESS F11 to reload this section on the fly//////////////////////////
[Shader_Compiler_Options] | ONLY IN DEV MODE!
EnableCompilerOptions = true | Enable or Disable the Shader Compiler. The shaders in this range will be displayed in 2D (No Stereo will be applied). Good for looking for shaders.
DisableExceptShaderInterval = false | Disable or not the shaders between Star and End indexes specified below. A disabled shader will not be rendered.
ExceptStartShader = -1 | Start Vertex Shader Index.
ExceptEndShader = -1 | End Vertex Shader Index.
DisableCurrentShaders = false | Disable the current selected vertex shader or pixel shader? A disabled shader will not be rendered.
ShaderCompilerStartIndex = -1 | Specify the Program_Id from where the Shader Compiler will start the Shader List.
| Custom 3D params sent to shaders: (ProgId, x, y, z, w).
| If progId = -1 values are sent to all shaders.
| For UNITY 5 Engine these params are sent to glMatrix(). x= separation; y = convergence;
[Stereo_Custom_Params]
ShaderProgram(0, 1, 1, 1, 1)
[End][/code]
nwn.ini
[code]Alias]
HD0=.\
CD0=.\
OVERRIDE=.\override
TEMP=.\temp
MODULES=.\modules
LOGS=.\logs
LOCALVAULT=.\localvault
DMVAULT=.\dmvault
SERVERVAULT=.\servervault
TEMPCLIENT=.\tempclient
SAVES=.\saves
CURRENTGAME=.\currentgame
HAK=.\hak
PATCH=.\patch
NWMFiles=.\nwm
AMBIENT=.\ambient
MOVIES=.\movies
MUSIC=.\music
[Sound Options]
Music Volume=0.30
Voice Volume=0.95
SoundFX Volume=0.85
DisableSound=0
3D Provider=Miles Fast 2D Positional Audio
Environment Effects=0
Speaker Type=-1
2D3D Bias=1.60
[Display Options]
Width=1280
Height=720
BitsPerPixels=32
RefreshRate=60
TexturePack=3
SafeMovie=0
FullScreen=1
UseLargeFont=1
[Config]
FirstRun=0
Connection=0
NWLoaderDisplayTime=3
[Video Options]
VideoQualitySetting=3
Enable HardwareMouse=1
NumDynamicLights=8
AntiAliasing Mode=4
Enable VSync=1
ShinyWater=1
NumShadowCastingLights=3
EnableVisualEffectsHigh=1
Enable Truform=0
Enable AnisotropicFiltering=1
CreatureWindSetting=2
EnableGrass=1
EnableFastGrass=0
Grass Far Render Distance=900.0
EnableSkyboxes=1
EnableEnvironmentShadows=1
Enable TextureAnimations=1
Enable CreatureEnvironmentMapping=1
Gamma=1.000000
CreatureShadowDetail=2
[/code]
Thanks to Helifax's 4.19 OpenGL wrapper, I managed to get Neverwinter Nights - Diamond Edition working almost flawlessly in 3D Vision! All graphics settings are maxed out and everything looks especially excellent with the toyification effect. Reminds me of the old table top D&D RPG experience, a real treat to play.
There is only one minor thing which I have encountered in the opening level, the "Fire Bowls" only seem to have a displaced shader. I did enable debug mode to hunt for this shader but as soon as I hit the ctrl & [+] combination, the game exits to desktop. The F8, F9 & F10 key seem to be working since the F10 causes the game to minimize to desktop revealing a dialog box with convergence settings.
Perhaps helifax may have a suggestions or any ideas on this? I would like to make this game a excellent status but I can say so far is at least a very good status. This is my effort to give back to the community ;)
Anyway, the code blocks have been included for both my 3DVisionWrapper.ini and nwn.ini files. Set up game at least once before installing the wrapper and changing the .ini files.
A couple of things with 3DVisionWrapper.ini to note is my hex value for convergence is extremely high and I would suggest lowering. Also, the Hex value for alternate 3d setting has been changed to the "U" since the F1, F2 & F3 and mouse are needed by the game. I cannot see any reason why you cannot change to you preferred key. See this link for list of Hex values.
I'll also provide the following link for a camera mod that enhances the viewing experience. I personally love this old style RPG and I've been having a blast to finally play in true 3D.
EnableSplashScreen = true | Enables or Disables the splashscreen. Usefull to know if the wrapper is being loaded or not.
EnableLog = false | Enables Logging of wrapper internal information
EnableShaderDump = true | Enable Shader Dump. Shaders will be written to disk as soon as they are created. ONLY IN DEV MODE!
EnableScrBfrCallTracer = false | Special Logging case. If enabled the log file will contain the Call Order of the glBindFramebuffer, glBindFramebufferEXT, glBindFramebufferARB, glSwapBuffers functions (whichever is used).ONLY IN DEV MODE!
EnableDevMode = true | Enable developer MODE. (Shader hunting/dumping/selecting, etc).
[3D_Vision_Global_Settings]
Enable3DVision = true | Enable or Disable 3D VISION SUPPORT. If disabled the game will render normally (2D).
SyncToMonitorRefreshRate = true | Should we sync to monitor Refresh rate? Or leave it run "Wild"? Try this setting to see if you get "less eye-sync" problems.
AlternateFramesRendering = false | Default value: OFF. Frames are rendered: 1/2->show; 3/4->show; 5/6->show. If ON, frames are rendered: 1/2->show; 2/3->show; 3/4->show. Setting to ON MIGHT improve eye-sync on some systems or decrease on others.
ForceFullScreen = false | Flag used only in SLI configurations. Forces the DX Device to be created in FullScreen Mode.
ForceWindowModeSupport = false | Force Window Mode context creation. This setting will not force the render engine to work in window mode. It is a flag used for DX device/context creation. Some applications require it.
FullScreenDetection = false | Enable of Disable Fullscreen detection. Some games will enter in a loop if this is enabled.
DepthMultiplicationFactor = 2.5 | Depth Hack. The Current depth Value will be multiplied with this factor. Ex: Current depth (NVpanel) is 50%. Factor is 2. Actual Depth will be 100%.
DefaultConvergence = 0x428d4a02 | The default convergence value that is used for this game when the nVidia Profile is created. If you saved a different convergence (via hotkeys) this value will be ignored. Must be a hex value. This value overides the value read from the nip file.
ForceNVProfileLoad = true | This will force the Nvidia Profile to be loaded each time the wrapper is started!!! Your saved convergence value will be overwriten with the one above !!! Requires at least one game restart to take effect!
3DVisionRating = 0.0 | Possible values: 0.0 - 3D Vision Ready; 1.0 - Excelent; 2.0 - Good; 3.0 - Fair; 4.0 - Not Recommended
| This flag controls how the wrapper works internally.
| LegacyMode is for old applications (OpenGL prior to version v.3.x)
[Legacy_OpenGL_Calls]
LegacyMode = true | Currently used in older games like: Star Wars: Knights of the Old Republic 1&2
LegacyHUDSeparation = 0.0 | 0.0 is no separation; Positive values will "push-in" the UI; Negative values will "pop-out" the UI;
| Enable Toggle Mode: if set to true it will toggle between values. If set to false a value will be applied as long as you keep that key pressed.
| Use only HEX NUMBERS: for both Keyboard Keys and Mouse Buttons
| 0x70 = F1;
| 0x71 = F2;
| 0x72 = F3;
| 0x55 = U;
| Mouse:
| Left mouse btn :0x01
| Right mouse btn :0x02
| Middle mouse btn :0x04
|
| For xbox controller use the codes from the following:
| XINPUT_GAMEPAD_DPAD_UP 0x0001
| XINPUT_GAMEPAD_DPAD_DOWN 0x0002
| XINPUT_GAMEPAD_DPAD_LEFT 0x0004
| XINPUT_GAMEPAD_DPAD_RIGHT 0x0008
| XINPUT_GAMEPAD_START 0x0010
| XINPUT_GAMEPAD_BACK 0x0020
| XINPUT_GAMEPAD_LEFT_THUMB 0x0040
| XINPUT_GAMEPAD_RIGHT_THUMB 0x0080
| XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100
| XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200
| XINPUT_GAMEPAD_A 0x1000
| XINPUT_GAMEPAD_B 0x2000
| XINPUT_GAMEPAD_X 0x4000
| XINPUT_GAMEPAD_Y 0x8000
| Params: (Key Code, separation, convergence, toggle?)
[Alternative_3D_Settings]
NewKeyShortcut|(0x55, -1.0, 0.75, true)
[End]
[Shader_Stereo_Injection]
Enable = true | Enable StereoScopic 3D Injection. If Disabled the engine will render 2 images from the SAME perspective (2D).
EnableUnity5 = false | Unity 5 Game Engine Mode. Legacy Mode must be enabled. Unity 5 Engine uses both Legacy + Shaders and is a hybrid engine.
EmbedProgramIdInCRC32 = false | IS the ProgramNumber embedded in the CRC value? This is used for some ID5 engines to get a better granularity in shaders!! LEAVE disabled unless you know what you are doing!
VertexAutoStereoInjectionInfo = false | If enabled will display all the Vertex Shaders in which the Stereoscopy wasn't inserted. ONLY IN DEV MODE!
| Part of a STRING that is FOUND in all the VERTEX and PIXEL shaders. The Uniforms (required by "Stereo String") will be inserted after this line.
UniformInjection1 = "#version"
UniformInjection2 = "NULL"
UniformInjection3 = "NULL"
UniformInjection4 = "NULL"
| Part of a STRING that is FOUND in all the VERTEX SHADERS.
VertexInjectionPoint1 = "gl_Position ="
VertexInjectionPoint2 = "NULL"
VertexInjectionPoint3 = "NULL"
VertexInjectionPoint4 = "NULL"
VertexInjectionPoint5 = "NULL"
VertexInjectionPoint6 = "NULL"
VertexInjectionPoint7 = "NULL"
VertexInjectionPoint8 = "NULL"
VertexInjectionPoint9 = "NULL"
VertexInjectionPoint10 = "NULL"
VertexStereoString1 = "gl_Position.x -= g_eye * g_eye_separation * (gl_Position.w - g_convergence);\n"
VertexStereoString2 = ""
VertexStereoString3 = ""
VertexStereoString4 = ""
VertexStereoString5 = ""
VertexStereoString6 = ""
VertexStereoString7 = ""
VertexStereoString8 = ""
VertexStereoString9 = ""
VertexStereoString10 = ""
| insert: Will insert the "VertexStereoString1" after all matches for "VertexInjectionPoint1". "replace": Will replace the string in "VertexInjectionPoint1" with "VertexStereoString1".
VertexOperation1 = insert
VertexOperation2 = insert
VertexOperation3 = insert
VertexOperation4 = insert
VertexOperation5 = insert
VertexOperation6 = insert
VertexOperation7 = insert
VertexOperation8 = insert
VertexOperation9 = insert
VertexOperation10 = insert
| Part of a STRING that is FOUND in all the PIXEL SHADERS.
PixelInjectionPoint1 = "gl_FragData[0] ="
PixelInjectionPoint2 = "NULL"
PixelInjectionPoint3 = "NULL"
PixelInjectionPoint4 = "NULL"
PixelInjectionPoint5 = "NULL"
PixelInjectionPoint6 = "NULL"
PixelInjectionPoint7 = "NULL"
PixelInjectionPoint8 = "NULL"
PixelInjectionPoint9 = "NULL"
PixelInjectionPoint10 = "NULL"
PixelStereoString1 = "tmpvar_1.x -= g_eye * g_eye_separation *(tmpvar_1.z - g_convergence) / gl_ProjectionMatrix[0].x;\n"
PixelStereoString2 = ""
PixelStereoString3 = ""
PixelStereoString4 = ""
PixelStereoString5 = ""
PixelStereoString6 = ""
PixelStereoString7 = ""
PixelStereoString8 = ""
PixelStereoString9 = ""
PixelStereoString10 = ""
| insert: Will insert the "PixelStereoString1" after all matches for "PixelInjectionPoint1". "replace": Will replace the string in "PixelInjectionPoint1" with "PixelInjectionPoint1".
PixelOperation1 = insert
PixelOperation2 = insert
PixelOperation3 = insert
PixelOperation4 = insert
PixelOperation5 = insert
PixelOperation6 = insert
PixelOperation7 = insert
PixelOperation8 = insert
PixelOperation9 = insert
PixelOperation10 = insert
ShaderSwapIsContinous = true | Stop after one shader have been found and swapped? or look for more identical shaders and swap them as well
ShaderPairSwapIsContinous = false | Stop after one PAIR shader(Must match CRC of Vertex + Pixel) have been found and swapped? or look for more identical shaders and swap them as well.
| The Disable Code will be appended AFTER VertexInjectionPoint1 & PixelInjectionPoint1 points ONLY!!!
VertexDisableString = "\n if(g_vertexEnabled < 1.0)\n{gl_Position = vec4(0.0);}\n"
PixelDisableString = "\n if(g_pixelEnabled < 1.0)\n{gl_FragData[0] = vec4(0.0);}\n"
//////////////////////////////////DEVELOPER ONLY OPTIONS///////////////////////////////////
///////////////////// PRESS F11 to reload this section on the fly//////////////////////////
[Shader_Compiler_Options] | ONLY IN DEV MODE!
EnableCompilerOptions = true | Enable or Disable the Shader Compiler. The shaders in this range will be displayed in 2D (No Stereo will be applied). Good for looking for shaders.
DisableExceptShaderInterval = false | Disable or not the shaders between Star and End indexes specified below. A disabled shader will not be rendered.
ExceptStartShader = -1 | Start Vertex Shader Index.
ExceptEndShader = -1 | End Vertex Shader Index.
DisableCurrentShaders = false | Disable the current selected vertex shader or pixel shader? A disabled shader will not be rendered.
ShaderCompilerStartIndex = -1 | Specify the Program_Id from where the Shader Compiler will start the Shader List.
| Custom 3D params sent to shaders: (ProgId, x, y, z, w).
| If progId = -1 values are sent to all shaders.
| For UNITY 5 Engine these params are sent to glMatrix(). x= separation; y = convergence;
@ Stryker_66:
Very very nice indeed!!
I remember NeverWinter Nights being one of my favourite games for quite a long time (before KOTOR appeared:) )
Funny enough I made my first mod for this game:)) Is the game on which I basically took my first steps in C++ (from a Pascal Environment) Ah, the memories.
I bet If I start playing it again I'll be struck by nostalgia:))
BIG THANK YOU FOR TAKING THE TIME TO MAKE THE GAME WORK!!! I will make an archive + all info and stick it on the website;)
I'll also look to see why is crashing when trying to hunt shaders (probably because is not using GLSL but rather ARB and I am not handling something right;)) In any case it shouldn't crash, so that's a bug ^_^).
Very very nice indeed!!
I remember NeverWinter Nights being one of my favourite games for quite a long time (before KOTOR appeared:) )
Funny enough I made my first mod for this game:)) Is the game on which I basically took my first steps in C++ (from a Pascal Environment) Ah, the memories.
I bet If I start playing it again I'll be struck by nostalgia:))
BIG THANK YOU FOR TAKING THE TIME TO MAKE THE GAME WORK!!! I will make an archive + all info and stick it on the website;)
I'll also look to see why is crashing when trying to hunt shaders (probably because is not using GLSL but rather ARB and I am not handling something right;)) In any case it shouldn't crash, so that's a bug ^_^).
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
[quote="Alien-Grey"]Quake 4 with the 3D Vision Wrapper.
https://www.youtube.com/watch?v=XOBpS9NvMpc[/quote]
Really awesome!!! Looking very good!;)
If you can make an archive and a quick readme explaining the extra config steps we need to do in the game ini file I'll make an archive and stick it on the website;))
Awesome job!
Alien-Grey said:Quake 4 with the 3D Vision Wrapper.
Really awesome!!! Looking very good!;)
If you can make an archive and a quick readme explaining the extra config steps we need to do in the game ini file I'll make an archive and stick it on the website;))
Awesome job!
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
A lot better than using the dgVoodoo wrapper did with the first Tomb Raider.
Using it the resolution was being up-scaled and the frame rate was locked at something like 30, making it stutter pretty bad. Couldn't alter any in-game settings via a config file either.
Here's a link to the wrapper, it works great on most dx7/glide games.
https://forums.geforce.com/default/topic/828843/
It's sad because I really like this game. It came with my ASUS RIVA TNT2 Deluxe with 3D Stereo glasses.
Yah, I never realized how into 3D ASUS was until just awhile back.
But they used to have their own 3D Glasses and Motherboards with a vesa stereo connector. This was prior to Nvidia doing anything 3D related.
In fact, I think this is why Helifax and I could never find out how Nvidia implemented OpenGL support, because they didn't, they just inherited it with their purchase of 3DFX.
ASUS used have an SDK or something similar, that developers could use to make their game 3D.
Unfortunately, ASUS has removed all traces of this from their website and I can't find any real information on it, just bad links in old threads.
Anyhow, we can't thank Helifax enough for his wrapper. Otherwise, we could only play a few old OpenGL games that enable 3D via cofig file edits.
I know how to do it if I would have access to a certain game source code and is not hard... The hard part is reverse engineer that...
If I would be able to get rid of the "eye-sync" issue and render two frames from 2 perspectives instead of 2 consecutive frames from different perspectives I would be the most happiest person ^_^.
Problem is I can't find anything related to this in OpenGL... :(
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Or what about that one guys wrapper for second life, if I remember right, he had his code on github.
EDIT: ctrlaltstudio is still maintaining his Stereoscopic addon and has added occulus support.
http://ctrlaltstudio.com/blog/2015/10/03/ctrlaltstudio-viewer-updated-to-oculus-sdk-0-6
BFG source code
https://github.com/id-Software/DOOM-3-BFG
D3 BFG uses stereoRender_enable as it's stereoscopic type flag.
On that page, I see
"// In stereoRender mode, the front end has generated two RC_DRAW_VIEW commands"
https://github.com/id-Software/DOOM-3-BFG/search?utf8=%E2%9C%93&q=stereoRender
There's a guy that has a site where he has picked apart some of the code
Here's his RC_DRAW_VIEW commands page
http://fabiensanglard.net/doom3/renderer.php
I looked in the Doom3 BFG source code;) Actually I had a Linux port a couple of years ago;) Unfortunately it didn't help since is using Quad Buffering that is available in the OpenGL driver. In my wrapper I don't do this at all;) since I am rendering in a DX9 window;)
What is the wrapper for Second Life. Haven't seen anything like this as of yet. Do you remember what was it called? or have a link to it?
Thx!
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
EDIT:
This is the thread where I learned that SecondLife had a viewer
https://forums.geforce.com/default/topic/573378/
Wait, maybe I'm misunderstanding.
Rereading that, I now think that you are saying that you can not let OpenGL create that second frame, because if it does, then it becomes Quad Buffered. And if it becomes Quad Buffered, it will not work because Direct X has no use for it.
So you want to convert the first frame to DirectX and have Nvida create the stereoized/offset sister frame.
Whereas currently your wrapper creates the sister frames and not Nvidia or OpenGL.
I agree. Without this wrapper it wouldn't be possible to run Quake 4, Wing Commander - Prophecy and a lot more other OpenGL games.
https://forums.geforce.com/default/topic/399990/
I was surprised when I found that quite a few idTech 2/3 games could be enabled via their config files once Nvidia allowed Quad Buffering in their consumer drivers again.
Yupp;) That is correct.
What I need to do is what 3D Vision Automatic in DirectX does.
I cannot enable Quad Buffering in OpenGL since the drivers are very restrictive (doesn't work in SUrround or SLI at all).
Plus in order to enable 3D Vision Hardware I need to insert the MAGIC Stereo FLAG in the Buffer creation;)
The Quad Buffering isn't anything special actually. Just enabling it would not solve the issue.
The way Quad Buffering works:
- Activate Left
- Draw full frame or part
- Activate Right
- Draw full frame or part
Swap (aka Present)
This is EXACTLY what I do with my buffers as well (have 1 for left and one for right which are hooked into OpenGL via the interoop layer)
Now notice something important: BOTH Draws are issued from the CPU and the "Time doesn't modify", thus you get the same frame from different perspectives.
In normal drawing you have:
Activate Back buffer
- Draw full frame or part
Swap/Present
Advance Time
See where the problem is ? Since I render sequential the TIME gets updated between consecutive frames (only if a couple of milliseconds) The rapid the movement (Rotation) the bigger the offset between individual frames.
What I also tried is to hook all the Windows Tick and Performance Counter functions and try to stop the time between calls. However this doesn't work since the 3D Vision driver also relies on these functions and much more so when you stop you get instant freeze across the game;))
Now 3D Vision AUtomatic says:
- Duplicate all the Framebuffers
- Duplicate all the draw calls
So the rendering would be like this:
- Activate Left
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- Draw PART OF FRAME
- Activate Right
- Draw PART OF FRAME (Same instruction repeated but with other perspective)
- SWAP/Present the "Single" Frame. By single I mean OpenGL still thinks is rendering a mono-frame.
I can do the duplication of draw calls. Problem is... I can't duplicate the FBOS to get an exact copy of it. To date I have more than 200+ hours spent of this with no result whatsoever, except for the games where only ONE FBO is used (which is the main FBO and is the simplest form).
This explains while you don;t get any problems when moving forwards, backwards, strafe left, strafe right, but the moment a ROTATION takes place you get the eye-sync issue;)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
There is only one minor thing which I have encountered in the opening level, the "Fire Bowls" only seem to have a displaced shader. I did enable debug mode to hunt for this shader but as soon as I hit the ctrl & [+] combination, the game exits to desktop. The F8, F9 & F10 key seem to be working since the F10 causes the game to minimize to desktop revealing a dialog box with convergence settings.
Perhaps helifax may have a suggestions or any ideas on this? I would like to make this game a excellent status but I can say so far is at least a very good status. This is my effort to give back to the community ;)
Anyway, the code blocks have been included for both my 3DVisionWrapper.ini and nwn.ini files. Set up game at least once before installing the wrapper and changing the .ini files.
A couple of things with 3DVisionWrapper.ini to note is my hex value for convergence is extremely high and I would suggest lowering. Also, the Hex value for alternate 3d setting has been changed to the "U" since the F1, F2 & F3 and mouse are needed by the game. I cannot see any reason why you cannot change to you preferred key. See this link for list of Hex values.
https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
I'll also provide the following link for a camera mod that enhances the viewing experience. I personally love this old style RPG and I've been having a blast to finally play in true 3D.
Thanks Helifax for making this possible!
http://neverwintervault.org/project/nwn1/other/patch/nwn-souhotu-169-camera-hack-mod
3DVisionWrapper.ini
nwn.ini
Very very nice indeed!!
I remember NeverWinter Nights being one of my favourite games for quite a long time (before KOTOR appeared:) )
Funny enough I made my first mod for this game:)) Is the game on which I basically took my first steps in C++ (from a Pascal Environment) Ah, the memories.
I bet If I start playing it again I'll be struck by nostalgia:))
BIG THANK YOU FOR TAKING THE TIME TO MAKE THE GAME WORK!!! I will make an archive + all info and stick it on the website;)
I'll also look to see why is crashing when trying to hunt shaders (probably because is not using GLSL but rather ARB and I am not handling something right;)) In any case it shouldn't crash, so that's a bug ^_^).
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Really awesome!!! Looking very good!;)
If you can make an archive and a quick readme explaining the extra config steps we need to do in the game ini file I'll make an archive and stick it on the website;))
Awesome job!
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)