问题标签 [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.
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 的工作方式有问题或者我只是无法弄清楚如何使用它的可能性。无论哪种方式,它都是一个真正的无赖..
unity3d - 有没有办法在 SteamVR 大厅中隐藏 Vive 控制器?
我想知道是否有办法在 SteamVR 大厅中隐藏 Vive 控制器模型。
我正在构建一个 VR 叠加应用程序。这意味着我有一个可以访问 SteamVR 和 OpenVR API 等的 unity3D 项目。当该项目开始自动隐藏我的控制器模型时,我能做些什么吗?
到目前为止,我已经尝试过使用OpenVR.System.CaptureInputFocus()
但OpenVR.RenderModels.FreeRenderModel( RenderModel_t *pRenderModel )
没有成功。
有没有人做到这一点,知道任何实现这一点的 VR 应用程序,或者是否有可能?
非常感谢,
利亚姆
oculus - Oculus Touch 控制器能否与 OpenVR SDK 配合使用?
我目前正在编写我的 VR 游戏引擎。我正在尝试决定是否应该使用 Oculus SDK 或 OpenVR SDK。我到处找,找不到 Oculus Touch 控制器与 OpenVR SDK 配合得如何。
unity3d - OpenVR、SteamVR 和 Unity3D 如何协同工作?
我试图了解 Vive 的 VR 平台堆栈,以及它的游戏是如何开发的。我很难理解 openVR、steamVR 和 Unity 到底在哪里适合。
到目前为止,我的理解是:
如果有人能纠正我,我将不胜感激。或者如果我的理解是正确的,那为什么正在开发的游戏不能unity 3D
直接通过openVR
.
c++ - 在库中创建 Qt 小部件(不在主库中)
我正在开发一个使用 OpenVR 与 HTC Vive 套件通信的 C++ 项目。这个想法是开发一个带有菜单的库,在 VR 环境中显示,用户可以从中更改程序的一些参数。
我正在尝试将此类菜单实现为 QWidget,如官方 OpenVR 示例中所示。我的问题是,在这个项目中已经有一个主(我可以访问但我不想干扰它)在我的代码执行之前创建和启动一个 QApplication 。
我设法创建了 QWidget,但由于某些原因,它的插槽根本没有被调用。我怀疑这与我没有以某种方式在事件循环中“注册”我的 QWidget 的事实有关,但问题可能出在其他地方。
简而言之,如果这甚至是问题,那么如果 QApplication 已经在运行,那么连接槽和信号如何工作?
这是我的测试 QWidget,非常基础。
这是控制器,直接取自我上面链接的 OpenVR 示例。我剥离了所有不必要的东西
这是我在我的库的其他类之一的构造函数中设置这两者的方法(只要按下应用程序的“VR”按钮,在应用程序已经运行的任何时候都会调用它) .
提前谢谢你,洛伦佐
编辑:添加了相关代码。 编辑:切换到 Qt5 样式进行连接。它仍然可以编译和运行,但永远不会调用这些事件。
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
具有所需内容的文件夹的路径。
我该如何解决?
openvr - 如何在不使用 steamvr(openvr) 跟踪的情况下显示表面?
没有跟踪时,头显会自动显示灰蓝色,无法显示需要的画面。我们开发的应用程序需要在没有跟踪的情况下运行,我该如何实现呢?
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 如何控制这些相机的变换?有没有办法禁用或覆盖这种行为?
谢谢你。
c++ - 如何在 C++ 中从 OSVR 使用?
我想从 OSVR 插件中使用,但我不知道它是如何工作的。
在 OpenVR 中,我每只眼睛都有一个帧缓冲区,当我在该缓冲区上写一些东西时,我会在眼镜中看到它们,并且我正在使用 HTC Vive。
但现在我不知道这些缓冲区在哪里以及如何更改 VR 眼睛内容,并且我正确安装了 OSVR 服务器和 OSVR Vive 插件,但即使是这个简单的示例也无法正常工作,而且我在 VR 中看不到任何东西:
有人知道它是如何工作的吗?