Exemple #1
0
    def __init__(self):
        super().__init__()

        vr_sys = openvr.init(openvr.VRApplication_Scene)
        poses_t = openvr.TrackedDevicePose_t * openvr.k_unMaxTrackedDeviceCount
        poses = poses_t()

        print("Recommended W H:", vr_sys.getRecommendedRenderTargetSize())

        ctrls = []

        for i in range(5):
            c = vr_sys.getTrackedDeviceClass(i)
            if c == openvr.TrackedDeviceClass_HMD:
                HMD_id = i
            elif c == openvr.TrackedDeviceClass_Controller:
                print("Controller:", i)
                ctrls.append(i)

        self.ov = openvr.VROverlay()
        self.cmp = openvr.VRCompositor()
        self.vrsys = openvr.VRSystem()

        self.CONTROLLERS = ctrls

        self.VRposes = poses

        k = random.randint(0, 1000)
        self.vrBuf1 = self.ov.createOverlay("Buffer 1 " + str(k), "A")
        self.vrBuf2 = self.ov.createOverlay("Buffer 2 " + str(k), "B")

        # FOV 80 size 0.2
        # FOV 120 size 0.6
        self.ov.setOverlayWidthInMeters(self.vrBuf1, 0.6)
        self.ov.setOverlayWidthInMeters(self.vrBuf2, 0.6)

        self.ov.setOverlayFromFile(self.vrBuf1, PATH + "lib/Combat.png")
        self.ov.setOverlayFromFile(self.vrBuf2, PATH + "lib/Combat.png")
        self.ov.showOverlay(self.vrBuf1)
        self.ov.showOverlay(self.vrBuf2)

        mt = [(ctypes.c_float * 4)(1, 0, 0, 0.02), (ctypes.c_float * 4)(0, 1,
                                                                        0, 0),
              (ctypes.c_float * 4)(0, 0, 1, -0.2)]

        y = openvr.HmdMatrix34_t(*mt)

        self.ov.setOverlayTransformTrackedDeviceRelative(
            self.vrBuf1, HMD_id, y)
        self.ov.setOverlayTransformTrackedDeviceRelative(
            self.vrBuf2, HMD_id, y)

        self.VRMode = True
Exemple #2
0
def check_result(result):
    if result:
        error_name = openvr.VROverlay().getOverlayErrorNameFromEnum(result)
        raise Exception("OpenVR Error:", error_name)