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

相关文章

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

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

Github连接方式

打开Linux中git的配置文件: /home/username/git/MyRepository/.git/config [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true[remote "origin"]fetch = +refs/heads/*:refs/remot

ora-01017 ora-02063 database link,oracle11.2g通过dblink连接oracle11.2g

错误图示: 问题解决 All database links, whether public or private, need username/password of the remote/target database. Public db links are accessible by all accounts on the local database, while private