nvapi在d3d10中使用NvAPI_Stereo_SetDriverMode

时间:2012-08-15 21:26:19

标签: nvidia stereo-3d stereoscopy direct3d10 nvapi

我正在尝试将nvapi设置为使用函数NvAPI_Stereo_SetDriverMode以直接模式工作。

根据Nvidia nvapi site(在手册中), 如果你想进行direct3d实现,你需要初始化nvpai,然后设置直接模式,然后创建设备(d3d10device),然后创建立体声句柄...(继续程序)。

NvAPI_Initialize();
NvAPI_Stereo_SetDriverMode(g_StereoHandle , NVAPI_STEREO_DRIVER_MODE_DIRECT);
D3D10CreateDeviceAndSwapChain(...,pD3D10Device);
NvAPI_Stereo_CreateHandleFromIUnknown(pD3D10Device,&g_StereoHandle );
.....(the rest)

我尝试了但是然后功能NvAPI_Stereo_SetActiveEye(告诉我想要渲染我的网格的哪一只眼睛)说模式不是直接模式。

当我查看头文件时,我发现在创建句柄后应该调用该模式。但当我这样做时,它返回了NVAPI_INVALID_ARGUMENT(并且我再次无法设置主动眼睛)。

NvAPI_Initialize();
D3D10CreateDeviceAndSwapChain(...,pD3D10Device);
NvAPI_Stereo_CreateHandleFromIUnknown(pD3D10Device,&g_StereoHandle );
NvAPI_Stereo_SetDriverMode(g_StereoHandle , NVAPI_STEREO_DRIVER_MODE_DIRECT);
.....(the rest)

有没有人遇到同样的问题?

我试图在网上查看nvapi的示例,但它似乎是新的并且nvidia开发人员区域已关闭(由于某些技术问题)。

2 个答案:

答案 0 :(得分:0)

这很奇怪。

  1. NVidia网站(您提供的第一个网站)中显示的方式适用于 我
  2. SetDriverMode不接受立体声句柄的参数(in 与您复制的代码相反)。
  3. 也许有人在你的代码中添加了一个邪恶的'#define'? :)

答案 1 :(得分:0)

如果有人来寻找

的工作示例
  

NvAPI_STEREO_DRIVER_MODE_DIRECT

然后这是我在github遇到的项目的链接。这里的例子演示了在d3d设备之前的立体声初始化。 显示了使用后缓冲区在每只眼睛中渲染的用法。至于OP,第一种方法应该有效,因为DirectMode需要NVAPI& NvAPI_Stereo_SetDriverMode在创建设备之前首先进行初始化。希望这有助于某人:)