切换 NvAPI_Stereo_Deactivate/NvAPI_Stereo_activate 会使统一应用程序崩溃

Toggling NvAPI_Stereo_Deactivate/NvAPI_Stereo_activate crashes the unity application

我目前正在 Unity3d 中使用 NVAPI 和 3D Vision 的外部插件。在 NVAPI 中有两个 API 调用来打开 on/off 主动立体声。

NvAPI_Stereo_Deactivate   
NvAPI_Stereo_Activate

因此,每当我尝试切换 on/off 立体声时,它都会随机崩溃,但出现以下异常:

Unity Player [version: Unity 2017.1.0f3 (472613c02cf7)]
nvwgf2umx.dll caused an Access Violation (0xc0000005) in module nvwgf2umx.dll at 0033:6f9981d8.

有时会在第三次尝试或之后的任何一次尝试时发生崩溃。我目前假设它必须对 dll 访问的某些值进行处理。问题是因为它是 NVIDIA 内部的,所以我无法访问它。

我已经尝试过其他简单的方法,例如关闭 Vsync、在管理 3d 设置中将质量设置更改为最大但都失败了。

我在 NVDIA 开发论坛中确实遇到过类似的 issue,但似乎没有答案。对此有任何建议或帮助,我们将不胜感激。

这里还有 link 到 error log

我已经设法使用迂回的方式解决了上述问题。而不是使用

NvAPI_Stereo_Deactivate   
NvAPI_Stereo_Activate

打开和关闭 3d 视觉的功能我将渲染纹理传递给单眼 NvAPI_Stereo_SetActiveEye 单眼相机,而在活动模式下我分别将它传递给左眼和右眼。切换似乎正常工作,尽管我也注意到在循环中使用 NvAPI_Stereo_IsActivated 似乎也会导致相同的访问冲突,因此只有用户 NvAPI_Stereo_SetActiveEye 函数可以引起注意而不是乱用 NVAPI 本机函数。使用它的一个缺点是 3d 发射器将一直保持到应用程序退出为止(对于我的项目,这似乎没问题)。希望这可以帮助将来遇到此问题的任何人。如果有人有更好的解决方案,请更新答案。那就太好了。