我有DK2,我正在研究一个VR项目.这个项目使用FirefoxNightly.我已经下载并安装了WebVR Enabler Add-On

从http://mozvr.com/downloads/得到这个
我还从https://developer.oculus.com/downloads/下载并安装了最新的SDK和Runtime for Windows.

我也在Oculus配置实用程序中获取此功能(当插入oculus时):

然而,我已经在另一台带有Windows的计算机上安装了所有内容,就像在这台Windows计算机上一样,它清楚地显示Oculus Rift正确连接但头部跟踪仍无法正常工作.
编辑:我只是尝试将oculus裂缝连接到这个"第二"电脑(戴尔笔记本电脑),现在它甚至不识别眼裂谷.仍然没有头部追踪.
编辑2:我尝试在第三台PC上安装所有内容但没有成功.我在Oculus配置实用程序上获得"服务不可用"
我的显示模式设置如图所示.

我究竟做错了什么?有没有我忘了做的一步?奇怪的是,我在Mac上运行的项目没有任何问题.是的,在Windows上我可以看到屏幕,oculus rift但头部检测不存在.
这篇reddit帖子讨论了防火墙问题,但是我尝试了在防火墙失效但没有成功的情况下的oculus rift.
这个reddit帖子通过重新安装所有内容并更新某些驱动程序来讨论可能的修复方法.但是我一步一步地遵循此修复程序而没有成功.
这个oculus论坛帖子讨论了这个问题,一个人提出了一个适合他/她的解决方案.我没有成功地跟着修复.
如果您需要特定翻译,请通知我.这是法语.

Rift Display Mode 这听起来像我们很多人在使用0.5和0.6版本时遇到的问题.电缆没有问题,但是运行时本身.直接模式完美无瑕地工作,在扩展模式下,裂缝仍然显示图片,但运行时没有任何跟踪等.希望它能在下次更新中修复.
我正在开发一个项目,将一些渲染卸载到我为Unity编写的本机插件中,以便利用实例化和其他高级图形功能.我正在为跨平台版本开发它,但我使用Mac,因此主要使用OpenGL进行测试.此时,插件仅向屏幕中心呈现四边形,并以十六进制值着色.该插件在一个空白的Unity项目中按预期工作,但只要我将其合并到我的Oculus项目中,它就会开始表现不正常.
在Rift中,插件的几何绘制两次,一次在两只眼睛上伸展,另一次只在右眼的范围内绘制.此外,我应用于几何体的任何原始颜色都会丢失,几何体似乎会拾取周围的颜色; 在带有红色文字的黑色屏幕上,几何体将大部分为黑色,并且有一些红色渗透到线条中.加载绿色地形后,插件绘制的几何图形变为绿色.
下面是在空白的Unity项目中绘制的几何图形的屏幕截图,其中没有其他内容:

以下是我的Oculus Rift应用程序上绘制的相同几何图形的屏幕截图:

