3

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

根据 Nvidia nvapi站点(在手册中),如果您想进行 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 开发人员区已关闭(由于一些技术问题)。

4

2 回答 2

0

那很奇怪。

  1. NVidia 网站(您提出的第一个)中显示的方式对我有用。
  2. SetDriverMode 不接受立体声句柄的参数(与您复制的代码相反)。

也许有人在你的代码中添加了一个邪恶的“#define”?:)

于 2013-11-20T19:18:43.150 回答
0

万一有人来寻找一个可行的例子

NvAPI_STEREO_DRIVER_MODE_DIRECT

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

于 2018-05-31T10:27:54.850 回答