vr手柄显示不了问题

最近在做基于HTC火灾演练教学场景课件。
用的unity3D是2019.2.12的版本,一开始用了steamVR plugin是2.6.1版本,结果折腾了好久没有办法显示手柄,后来换成低版本的插件,结果一下子就显示出来了,有点小激动。
把1.2.3版本的插件分享给大家
链接:https://pan.baidu.com/s/1oduApaUZaO3uJhffCOjNKg
提取码:00zz
复制这段内容后打开百度网盘手机App,操作更方便哦
下载后,直接双击安装后导入项目即可。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
如果你已经成功获取了VR手柄模型,那么在OpenVR和OSG中显示它应该不难。以下是一些基本的步骤: 1. 在OSG中创建一个节点,将VR手柄模型添加为其子节点。 2. 在OpenVR中创建手柄设备的句柄。 3. 在渲染循环中,使用OpenVR获取手柄的状态信息(例如位置、姿态等)。 4. 将手柄的状态信息应用于OSG节点,以便在VR中正确显示手柄。 下面是一些示例代码,可以帮助你更好地理解这些步骤: ```cpp // 创建手柄模型节点 osg::ref_ptr<osg::Node> controllerModel = osgDB::readNodeFile("path/to/controller/model.osg"); osg::ref_ptr<osg::PositionAttitudeTransform> controllerTransform = new osg::PositionAttitudeTransform(); controllerTransform->addChild(controllerModel); // 创建OpenVR手柄设备句柄 vr::TrackedDeviceIndex_t controllerIndex = vr::k_unTrackedDeviceIndexInvalid; vr::VRControllerState_t controllerState = {}; vr::ETrackedDeviceClass deviceClass = vr::VRSystem()->GetTrackedDeviceClass(controllerIndex); if (deviceClass == vr::TrackedDeviceClass_Controller || deviceClass == vr::TrackedDeviceClass_GenericTracker) { controllerIndex = deviceIndex; } // 在渲染循环中更新手柄状态 while (!done) { // 获取手柄状态 vr::VRSystem()->GetControllerState(controllerIndex, &controllerState, sizeof(controllerState)); // 获取手柄位置和姿态 vr::TrackedDevicePose_t pose = vr::TrackedDevicePose_t(); vr::VRControllerState_t state = vr::VRControllerState_t(); vr::VRSystem()->GetDeviceToAbsoluteTrackingPose(vr::TrackingUniverseStanding, 0, &pose, 1); vr::VRSystem()->GetControllerState(controllerIndex, &state, sizeof(vr::VRControllerState_t)); // 将手柄状态应用于OSG节点 osg::Quat orientation = osg::Quat(pose.mDeviceToAbsoluteTracking.m[0][0], pose.mDeviceToAbsoluteTracking.m[1][0], pose.mDeviceToAbsoluteTracking.m[2][0], pose.mDeviceToAbsoluteTracking.m[0][1], pose.mDeviceToAbsoluteTracking.m[1][1], pose.mDeviceToAbsoluteTracking.m[2][1], pose.mDeviceToAbsoluteTracking.m[0][2], pose.mDeviceToAbsoluteTracking.m[1][2], pose.mDeviceToAbsoluteTracking.m[2][2]); osg::Vec3 position = osg::Vec3(pose.mDeviceToAbsoluteTracking.m[3][0], pose.mDeviceToAbsoluteTracking.m[3][1], pose.mDeviceToAbsoluteTracking.m[3][2]); controllerTransform->setPosition(position); controllerTransform->setAttitude(orientation); // 渲染场景 viewer->frame(); } ``` 希望这些代码可以帮助你在OpenVR和OSG中正确显示VR手柄模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值