问题标签 [virtual-reality]

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 回答
804 浏览

opengl - OpenGL 中基于实例的 VR 渲染

我正在尝试使用实例化在 OpenGL 中使用 1 个绘制调用、2 个实例(一个用于左眼,一个用于右眼)进行 VR 渲染。然后,顶点着色器将左侧的顶点转换为 instanceID 0,右侧的顶点转换为 instanceID 1。我唯一需要更多的是用于自动硬件剔除/裁剪的每个实例视口。这在 directX 中是可行的,但在 OpenGL 中是可行的吗?

0 投票
1 回答
1070 浏览

javascript - ThreeJs 中的门户

嗨,有没有人能够在 ThreeJS 中制作门户类型的东西?

我想在我的 VR 论文中使用不可能的建筑,我一直在尝试制作一个小方形房子,当你透过门看时,你会发现房子里面是一个不可能容纳的大走廊在房子里。

我想通过在连接到另一个场景的门上制作一个“门户”来做到这一点,我尝试通过将相机渲染到像这个例子这样的纹理上来做到这一点(http://stemkoski.github.io/Three.js /Camera-Texture.html)并使用 .setViewOffset 尝试裁剪,但我只是迷路了。它不工作......

任何帮助将不胜感激;http://sanschaise.com/thesis是我目前拥有的..

0 投票
1 回答
303 浏览

ios - iOS - Unity 构建错误 - Durovis SDK

我刚刚购买了一个 iOS 开发者帐户,我想用 Unity3D 创建 iOS VR 应用程序。我知道 Google Cardboard SDK 不支持 iOS,所以我下载并尝试了 Durovis SDK。

导入 durovis 后.unitypackage,我创建了一个空构建,以便测试它是否通过 Xcode 构建。结果是当我从 Unity 构建设置中选择“设备 SDK”时 Xcode 无法构建,而当我选择“模拟器 SDK”时 Xcode 构建成功,但当然它在模拟器上而不是在我的设备上运行。

我对 Xcode 很陌生,所以在从 Unity 进行构建之后,我不知道是否需要从 Xcode 导入任何内容。任何帮助将不胜感激,因为我已经为 android 制作 VR 应用程序很长时间了,而且我最近决定尝试 ios。提前致谢

0 投票
1 回答
544 浏览

unity3d - Google Cardboard SDK 演示头部跟踪反转?

我将新的 Google Cardboard Unity 游戏升级到了新的 SDK,但现在头部跟踪被反转了:

相机是倒置的。甚至演示场景也是如此。

有没有人遇到过同样的问题?提前致谢!

0 投票
1 回答
407 浏览

c# - Google Cardboard 上的 Application.LoadLevel() 上下颠倒

使用 Application.LoadLevel(0) 重新启动我的 Google Cardboard 游戏时;我的 Google Cardboard 游戏开始颠倒了我的手机(在编辑器中很好,但有错误),并且没有任何输入工作(例如点击或拉动触发器)。

当调用 Application.LoadLevel(0); 在错误中它加载正常但给出了这个错误:

关闭场景时,有些物体没有清理干净。(你是否从 OnDestroy 生成了新的游戏对象?)

0 投票
1 回答
482 浏览

unity3d - 检测头显屏幕是否开启

我正在创建一个具有可选 VR 支持的应用程序,我首先检测是否检测到 HMD,如果检测到,则启用所需的菜单按钮。

然后我遇到了一个问题,当应用程序通过 direct-to-rift 模式启动时,它只能使用 Oculus 摄像头装置。默认的 Unity 相机只显示蓝屏,这意味着我无法在此模式下使用任何主应用程序。

这导致我创建了一个简单的 VR 菜单来启动仅在使用直接模式时显示的 VR 部分。

我通过使用来做到这一点

当使用直接或扩展模式时,或者当裂缝根本没有连接时,这可以正常工作。但是当 rift 以直接模式连接并且应用程序以默认可执行文件启动时(不是直接到 rift 的)。它仍然检测到 Rift 并且它处于直接模式,但我找不到检查 HMD 是否真的打开的方法,这意味着 VR 菜单在不应该被激活时被激活。

  • 有没有办法查看 Unity 是否真的在使用 rift 或者显示是否打开?

  • 当应用程序已经运行时,还有其他方法可以启动到裂谷吗?

  • 有没有办法查看用于启动应用程序的可执行文件?

0 投票
5 回答
33039 浏览

unity3d - 如何使用 Google Cardboard SDK for Unity 创建 VR 视频播放器

我刚刚下载了 Google Cardboard SDK 以实现统一。我很好,能够创建 VR 项目。设置很好,一切正常。

我是 VR 应用程序的菜鸟。刚刚进入 VR 应用程序。

我计划为安卓创建自己的支持 VR 的视频播放器,就像默认的 Google Cardboard Youtube 播放器一样。

任何人都可以建议我一个链接或者可以指导我开发这个应用程序。

0 投票
1 回答
898 浏览

javascript - 使用three.js,如何将EffectComposer与OculusRiftEffect、VREffect或VRRenderer集成?

使用three.js,类OculusRiftEffectVREffectVRRenderer允许程序员将他们的场景渲染到 Oculus Rift。

EffectComposer是另一个three.js类,它允许程序员组合多个不同的场景以由单个渲染器显示。

我的问题是,如何使用 Rift 显示EffectComposer的合成输出?

问题如下:

OculusRiftEffectVREffectVRRenderer类必须使用诸如 WebGLRenderer 之类的渲染器进行初始化。在渲染循环中,必须按如下方式调用该类,从而使场景显示在 Rift 上:

EffectComposer还必须使用诸如 WebGLRenderer 之类的渲染器进行初始化。在渲染循环中,必须按如下方式调用EffectComposer,从而使合成的场景由渲染器显示:

但是,无法使用OculusRiftEffectVREffectVRRenderer来代替WebGLRenderer来初始化EffectComposer

问题是如何将EffectComposer连接到 Rift 类之一进行渲染?

非常感谢!

0 投票
2 回答
891 浏览

android - Android NDK 应用程序中的头部跟踪

我有一个通过 OpenGL ES 显示渲染内容的 Android 应用程序。这不是 Unity 或任何其他引擎。它是一个自定义引擎,包含 NDK 中的所有相关代码部分。

现在我想让它适用于虚拟现实设备,如谷歌 Cardboard 和类似设备,将手机放入带镜头的外壳中。

如何从 NDK 内的智能手机传感器获取头部方向?可能需要陀螺仪和加速度计值?如何在 NDK 中获取这些内容以及如何将其转换为所需的头部方向?

谢谢!

PS:目前使用android-ndk-r10e,adt-bundle-windows-x86_64-20140702,jdk1.8.0_45,目标是Android-19。

0 投票
1 回答
923 浏览

android - Android 视频解码器仅在棒棒糖上不绘制到 gles 表面

简而言之,我将两个开源应用程序组合成一个新的 VR 应用程序,因此它只能在使用 GearVR 耳机的 Note 4 和 S6 上运行。我的应用程序适用于 kitkat,但棒棒糖上的视频是黑色的。这两个源应用程序都在棒棒糖上运行良好。

我有一个从 gl 纹理创建的表面:

这被放入一个 SurfaceTexture 中,该 SurfaceTexture 被放入一个 Surface 中,被传递一点,然后发送到视频解码器:

纹理被更新并绑定到表面并被渲染。

这在 kitkat 上完美运行。在棒棒糖上,视频完全是黑色的。

您可以在此处查看日志的差异(好的 kitkat 红色,坏棒棒糖绿色):
https ://www.diffchecker.com/lxxopmhc

对我来说,没有什么特别能提供信息的。
do not know color format 0x7fa30c04 = 2141391876我能找到的消息只是来自将解码器 ID 转换为名称的东西,不应该影响任何东西。另一个解码器没有给出这个消息,但也不起作用。)

向 MediaFormat 添加显式颜色格式,并在其他任何地方使用颜色格式和图像大小没有任何效果(只有黑屏,没有错误)

我可以在表面上锁定画布并绘制ARGB(255,0,255,0),屏幕变为绿色。

我创建了一个表面的子类,它记录了每个公共方法并将其传递给解码器,并且没有一个在 kitkat 或棒棒糖上被调用(除了我创建它时的初始化),工作与否,所以这根本没有告诉我.

进行视频解码器设置的代码来自 Moonlight,它在棒棒糖上运行良好:
github.com/moonlight-stream/moonlight-android

另一半是 Oculus Cinema,它使用 android.media.MediaPlayer 在表面上显示,并且在棒棒糖上运行良好。

所以我的问题是棒棒糖发生了什么变化或者我做错了什么,我该如何进一步调试这个问题?

我的代码在这里:
https ://github.com/GTMoogle/StreamTheater

更新 6/2:

尝试遵循http://bigflake.com/mediacodec/的 Q11 的建议来设置缓冲区位置和限制,但仍然没有输出,尽管我可能实施不正确。还照顾了一些贬低的电话,也没有效果。

更新:来自 dequeueOutputBuffer 的 BufferInfo 似乎总是有 8 的大小,0 偏移量,没有设置标志。还不确定健康的流是什么样子。