此python代码引发违规访问错误(最后一行):
import time
from ovrsdk import *
ovr_Initialize()
hmd = ovrHmd_Create(0)
hmdDesc = ovrHmdDesc()
ovrHmd_GetDesc(hmd, byref(hmdDesc))
错误:
File "D:\Georgy2\mypyscripts\ovr01.py", line 12, in <module>
ovrHmd_GetDesc(hmd, byref(hmdDesc))
WindowsError: exception: access violation reading 0x00001148
我已经安装了
的最新版本技术信息:
Display Driver Version: 1.2.6.0
Positional Tracker Driver Version: 1.0.14.0
Intel(R) HD Graphics
Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
HMD Firmware: 2.12
Connected to OVRService server.
代码来自https://github.com/cmbruns/pyovr
我是python的新手,(类似于C的情况)我检查了hmd和hmdDesc的值。它们不是零:
<ovrsdk.windows.wrapper.LP_struct_ovrHmdStruct object at 0x02098210>
<ovrsdk.windows.wrapper.struct_ovrHmdDesc_ object at 0x020983F0>
如何解决这个问题? (我需要简单的场景来对VR中的图像进行一些数学运算。)
P.S。我不得不问这里因为Oculus论坛不适合我。 (页面https://secure.oculus.com/login/看起来不正确)
答案 0 :(得分:3)
您安装了哪个Oculus运行时版本?导入声明和您正在进行的调用使其看起来好像您正在使用this库,但是在两年内还没有更新。我不确定它是否可以与兼容DK2的运行时一起使用。
如果你在Windows上(并且只针对目标窗口),那么至少应该使用1.3运行时。如果您的目标是Linux和Mac,那么您应该使用0.8运行时,并了解它不能与运行1.3运行时的任何Windows计算机一起使用。
为了在Python中使用这些版本,您需要使用cmbruns python bindings,其中包括许多示例以及绑定。
答案 1 :(得分:1)
像@Jherico提到的那样,你的代码
# Where the heck did you get this, Dunaev? Not from https://github.com/cmbruns/pyovr
from ovrsdk import *
ovr_Initialize()
...
未使用https://github.com/cmbruns/pyovr
中的API查看那边的示例,并执行类似
的操作import ovr
ovr.initialize(None)
...