这是我正在渲染的顶点的创建(三个坐标和颜色):
Vertex verts[4] =
{
{ -0.5f, 0.5f, 0, 0xFF0000ff },
{ 0.5f, 0.5f, 0, 0xFFff0000 },
{ 0.5f, -0.5f, 0, 0xFF00ff00 },
{ -0.5f, -0.5f, 0, 0xFFff0000 },
};
Run Code Online (Sandbox Code Playgroud)
这是绘图函数,称为插件中的每个帧:
// OpenGL case
if (g_DeviceType == kGfxRendererOpenGL)
{
//initialize model view matrices
glMatrixMode (GL_MODELVIEW);
float modelMatrix[16] =
{
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
};
glLoadMatrixf (modelMatrix); //assign our matrix to the current MatrixMode
//initialize projection matrix
glMatrixMode (GL_PROJECTION);
projectionMatrix[10] = 2.0f; //tweak projection matrix …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用unity5 在oculus gear vr中构建我的项目,但是当我部署我的应用程序时,我得到以下错误
thread priority security exception make sure the apk is signed
Run Code Online (Sandbox Code Playgroud)
我甚至创建了密钥库
任何建议为什么我可能会在齿轮vr中遇到这个错误
当我第一次在mrdoob/three.js·GitHub网站上看到这个例子(webgl_geometry_minecraft_oculusrift)时,我感到非常兴奋.毫无疑问,它非常棒!
但我很好奇,如何将此效果应用于其他示例?所以我尝试在"webgl_interactive_cubes"中实现这个效果.但是,实验结果比预期差.
我的问题是我无法准确地将光标对准特定的立方体以使其改变颜色,这似乎与投影功能有关?然后我像这样调整了屏幕宽度系数
window.innerWidth*2
在整个计划中.但仍然无法改善这个问题.
我的问题摘要:
如果我想在任何例子中应用Oculus Rift效果,我该怎么办?顺便说一句,我只添加了以下代码
effect = new THREE.OculusRiftEffect( renderer );
effect.setSize( window.innerWidth, window.innerHeight );
// Right Oculus Parameters are yet to be determined
effect.separation = 20;
effect.distortion = 0.1;
effect.fov = 110;
Run Code Online (Sandbox Code Playgroud)
在初始化块init();和最后加入effect.render( scene, camera );在render();
我很好奇知道如何
var vector = new THREE.Vector3( mouse.x, mouse.y, 1 );
projector.unprojectVector( vector, camera );
作品.为什么需要传递参数1?如果我换mouse.x到了怎么办?mouse.x * 2
需要使用双显示器才能完全呈现这种效果?
注意:我的英语不是很好,如果我说的不清楚,请问你的疑惑,我会尽快回复.
这是我的DEMO链接:
我的文件夹: …
我正在研究oculus Rift失真着色器的OpenGL实现.着色器通过获取输入纹理坐标(包含先前渲染的场景的纹理)并使用失真系数对其进行变换,然后使用变换的纹理来确定片段颜色来工作.
我希望通过预先计算失真并将其存储在第二个纹理中来提高性能,但结果实际上比直接计算慢.
直接计算版看起来基本上是这样的:
float distortionFactor(vec2 point) {
float rSq = lengthSquared(point);
float factor = (K[0] + K[1] * rSq + K[2] * rSq * rSq + K[3] * rSq * rSq * rSq);
return factor;
}
void main()
{
vec2 distorted = vRiftTexCoord * distortionFactor(vRiftTexCoord);
vec2 screenCentered = lensToScreen(distorted);
vec2 texCoord = screenToTexture(screenCentered);
vec2 clamped = clamp(texCoord, ZERO, ONE);
if (!all(equal(texCoord, clamped))) {
vFragColor = vec4(0.5, 0.0, 0.0, 1.0);
return;
}
vFragColor = texture(Scene, texCoord);
}
Run Code Online (Sandbox Code Playgroud)
其中K是作为制服传入的vec4. …
我正在尝试使用深度传感器为Oculus Rift开发套件添加位置跟踪.但是,我遇到了产生可用结果的操作序列的问题.
我从16位深度图像开始,其中值(但不是真的)对应于毫米.图像中的未定义值已设置为0.
首先,我通过更新遮罩图像来排除它们之外的某些近距离和远距离.
cv::Mat result = cv::Mat::zeros(depthImage.size(), CV_8UC3);
cv::Mat depthMask;
depthImage.convertTo(depthMask, CV_8U);
for_each_pixel<DepthImagePixel, uint8_t>(depthImage, depthMask,
[&](DepthImagePixel & depthPixel, uint8_t & maskPixel){
if (!maskPixel) {
return;
}
static const uint16_t depthMax = 1200;
static const uint16_t depthMin = 200;
if (depthPixel < depthMin || depthPixel > depthMax) {
maskPixel = 0;
}
});
Run Code Online (Sandbox Code Playgroud)
接下来,由于我想要的功能可能比整个场景平均值更接近相机,我再次更新掩码以排除任何不在中值的特定范围内的内容:
const float depthAverage = cv::mean(depthImage, depthMask)[0];
const uint16_t depthMax = depthAverage * 1.0;
const uint16_t depthMin = depthAverage * 0.75;
for_each_pixel<DepthImagePixel, uint8_t>(depthImage, depthMask,
[&](DepthImagePixel & depthPixel, …Run Code Online (Sandbox Code Playgroud) 我有一个使用WebGL生成3D场景的Web应用程序.我想知道是否有可能使用Oculus rift显示这个场景?这有多难?
我正在使用Oculus Go测试一些AFrame页面,但是无法使触控板在场景中移动。我使用的是AFrame的主版本,显然支持Oculus Go控制器。实际上,此代码例如:
<!DOCTYPE html>
<html>
<head>
<script src="https://rawgit.com/aframevr/aframe/cf15c15/dist/aframe-master.min.js"></script>
</head>
<body>
<a-scene anti-alias>
<a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9" shadow></a-box>
<a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E" shadow></a-sphere>
<a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D" shadow></a-cylinder>
<a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4" shadow></a-plane>
<a-sky color="#ECECEC"></a-sky>
<a-entity laser-controls="hand: right"></a-entity>
<a-entity oculus-go-controls x-button-listener></a-entity>
<a-entity camera look-controls wasd-controls position="0 1.6 0"></a-entity>
</a-scene>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在图像中显示了控制器,但显然并没有像我在台式机版本中使用wasd那样对使用的触控板产生影响(相对于遍历场景而言,效果很好)。
因此,总而言之,我如何在AFrame场景中使用Oculus Go触控板在其中移动,就像在桌面使用wasd键一样?(或者,也许AFrame仍不支持此功能?)
[我知道这类似于AFrame Oculus Go Controller文档吗?,但我对移动方式更感兴趣。]
我目前正在 Unity 上为 Oculus Quest 耳机开发 3d VR 游戏(v 2019.3.6f1)
每当我在 Unity 编辑器中启动游戏(按“播放”按钮)时,我都会收到以下错误:
Unable to start Oculus XR Plugin.
Failed to load display subsystem.
Failed to load input subsystem.
Run Code Online (Sandbox Code Playgroud)
XR 插件已安装并更新到最新版本 (1.2.0):
这些错误的原因可能是什么?预先感谢您的回答。
我在他们的文档中没有看到这个。有谁知道(或有 ETA)我们是否可以以编程方式打开/关闭直通相机模式?