切换NvAPI_Stereo_Deactivate / NvAPI_Stereo_activate使Unity应用程序崩溃

时间:2018-08-06 11:57:00

标签: c++ unity3d nvapi

我目前正在Unity3d中使用NVAPI和3D Vision的外部插件进行开发。在NVAPI中,有两个API调用可以打开/关闭活动立体声。

NvAPI_Stereo_Deactivate   
NvAPI_Stereo_Activate

因此,无论何时我尝试打开/关闭立体声,它都会在随机时间崩溃,但以下情况除外:

  

Unity Player [版本:Unity 2017.1.0f3(472613c02cf7)]
    nvwgf2umx.dll在0033:6f9981d8导致模块nvwgf2umx.dll发生访问冲突(0xc0000005)。

崩溃可能在第三次尝试时发生,有时可能在以后的任何尝试中发生。我现在假设的是它必须通过dll访问某些值来执行某些操作。问题是因为它在NVIDIA内部,所以我无法访问它。

我已经尝试了其他简单的方法,例如关闭Vsync,在“管理3d”设置中将“质量设置”设置为“最大值”,但是均失败了。

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

这也是指向error log

的链接

1 个答案:

答案 0 :(得分:0)

我已经设法通过环岛的方式解决了上述问题。而不是使用

NvAPI_Stereo_Deactivate   
NvAPI_Stereo_Activate

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