使用 DirectX9 和 NVAPI 调用的 GeForce 上的 Nvidia 3D 视觉
Nvidia 3D vision on GeForce using DirectX9 and NVAPI calls
我基于此 PDF 的第 14-15 页开发了一个使用 DirectX9 显示立体场景的应用程序,使用对 NVAPI 的调用:
http://www.nvidia.com/docs/IO/40505/WP-05482-001_v01-final.pdf
我的应用程序在配备 Quadro 卡的机器上运行良好,但无法在配备 GeForce 卡的机器上运行。在配备 GeForce 的机器上,发射器灯根本不会变成亮绿色。然而,Nvidia 3D 查看器程序在带有 GeForce 的机器上仍然可以正常工作。
知道我做错了什么吗?我的理解是 OpenGL quad-buffered stereo 只能在 Quadro 上工作,但如果我将 NVAPI 与 DirectX 一起使用,那么它也应该在 GeForce 上工作。
我也试过 blit 方法(在图像的最后一行添加特殊立体 header),根据这个文档:
http://developer.download.nvidia.com/presentations/2009/GDC/GDC09-3DVision-The_In_and_Out.pdf
但我根本无法让它工作,无论是在 Quadro 上还是在 GeForce 上。
非常感谢任何帮助,谢谢!
更新:我找到了这个问题的解决方案,以防万一有人感兴趣。
首先确保驱动程序是最新的。
接下来,获取并运行以下应用程序
http://www.geeks3d.com/20100528/manage-your-sli-profiles-with-nvidia-geforce-sli-profile-tool/
单击 "export" 按钮创建带有应用程序的文本文件 "profiles"
搜索 "Google Earth" 的配置文件并复制一份,但将 "Executable" 的值更改为您的可执行文件的名称。例如,如果您的应用程序文件是 "myapp.exe",它可能如下所示:
Profile "My Application"
ShowOn All
ProfileType Application
Executable "myapp.exe"
Setting ID_0x0092f4de = 0x37605846
Setting ID_0x1034cb89 = 0x00000000
Setting ID_0x106d5cff = 0x00000000
Setting ID_0x10a879cf = 0x00000001
Setting ID_0x10f9dc81 = 0x00000011
Setting ID_0x10f9dc84 = 0x00000100
Setting ID_0x20568533 = 0x00000001
Setting ID_0x205f7e3b = 0x00000000
Setting ID_0x701eb457 = 0x2241ab21 InternalSettingFlag=V0
SettingString ID_0x7049c7ec = "2.0"
SettingString ID_0x704d456e = "Some objects render at wrong depth"
SettingString ID_0x7051e5f5 = "2"
SettingString ID_0x705fafec = "2009-01-01 00:00:00"
Setting ID_0x708db8c5 = 0x561dde75 InternalSettingFlag=V0
Setting ID_0x709a1ddf = 0x4b1cd969 InternalSettingFlag=V0
SettingString ID_0x70b5603f = "D3D"
Setting ID_0x70edb381 = 0x2420efa8 InternalSettingFlag=V0
Setting ID_0x80303a19 = 0x00000000
Setting ID_0x80857a28 = 0x00000000
Setting ID_0x809d5f60 = 0x00000000
EndProfile
添加该配置文件后,保存 txt 文件,然后返回配置文件管理器,然后单击导入和 select 您刚刚保存的 txt 文件。然后尝试再次打开您的应用程序。
您可能希望在初始导出时保留原始配置文件的备份,以防您搞砸了。
此外,每次更新驱动程序时可能都必须这样做(虽然尚未确认,但我想配置文件会被覆盖)
我基于此 PDF 的第 14-15 页开发了一个使用 DirectX9 显示立体场景的应用程序,使用对 NVAPI 的调用:
http://www.nvidia.com/docs/IO/40505/WP-05482-001_v01-final.pdf
我的应用程序在配备 Quadro 卡的机器上运行良好,但无法在配备 GeForce 卡的机器上运行。在配备 GeForce 的机器上,发射器灯根本不会变成亮绿色。然而,Nvidia 3D 查看器程序在带有 GeForce 的机器上仍然可以正常工作。
知道我做错了什么吗?我的理解是 OpenGL quad-buffered stereo 只能在 Quadro 上工作,但如果我将 NVAPI 与 DirectX 一起使用,那么它也应该在 GeForce 上工作。
我也试过 blit 方法(在图像的最后一行添加特殊立体 header),根据这个文档:
http://developer.download.nvidia.com/presentations/2009/GDC/GDC09-3DVision-The_In_and_Out.pdf
但我根本无法让它工作,无论是在 Quadro 上还是在 GeForce 上。
非常感谢任何帮助,谢谢!
更新:我找到了这个问题的解决方案,以防万一有人感兴趣。
首先确保驱动程序是最新的。
接下来,获取并运行以下应用程序
http://www.geeks3d.com/20100528/manage-your-sli-profiles-with-nvidia-geforce-sli-profile-tool/
单击 "export" 按钮创建带有应用程序的文本文件 "profiles"
搜索 "Google Earth" 的配置文件并复制一份,但将 "Executable" 的值更改为您的可执行文件的名称。例如,如果您的应用程序文件是 "myapp.exe",它可能如下所示:
Profile "My Application"
ShowOn All
ProfileType Application
Executable "myapp.exe"
Setting ID_0x0092f4de = 0x37605846
Setting ID_0x1034cb89 = 0x00000000
Setting ID_0x106d5cff = 0x00000000
Setting ID_0x10a879cf = 0x00000001
Setting ID_0x10f9dc81 = 0x00000011
Setting ID_0x10f9dc84 = 0x00000100
Setting ID_0x20568533 = 0x00000001
Setting ID_0x205f7e3b = 0x00000000
Setting ID_0x701eb457 = 0x2241ab21 InternalSettingFlag=V0
SettingString ID_0x7049c7ec = "2.0"
SettingString ID_0x704d456e = "Some objects render at wrong depth"
SettingString ID_0x7051e5f5 = "2"
SettingString ID_0x705fafec = "2009-01-01 00:00:00"
Setting ID_0x708db8c5 = 0x561dde75 InternalSettingFlag=V0
Setting ID_0x709a1ddf = 0x4b1cd969 InternalSettingFlag=V0
SettingString ID_0x70b5603f = "D3D"
Setting ID_0x70edb381 = 0x2420efa8 InternalSettingFlag=V0
Setting ID_0x80303a19 = 0x00000000
Setting ID_0x80857a28 = 0x00000000
Setting ID_0x809d5f60 = 0x00000000
EndProfile
添加该配置文件后,保存 txt 文件,然后返回配置文件管理器,然后单击导入和 select 您刚刚保存的 txt 文件。然后尝试再次打开您的应用程序。
您可能希望在初始导出时保留原始配置文件的备份,以防您搞砸了。
此外,每次更新驱动程序时可能都必须这样做(虽然尚未确认,但我想配置文件会被覆盖)