问题标签 [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.
c++ - 使用 C++ 的 Oculus Rift VR
我有 Oculus Rift VR,我从他们的网站下载了 SDK。我正在使用 Visual Studio 2010 Pro,并且我做了他们在 WIKI 页面 Minimal Oculus Application Tutorial 中提到的所有内容。
我添加了 lib 文件和他们所说的所有内容。但是当我添加行时我遇到了很多错误#include "OVR.h"
它没有找到他们在这个文件中的所有头文件。即使我做了他们两次提到的所有事情!
有什么帮助吗?
c++ - Oculus Rift VR - 示例项目错误
我从 Oculus Rift 网站下载了 SDK,并尝试在示例文件夹中运行项目。当我构建项目时,我收到一条错误消息
尽管他们在链接器中添加了 lib 文件。还有其他人在他们的示例项目中遇到此错误吗?
matlab - 模型生成的路径输出到 VR 信号扩展器 Simulink
我有一个 matlab 代码,想转换成合适的 Simulink 模型。但是我是 Simulink 新手,只有 Matlab 经验。请指导我转换为合适的模型。
我按照以下步骤从 matlab 的 Simulink中设计参考信号生成模型的模型
问题是如何从参考设置步骤 1,以及如何将输出提供给VR 信号扩展器,以便在输出生成的路径中移动VR Ball 。?
matlab - simulink中x轴的圆形模型与虚拟现实
我在 Simulink 中设计了一个圆形路径模型,但是我想沿X 轴旋转物体,例如球,但默认情况下它沿Y 轴旋转。如何通过VR SIGNAL EXPANDER或在虚拟现实中编辑来做到这一点? 我想模拟一个螺旋形的东西,其中物体从底部开始向上移动。 我有模型:
*
一个时钟连接到Sin和Cos的两个三角函数,它通过取Sin值和时钟值并与Cos类似,将它们的两个生成信号与第三个时钟信号复用,以增加其循环路径。我不能使用VR SIGNAL EXPANDER,因为有 3 个多路复用信号不支持,而且最终的转换需要 3 个信号,所以没有 VR SIGNAL EXPANDER它可以工作,但只能沿Y-axis工作。
*
我的虚拟现实 wrl:
matlab - 缩放 matlab 画布
matlab如何放大或缩小画布?我的画布包含一个虚拟现实世界,并希望在 GUI matlab 中集成放大/缩小和视点
有没有办法做到这一点?
unity3d - 与 Oculus Rift 统一的视口
我已经设置了一个窗口以水平分布在 2 个显示器上。我有 2 个视口。第一个是标准相机。我已将其设置为窗口宽度的一半,使其为 1920x1080(填充第一台显示器)。我遇到的问题是我想让 Oculus 视口占用第二个显示器)。但是,我找不到阻止 oculus 视口占用整个窗口的设置。
有人可以帮忙吗?
用于澄清的图像
它目前的样子:
我希望它看起来像什么:
我猜它在脚本中的某个地方,但我看不到视口的绘制位置。
任何帮助,将不胜感激。
3d - 虚拟现实:深度队列中的冲突词
我正在寻找一个描述 3d 投影深度队列中冲突的词。
例子:
用户与 3D 显示器的距离为 2 米。3D 显示器投射距离用户 50 厘米的球的图像。如果现在将一个物理对象(如纸)插入用户和显示器之间的中间(1 米距离),那么投影的球应该在对象的前面。但由于纸挡住了显示,它就在球的前面。
所以“正确的”深度队列应该是(球,纸,显示器),但用户看到的是(纸,球,显示器)。
深度队列中破坏 3D 幻觉的冲突的名称是什么?
ps:我认为深度队列是正确的术语,如果我错了,请纠正我。
android - Android VR Toolkit - HeadTransform getHeadView 矩阵表示
我从适用于谷歌纸板的 Android VR-Toolkit 开始。我使用谷歌网站上的示例: https ://developers.google.com/cardboard/get-started
我是openGL的新手,并试图弄清楚系统如何表示这些值。例如 HeadTransform.getHeadView 设置一个 4x4 矩阵并根据文档:
表示从相机到头部的变换的矩阵。头部原点定义为两只眼睛之间的中心点。
我的问题是什么代表矩阵中的每个值(每个单元格)?
glsl - 使用 GLSL/HLSL 全屏着色器修复视频投影仪变形的方法
我在 VR 领域工作,投影屏幕的良好校准非常重要,并且由于难以调整天花板安装和其他硬件特性,我正在寻找一种全屏着色器方法来“校正”屏幕的形状。
大多数 2D 或 3D 引擎允许通过在可以自定义方式变形或渲染的四边形上重绘渲染结果来应用全屏效果或变形。
第一个想法是使用顶点着色器来偏移这个屏幕四边形的角,因此图像被变形为四边形(就像投影仪上的硬件梯形失真),但这不足以满足要求(这种方法是在math.stackexchange上用现场小提琴演示进行了描述)。
在我的目标情况下:
- 图像变形在大多数情况下必须是非线性的,因此需要 9 或 16 个控制点才能进行更精细的调整。
- 图像的边界不是直的(桶或枕头效应),因此即使控制点很少,图像也必须在两者之间以弯曲的方式扭曲。否则,变形将在每个控制点的限制之间形成可见的线性接缝。理想情况下,知道 3x3 或 4x4 网格的每个控制点的校正位置,方法是为在全屏四边形上绘制的图像的纹理坐标定义连续变换:
u,v => 更正_u, 更正_v
你可以在这里找到一个插图。
- 我见过一些在 2D 或 3D 中工作的 FFD 算法,它可以让图像或网格像橡胶一样“软”变形,但对于实时着色器来说,实现似乎很繁重。
- 我还想到了一个基于权重的变形,就像我们在 squeletal/soft-body 动画中所做的那样,但似乎不确定是否正确地加权控制点。你知道可以帮助我解决问题的方法、算法或一般方法吗?
- 我看到了一些基于网格的变形,比如新的 Oculus Rift DK2 需要它自己的变形,但是大多数 2D/3D 引擎在标准中只使用由 4 个顶点组成的单个四边形。
javascript - 实现卡尔曼滤波器以平滑来自 deviceOrientation API 的数据
我正在尝试平滑从 deviceOrientation API 获得的数据,以便在浏览器中制作 Google Cardboard 应用程序。
我将加速度计数据直接传送到 ThreeJs 相机旋转中,但我们在信号上得到了很多噪声,导致视图抖动。
有人建议使用卡尔曼滤波器作为平滑信号处理噪声的最佳方法,我在 gitHub 上找到了这个简单的 Javascript 库
https://github.com/itamarwe/kalman
然而,它在文档上真的很轻。
我知道我需要通过提供向量和 3 个矩阵作为参数来创建卡尔曼模型,然后更新模型,再次使用向量和矩阵作为时间范围内的参数。
我还了解卡尔曼滤波器方程有几个不同的部分:当前估计位置、卡尔曼增益值、来自方向 API 的当前读数和先前估计位置。
我可以看到 3D 空间中的点可以描述为向量,因此任何位置值(例如估计位置)或当前读数都可以是向量。
我不明白的是如何将这些部分转换为矩阵以形成 Javascript 库的参数。