openGL连接vive头盔

2023-11-21 04:40
文章标签 连接 opengl 头盔 vive

本文主要是介绍openGL连接vive头盔,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

openGL连接vive头盔

  • 1 openVR
    • 1 整体框架主要是三部分:
    • 2 openVR资料介绍和库的下载
  • 2 配置VR头盔硬件
    • 1 安装空间定位器
    • 2 将头盔和电脑连接
  • 2 steam VR的操作
    • 1 安装steam
    • 2 安装steam vr
    • 3 打开steam vr
  • 3 OpenGL和vive的连接
  • 3 总结
  • 5 下图这个问题是由于什么导致的呢?
  • 参考文献

1 openVR

openVR这个三方库要将其用在自己的openGL渲染程序中,其实就是做个左右眼的两个渲染场景,后面会显示在vive头盔的左右显示器中,大概做的工作就是把之前的工作任务复制三份,其中一份是为了自己不在头盔中运行的时候能够显示出来,可以用来调试代码,

1 整体框架主要是三部分:

(1)创建vr,启动vr

//创建vrVRDriver * vrdriver;if (hasVR){vrdriver = new VRDriver();}//========================//启动vrif (hasVR){if (!vrdriver->Init()){cout << "failed to init VR" << endl;}windowWidth = vrdriver->m_nRenderWidth;windowHeight = vrdriver->m_nRenderHeight;}else{windowWidth = WINDOW_WIDTH;windowHeight = WINDOW_HEIGHT;}

(2)左右眼渲染程序:
在这里插入图片描述

(3)提交

	glDisable(GL_BLEND);vrdriver->VREnd(false);vrdriver->Submit();glBindFramebuffer(GL_FRAMEBUFFER, 0);

当然其中还有一些细节,可以完全模仿别人的程序进行完全的替换;

2 openVR资料介绍和库的下载

openVR介绍
https://partner.steamgames.com/doc/features/steamvr/openvr
openVR库下载的地方
https://github.com/ValveSoftware/openvr

2 配置VR头盔硬件

硬件部分的任务有两个:安装空间定位器和将头盔和电脑连接,把这两个步骤做完后进行检验是否正确的的步骤就是看其状态指示灯是否是绿色,有一个不是绿色都有故障;
在这里插入图片描述

1 安装空间定位器

  1. 确保与另一个定位器之间视线不受阻挡。每个定位器的视场为 120 度。应当将其向下倾斜30 到 45 度。要固定定位器的角度,请拧紧夹紧环。
  2. 为每个定位器接上电源线,然后分别插入电源插座以开启电源。状态指示灯应显示绿色。
  3. 连接定位器并设置频道。(PS:请勿在定位器开启后移动位置或调整角度,可能会中断追踪过程。)
    在这里插入图片描述

2 将头盔和电脑连接

如下图,

在这里插入图片描述
在连接的时候碰到了一个问题
SteamVR提示 “头戴显示器未连接正确”(故障 208)
在这里插入图片描述
这个问题最后是因为自己将PB线连接到了另外一个PB接口,应该连到显卡的pb接口上;不知道显卡的pb接口那就百度一下,这个要注意

2 steam VR的操作

1 安装steam

https://store.steampowered.com/
在这里插入图片描述

2 安装steam vr

在这里插入图片描述

3 打开steam vr

在这里插入图片描述

  1. 要是前面都没有问题的话,打开steam vr会直接出现下面这样子的
    在这里插入图片描述
  2. 进行运行房间设置
    在这里插入图片描述
    进入下面这个界面:
    在这里插入图片描述
    点击下一步:
    接下来可以参考下面的步骤进行接下来的匹配
    https://www.jianshu.com/p/965badfdce58
    在这里插入图片描述
    【显示器映射】如下:
    作用就是在OpenGL程序启动后可以在这个视图中显示
    在这里插入图片描述

3 OpenGL和vive的连接

上面的都搞定了,其实只要头盔不报错,上面的openvr代码框架没有错,你就放心大胆的点击下面的这个地方吧,你就可以实现自己openGL和vive头盔的连接;

在这里插入图片描述

3 总结

总的来说,这个过程没有什么难度,首先要相信自己,遇到问题了问别人,网上查吗,问题都是可以解决的;
整个过程,建议采取以下步骤:

  1. 首先将你的openvr的驱动和框架部署到你的OpenGL程序中
  2. 然后将头盔连接到你的pc,保证你的pc有相应的接口,比如我的电脑没有pd和hdmi接口,导致换了台电脑;
  3. 然后安装steam vr
  4. 最后安装空间定位器,因为在实验室地方太小,这个定位器放自己旁边会导致自己的空间变小,所以建议放最后

5 下图这个问题是由于什么导致的呢?

在这里插入图片描述

目前主要解决的是这个问题,这问题解决了,接下来要解决的是手柄按钮的问题;这个问题解决了那就是自己在正常渲染中的功能在vr中实现了;

目前已经解决了:
原因如下:

if (hasVR){if (!vrdriver->Init()){cout << "failed to init VR" << endl;}windowWidth = vrdriver->m_nRenderWidth;windowHeight = vrdriver->m_nRenderHeight;}else{windowWidth = WINDOW_WIDTH;windowHeight = WINDOW_HEIGHT;}

这段代码的意思就是使用vr头盔的时候,显示的宽度和高度是vrdriver->m_nRenderWidth和vrdriver->m_nRenderHeight;这个逻辑没有问题,但是在后面所有的代码,我在修改代码的时候忘了将WINDOW_WIDTH和WINDOW_HEIGHT修改成windowWidth以及windowHeight;这个导致在头盔中还是使用PC端的windowWidth和windowHeight;

参考文献

[1]. https://www.jianshu.com/p/965badfdce58
[2] http://news.4399.com/vr/jiaocheng/v/m/697170.html

这篇关于openGL连接vive头盔的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399869

相关文章

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys