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

相关文章

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml