开启左侧

[转载] How to Change 3D Vision Discover Colors(or enable SBS in 3DMigoto via Discover)

So the Drivers haven't allowed us to change lens color for quite some time, this is because other color schemes are only allowed when StereoAnaglyphType is set to 0(or above 2) and the Drivers keep rewriting it back to 1 for Discover(Red/Cyan).

There's a few ways to get StereoAnaglyphType to 'stick' after enabling 3D Vision Discover...

  • Alt+Tab out of a game, set it to 0 and go back into the game
  • Set it to 0 and then Lock the Registry Key <--- not a fan
  • Run a Script that sets it after the Drivers rewrite it

...with StereoAnaglyphType set to 0 the Drivers seem to only use LeftAnaglyphFilter and completely ignore RightAnaglyphFilter. What the Drivers seem to do is use what ever value LeftAnaglyphFilter is set to and then just automatically set RightAnaglyphFilter to it's opposite/complimentary color.

So when setting LeftAnaglyphFilter to FF00FF00(Green) and it will automatically set RightAnaglyphFilter to FFFF00FF(Magenta) and vice versa, set LeftAnaglyphFilter to FFFF00FF(Magenta) and it will automatically set RightAnaglyphFilter to FF00FF00(Green)... and this works for ALL color 'sets'... Red/Cyan, Orange/Blue, Yellow/Blue, etc.

I wrote a VBS Script to set LeftAnaglyphFilter using it's RRGGBB value and keep StereoAnaglyphType in check for 10 seconds and/or until something triggers it by changing StereoAnaglyphType in the Registry, both the RRGGBB value and the time it runs(RunFor) are 'editable' by changing their respective values in the Script, shown in orange below:

Color = "&HFF" & "00FF00" ' "RRGGBB"
RunFor = 10 ' Seconds to Run
There's a great Color Calculator here for finding the RRGGBB Values as well as seeing their complimentary values/colors.

Save as DiscoverMode.vbs, Edit Color/Time and Run:
  • ' ©2017 TsaebehT - For Intended Use Only Please Do Not Distribute Without Permission.
  • If WScript.Arguments.Length = 0 Then
  •         Set objShell = CreateObject("Shell.Application")
  •         objShell.ShellExecute "WScript","""" & WScript.ScriptFullName & """ RunAsAdmin",,"RunAs",1
  •         WScript.Quit
  • End if
  • Color = "&HFF" & "00FF00" ' "RRGGBB"
  • RunFor = 10 ' Seconds to Run
  • Key = "HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\"
  • Set objShell = CreateObject("WScript.Shell")
  • objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  • objShell.RegWrite Key & "LeftAnaglyphFilter",Color,"REG_DWORD"
  • RunFor = Timer + RunFor
  • Do
  •         if objShell.RegRead(Key & "StereoAnaglyphType") <> "0" Then
  •                 objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  •                 WScript.Sleep 999
  •                 if objShell.RegRead(Key & "StereoAnaglyphType") <> "0" Then objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  •                 WScript.Quit
  •         End if
  • Loop Until Timer > RunFor

----------------------------------------------------------------------------------


edit:Not sure what changed but enabling SBS via 3DMigoto/Discover not longer crashes on my Win10 rig, so here's a non-editable SBS version of the script and instrustions of how to enable SBS Mode in 3DMigoto.

Enable 3D Vision Discover in the Control Panel then...

