问题标签 [openvr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
403 浏览

python - 更改 OpenVR 的 color_cube_actor.py 的 gl_PointSize 会导致 Python 崩溃?

我正在使用这个color_cube_actor.py文件,并且能够在使用我的HTC Vive时运行hello_qt_controllers.py示例,我确实看到了彩色立方体,并且我能够使用 roomscale 四处走动,所以一切都很好。

在此处输入图像描述

我想开始学习如何从 Python 实时更改缓冲区数据。

首先,我删除了 GLSL 程序的许多不必要的部分,并对其进行了修改,以将不露面的顶点渲染为 10 像素的白点。

在此处输入图像描述

尝试从 Python 循环中输入一个值以更改顶点点大小我正在尝试这个示例drawWithoutVBOs(),并根据样式修改了我的项目。

使用一个简单的静态不变变量 ( layout(location = 8) uniform float Size = 10;),我的程序可以工作并生成上面的图像。

但是,如果我使用“可变”变量 ( layout(location = 8) in float Size;),那么 Python 将完全崩溃而不会出现错误。

项目的源代码

我不确定我是否遗漏了什么,或者我的项目是否可能使用 QT 后端而不是 PyGame,那么我的环境和其他导致问题的示例之间存在细微差别?

我希望这里有人可以帮助我弄清楚为什么向 gl_PointSize 提供值会导致 Python 崩溃。我对使用 PyOpenVR 库时可以实时修改缓冲区数据(位置、点大小等)的方法也很感兴趣?

谢谢你的帮助!


[更新]

这是我通过从GLSL 教程 – 属性变量中复制而修改的最新项目。现在这只会在 pyGame 和 pySide QT 中产生一个空白屏幕。

也再次感谢大家的帮助和患者!我知道我对 OpenGL 非常缺乏经验,非常感谢所有建议。


[更新]

很长一段时间以来,学习 OpenGL 可能是我尝试做的最困难的事情之一。我现在花了四天时间试图在 OpenGL 4.5 中设置缓冲区,但我几乎没有取得任何进展,我只是觉得自己陷入了困境。

这是我编写的一些代码的示例(它没有指定版本 4.5)。根据 Derhass 的建议,我尝试在此文件中使用 VBO,它们似乎可以工作,直到指定#version 450 core我得到的只是大量折旧错误和 1282 的位置。再次因为它不针对 OpenGL 4.5,我认为我不能将它与 OpenVR 一起使用(不知道为什么会这样?)。

在此处输入图像描述

所以我尝试将它重写为 Python Class() 但即使它看起来相同,由于某种原因我只看到一个顶点在移动,其余的谁知道在哪里:

在这一点上,我肯定在考虑 PyOpenGL 的工作方式有问题或者我只是无法弄清楚如何使用它的可能性。无论哪种方式,它都是一个真正的无赖..

0 投票
0 回答
1422 浏览

unity3d - 有没有办法在 SteamVR 大厅中隐藏 Vive 控制器?

我想知道是否有办法在 SteamVR 大厅中隐藏 Vive 控制器模型。

我正在构建一个 VR 叠加应用程序。这意味着我有一个可以访问 SteamVR 和 OpenVR API 等的 unity3D 项目。当该项目开始自动隐藏我的控制器模型时,我能做些什么吗?

到目前为止,我已经尝试过使用OpenVR.System.CaptureInputFocus()OpenVR.RenderModels.FreeRenderModel( RenderModel_t *pRenderModel )没有成功。

有没有人做到这一点,知道任何实现这一点的 VR 应用程序,或者是否有可能?

非常感谢,

利亚姆

0 投票
1 回答
272 浏览

oculus - Oculus Touch 控制器能否与 OpenVR SDK 配合使用?

我目前正在编写我的 VR 游戏引擎。我正在尝试决定是否应该使用 Oculus SDK 或 OpenVR SDK。我到处找,找不到 Oculus Touch 控制器与 OpenVR SDK 配合得如何。

0 投票
1 回答
9550 浏览

unity3d - OpenVR、SteamVR 和 Unity3D 如何协同工作?

我试图了解 Vive 的 VR 平台堆栈,以及它的游戏是如何开发的。我很难理解 openVR、steamVR 和 Unity 到底在哪里适合。

到目前为止,我的理解是:

如果有人能纠正我,我将不胜感激。或者如果我的理解是正确的,那为什么正在开发的游戏不能unity 3D直接通过openVR.

0 投票
0 回答
384 浏览

c++ - 在库中创建 Qt 小部件(不在主库中)

我正在开发一个使用 OpenVR 与 HTC Vive 套件通信的 C++ 项目。这个想法是开发一个带有菜单的库,在 VR 环境中显示,用户可以从中更改程序的一些参数。

我正在尝试将此类菜单实现为 ​​QWidget,如官方 OpenVR 示例中所示。我的问题是,在这个项目中已经有一个主(我可以访问但我不想干扰它)在我的代码执行之前创建和启动一个 QApplication 。

我设法创建了 QWidget,但由于某些原因,它的插槽根本没有被调用。我怀疑这与我没有以某种方式在事件循环中“注册”我的 QWidget 的事实有关,但问题可能出在其他地方。

简而言之,如果这甚至是问题,那么如果 QApplication 已经在运行,那么连接槽和信号如何工作?


这是我的测试 QWidget,非常基础。

这是控制器,直接取自我上面链接的 OpenVR 示例。我剥离了所有不必要的东西

这是我在我的库的其他类之一的构造函数中设置这两者的方法(只要按下应用程序的“VR”按钮,在应用程序已经运行的任何时候都会调用它) .

提前谢谢你,洛伦佐

编辑:添加了相关代码。 编辑:切换到 Qt5 样式进行连接。它仍然可以编译和运行,但永远不会调用这些事件。

0 投票
0 回答
852 浏览

unity5 - SteamVR 外置摄像头,屏幕位置视锥体

我目前正在为第三个控制器开发 SteamVR 外置摄像头,在我的 HTC Vive 项目中支持混合现实。

但是二次视图有问题,它只显示头显: 在此处输入图像描述

当我在第三个控制器的子级中选择相机时,它给出了这个错误:在此处输入图像描述

我对这个问题的预感是因为脚本中的 Graphics.drawTexture(),但我不知道它的解决方案。我在 Unity 论坛上搜索过这个问题,但那里没有答案......

任何帮助将不胜感激。

备注:

  1. 统一 v5.6.1f1
  2. SteamVR v1.2.1
0 投票
1 回答
1036 浏览

cmake - 将 vtk 与 openVR 一起使用

我正在尝试在 HTC Vive 设备上将 VTK 7.1.1 与 OpenVR 一起使用。我已经使用 CMake 3.3.0 配置了 VTK,并使用 Visual Studio 2012 构建了它的解决方案。但是当我尝试VTK-7.1.1/Rendering/OpenVR通过 CMake 为示例文件生成解决方案时,它给出了以下错误:

找不到由“OpenVR”提供的具有以下任何名称的软件包配置文件:

除此之外,CMake 坚持openvr_dir手动设置路径,但不接受指向openvr_master具有所需内容的文件夹的路径。

我该如何解决?

0 投票
1 回答
146 浏览

openvr - 如何在不使用 steamvr(openvr) 跟踪的情况下显示表面?

没有跟踪时,头显会自动显示灰蓝色,无法显示需要的画面。我们开发的应用程序需要在没有跟踪的情况下运行,我该如何实现呢?

0 投票
2 回答
4718 浏览

unity3d - 在 Unity 中禁用 SteamVR 摄像头的头部跟踪?

我正在尝试使用两个摄像头为我的 VR 播放器开发 HUD。一个是固定相机,它指向我的 HUD 对象,深度 = 1,另一个是深度 = 0 的主相机,它跟踪 HMD 并将 HUD 覆盖在上面。

然而 Unity、SteamVR 或 OpenVR 正在强制我的相机跟踪玩家的 HMD。经过详尽的搜索后,我无法找到任何方法来阻止这种行为。然后我尝试将我所有的 HUD 对象作为我的 HUD 相机的父对象,并希望能做到最好。

这会导致所有 HUD 对象出现不希望的抖动运动:

项目层次结构:

我相信我真的需要控制我的相机的变换,所以我可以防止它移动或阻止它跟踪玩家的 HMD。

我已尝试更新相机位置,Update()但这LateUpdate()没有任何影响。我还花了很多时间修改/调试 SteamVR 和 OVR 脚本,这些脚本没有积极的结果,而且摄像机从未停止跟踪。

我尝试在我的相机父级上使用这个建议的脚本:

否定跟踪.cs:

这导致相机指向一个方向,但仍在平移。但是,我注意到这种方式似乎更加不稳定,并且觉得我要么用错了,要么还不够。

我现在又开始寻找在某些摄像机上禁用头部跟踪的方法,以便能够将它们定位在我的场景中。

有谁知道 SteamVR/OpenVR 如何控制这些相机的变换?有没有办法禁用或覆盖这种行为?

谢谢你。

0 投票
1 回答
235 浏览

c++ - 如何在 C++ 中从 OSVR 使用?

我想从 OSVR 插件中使用,但我不知道它是如何工作的。

在 OpenVR 中,我每只眼睛都有一个帧缓冲区,当我在该缓冲区上写一些东西时,我会在眼镜中看到它们,并且我正在使用 HTC Vive。

但现在我不知道这些缓冲区在哪里以及如何更改 VR 眼睛内容,并且我正确安装了 OSVR 服务器和 OSVR Vive 插件,但即使是这个简单的示例也无法正常工作,而且我在 VR 中看不到任何东西:

有人知道它是如何工作的吗?