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

相关文章

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接