Copy the contents of 3DMigoto's x32 or x64 folder to where the game's EXE is located and in 3DMigoto's d3dx.ini, edit the x7 = line to your desired output(or just cycle through them in-game using F11):
  • ; x7 is used by the 3DVision2SBS custom shader. To use, find the [Present
  • ; section below and uncomment the 'run = CustomShader3DVision2SBS' line.
  • ; 0 = Regular 3D Vision
  • ; 1 = Reversed 3D Vision
  • ; 2 = Side by Side
  • ; 3 = Reversed Side by Side
  • ; 4 = Top and Bottom
  • ; 5 = Reversed Top and Bottom
  • x7 = 2

...and uncomment(remove the ;) the run = CustomShader3DVision2SBS line, like so:
  • ; Uncomment to enable a custom shader that allows the stereo output mode to be
  • ; changed to Side-by-Side or Top-and-Bottom:
  • run = CustomShader3DVision2SBS

Save as SBSMode.vbs and Run right before starting game
  • ' ©2017 TsaebehT - For Intended Use Only Please Do Not Distribute Without Permission.
  • If WScript.Arguments.Length = 0 Then
  •         Set objShell = CreateObject("Shell.Application")
  •         objShell.ShellExecute "WScript","""" & WScript.ScriptFullName & """ RunAsAdmin",,"RunAs",1
  •         WScript.Quit
  • End if
  • Key = "HKLM\SOFTWARE\WOW6432Node\NVIDIA Corporation\Global\Stereo3D\"
  • Set objShell = CreateObject("WScript.Shell")
  • objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  • objShell.RegWrite Key & "LeftAnaglyphFilter","&HFFFFFFFF","REG_DWORD"
  • RunFor = Timer + 10
  • Do
  •         if objShell.RegRead(Key & "StereoAnaglyphType") <> "0" Then
  •                 objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  •                 WScript.Sleep 999
  •                 if objShell.RegRead(Key & "StereoAnaglyphType") <> "0" Then objShell.RegWrite Key & "StereoAnaglyphType",0,"REG_DWORD"
  •                 WScript.Quit
  •         End if
  • Loop Until Timer > RunFor
Attachments
回复

发表于 2017-11-4 16:43:11 使用道具 举报

精彩评论1

所以驱动程序不允许我们改变镜头的颜色很长一段时间,这是因为只有当StereoAnaglyphType设置为0(或者大于2)时才允许使用其他配色方案,并且驱动程序保持将它重写为1,以发现(红色/青色)。

在启用3D Vision发现之后,有几种方法可以让StereoAnaglyphType“粘住”...

Alt + Tab退出游戏,将其设置为0,然后回到游戏中
将其设置为0,然后锁定注册表项<---不是粉丝
运行一个脚本,在驱动程序重写它之后进行设置

... StereoAnaglyphType设置为0的驱动程序似乎只使用LeftAnaglyphFilter并完全忽略RightAnaglyphFilter。驱动程序似乎做的是使用LeftAnaglyphFilter设置的值,然后自动将RightAnaglyphFilter设置为相反/补色。

所以当设置LeftAnaglyphFilter为FF00FF00(绿色),它会自动将RightAnaglyphFilter设置为FFFF00FF(品红色),反之亦然,将LeftAnaglyphFilter设置为FFFF00FF(品红色),并自动将RightAnaglyphFilter设置为FF00FF00(绿色)...这适用于ALL颜色“套”...红色/青色,橙色/蓝色,黄色/蓝色等

我写了一个VBS脚本来设置LeftAnaglyphFilter使用它的RRGGBB值,并保持StereoAnaglyphType检查10秒钟和/或直到通过改变注册表中的StereoAnaglyphType触发它,RRGGBB值和它运行的时间(RunFor)都是'可编辑的'通过在脚本中更改它们各自的值,如下面的橙色所示:

Color =“&HFF”&“00FF00”“RRGGBB”
RunFor = 10秒要运行
有一个伟大的颜色计算器在这里找到RRGGBB值,以及看到他们的价值/颜色。

另存为DiscoverMode.vbs,编辑颜色/时间并运行:
'©2017 TsaebehT - 仅供指定用途,请勿分发。
如果WScript.Arguments.Length = 0那么
        Set objShell = CreateObject(“Shell.Application”)
        objShell.ShellExecute“WScript”,“”“”&WScript.ScriptFullName&“”“RunAsAdmin”,,“RunAs”,1
        WScript.Quit
万一
Color =“&HFF”&“00FF00” “RRGGBB”
RunFor = 10 秒运行
Key =“HKLM \ SOFTWARE \ WOW6432Node \ NVIDIA Corporation \ Global \ Stereo3D \”
Set objShell = CreateObject(“WScript.Shell”)
objShell.RegWrite Key&“StereoAnaglyphType”,0,“REG_DWORD”
objShell.RegWrite Key&“LeftAnaglyphFilter”,Color,“REG_DWORD”
RunFor = Timer + RunFor

        如果objShell.RegRead(Key&“StereoAnaglyphType”)<>“0”那么
                objShell.RegWrite Key&“StereoAnaglyphType”,0,“REG_DWORD”
                WScript.Sleep 999
                如果objShell.RegRead(Key&“StereoAnaglyphType”)<>“0”则objShell.RegWrite键&“StereoAnaglyphType”,0,“REG_DWORD”
                WScript.Quit
        万一
循环直到计时器> RunFor

-------------------------------------------------- --------------------------------


编辑:不知道什么改变,但启用SBS通过3DMigoto /发现不再在我的Win10钻机崩溃,所以这里是一个不可编辑的SBS版本的脚本和instrustions如何启用SBS模式在3DMigoto。

在控制面板中启用3D Vision Discover,然后...

将3DMigoto的x32或x64文件夹的内容复制到游戏的EXE所在的位置,在3DMigoto的d3dx.ini中,将x7 =行编辑为所需的输出(或者循环在游戏中使用F11):
; X7 是使用由该3DVision2SBS 自定义着色器。要使用,请找到[ Present
; 部分,取消注释'run = CustomShader3DVision2SBS' 行。
; 0 = 普通3D 视觉
; 1 = 逆向3D 视觉
; 2 = 侧由侧
; 3 = 反胶束侧由侧
; 4 = 顶部和底部
; 5 = 颠倒的顶部和底部
x7 = 2

...并取消注释(删除;)run = CustomShader3DVision2SBS行,如下所示:
; 取消注释以启用允许立体声输出模式为的自定义着色器
; 改为似地- 通过- 侧面或顶部- 和- 底部:
运行= CustomShader3DVision2SBS

保存为SBSMode.vbs并在开始游戏之前运行
'©2017 TsaebehT - 仅供指定用途,请勿分发。
如果WScript.Arguments.Length = 0那么
        Set objShell = CreateObject(“Shell.Application”)
        objShell.ShellExecute“WScript”,“”“”&WScript.ScriptFullName&“”“RunAsAdmin”,,“RunAs”,1
        WScript.Quit
万一
Key =“HKLM \ SOFTWARE \ WOW6432Node \ NVIDIA Corporation \ Global \ Stereo3D \”
Set objShell = CreateObject(“WScript.Shell”)
objShell.RegWrite Key&“StereoAnaglyphType”,0,“REG_DWORD”
objShell.RegWrite Key&“LeftAnaglyphFilter”,“&HFFFFFFFF”,“REG_DWORD”
RunFor = Timer + 10

        如果objShell.RegRead(Key&“StereoAnaglyphType”)<>“0”那么
                objShell.RegWrite Key&“StereoAnaglyphType”,0,“REG_DWORD”
                WScript.Sleep 999
                如果objShell.RegRead(Key&“StereoAnaglyphType”)<>“0”则objShell.RegWrite键&“StereoAnaglyphType”,0,“REG_DWORD”
                WScript.Quit
        万一
循环直到计时器> RunFor
附件

翻译来自 “谷歌网页”翻译
回复

发表于 2018-1-19 13:17:29 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

威望13

懵币10479

帖子138

发布主题
阅读排行

下载盗梦APP

关注盗梦极客
一起玩转VR

© 2015 盗梦极客 | VR虚拟现实达人社区 | VR资源及VR眼镜教程 黑ICP备15006149号 VR新手指引 联系我们