OSG显示模型满屏绿条

1. 问题

        编译OSG库之后,运行示例,模型满屏的绿条

2. 原因分析

        显卡问题,显卡未装驱动

3. 解决方案

        解决方案1:安装对应显卡驱动

                3.1.1)查看显卡信息1

                        win10通过 桌面右键显示设置高级显示设置

                        可以看到显卡信息,本机信息如下

                        

                3.1.2)查看显卡信息2

                        Win + R 打开运行窗口,输入 dxdiag 敲回车

                        调出DirectX诊断工具窗口,切换到 显示 选项卡

                        

                3.1.3) 获取显卡信息后,到显卡公司官网找对应的显卡驱动

                        (本机方法如:直接浏览器搜索 "Interl(R)HD Graphics 630",可找到相应入口)

                        本机的 Interl(R)HD Graphics 630,官网链接如下:

                        支持英特尔® 核芯显卡 630

                        切换到 驱动程序和软件 选项卡

                        

                         选择下载对应显卡驱动

                         

                3.1.4)安装驱动

                        双击下载的驱动程序,安装即可,安装之后会有提示可重启                      

                        注:本机安装及测试情况如下

                        本机安装之后,先未重启,查看OSG模型显示,仍存在满屏绿条情况,

                        重启,查看OSG模型显示,仍存在满屏绿条情况,重新安装一遍驱动,

                        再次查看OSG模型显示,模型显示正常

 

        解决方案2:换一台正确安装了显卡驱动或独显的电脑

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你已经成功获取了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手柄模型

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值