我有一个使用WebGL生成3D场景的Web应用程序.我想知道是否有可能使用Oculus rift显示这个场景?这有多难?
在 a-scene 中,我尝试在运行时更改我的相机位置。DOM 属性发生变化,但相机不会移动。
我会错过什么?
我的js代码:
document.querySelector('#myCameraPosition').setAttribute('position', '0 0 0');
我的场景:
<a-entity id="myCameraPosition" position="0 0 50">
<a-entity id="myCamera" camera look-controls keyboard-controls>
</a-entity>
</a-entity>
Run Code Online (Sandbox Code Playgroud) 我试图将相机位置移动限制为由3D对象/对象子项定义的特定区域.例如,如果我在海洋上有一个走道对象,我只希望我的用户能够在该走道上向前和向后移动摄像机.类似于Unity中的第一人称控制器导航网格但没有AI方面.
我会喜欢基于AFrame的解决方案,但如果有三个js解决方案,我不介意编写自定义组件.
谢谢!
我正在尝试在Android Chrome上收听点击事件(确切地说,从谷歌纸板中拉出磁铁),但如果设备进入VR模式,这似乎无效.我正在使用三星Galaxy S7进行测试:
JS:
window.addEventListener('click', function (evt) {
console.log("test")
});
Run Code Online (Sandbox Code Playgroud)
在三星内置的Android浏览器中,日志可以在VR模式内外打印.在Android Chrome中,只有在浏览器未处于VR模式时才会显示日志记录.
HTML:
<a-entity camera="userHeight: 1.6" restrict-position look-controls>
<a-entity cursor="fuse: true; fuseTimeout: 500"
position="0 0 -1"
geometry="primitive: ring; radiusInner: 0.02; radiusOuter: 0.03"
material="color: black; shader: flat">
</a-entity>
</a-entity>
Run Code Online (Sandbox Code Playgroud)
我正在使用A-Frame ver 0.7.0,但这个问题也可以通过使用本机WebVR API重现.
我认为画布可能正在消耗点击事件,所以我尝试将eventlistener直接添加到Canvas.这也行不通.
这是Chrome中的错误吗?有没有解决方法?我只需要能够听按钮按下.
我正在尝试调整现有的 Three.js 项目以与 WebVR 配合使用。我已经取得了不错的进展——我可以在 VR 中环顾场景,但我无法将相机位置从它产生的初始位置移开(看起来接近0,0,0,似乎有一个预定义的位置)userHeight被考虑在内)
一旦我调用,renderer.vr.setDevice( vrDisplay )似乎就创建了一个新相机,并且我的场景使用的现有相机不再使用。我想继续使用该相机,或者至少继承它的大部分属性。
我注意到有一个renderer.vr.getCamera()方法(链接到源),但我还没有找到任何如何使用它的示例或文档(或者我是否应该使用它)。奇怪的是,这个方法接受 acamera作为参数,这对于 a 来说有点不直观getter。看看代码,似乎应该调用该函数setCamera,这让我有点困惑。我尝试调用该函数并传入我现有的函数,camera但没有效果。
任何帮助表示赞赏。我正在使用 Three.js R91 在最新版本的 Android/Chrome 上使用 Google Daydream View
有没有办法为 A-Frame 中的盒子几何体的每一侧分配不同的纹理,而无需从 6 个独特的平面构建盒子?
<a-box></a-box> <!-- How to apply a cubemap? -->
Run Code Online (Sandbox Code Playgroud)
更具体地说,如何在 A-Frame 中制作立方体贴图?这是three.js中立方体贴图的一个例子:http ://threejs.org/examples/#webgl_materials_cubemap
谢谢!
我试图在一个简单的 A-Frame WebVR 应用程序上禁用检查器,但没有成功。
尝试使用并禁用按键Ctrl+ Alt+I使用 JavaScript。但是,检查员仍在加载。
有谁知道怎么做?
我的场景很简单:
<html>
<head>
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
</head>
<body>
<a-scene>
<a-assets><img id="render" src="back.png"></a-assets>
<a-sky src="#render"></a-sky>
</a-scene>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我想以编程方式隐藏和显示我嵌入的 aframe 场景。当网站加载时场景是隐藏的,但是我只能让它在这样的延迟下工作:
window.onload = function () {
setTimeout(function() { document.getElementById("scene-page").setAttribute("hidden", ""); }, 500);
}
Run Code Online (Sandbox Code Playgroud)
当我不添加此延迟时,即使再次将其设置为“可见”,场景仍然处于隐藏状态。具体来说,画布的大小似乎被调整为 0px:
<canvas class="a-canvas a-grab-cursor" data-aframe-canvas="true" width="0" height="0" style="width: 0px; height: 0px;"></canvas>
Run Code Online (Sandbox Code Playgroud)
使其可见的唯一方法是调整浏览器窗口的大小,然后似乎调整画布的大小。
有没有更好的方法可以毫不拖延地隐藏场景?
我正在使用Three.js开发WebVR应用程序.在其中我试图获得相对于房间的站立位置.
如何使用VRStageParameters.sittingToStandingTransformThree.js中的矩阵将我的相机从坐姿转换为站立空间?
我正在使用 NAF 在 A 帧中构建多用户体验,并且我有一些包含场景不同点的音乐曲目的位置音频。我试图弄清楚是否有可能让所有连接的用户同时收听音乐。它们的位置非常重要,因为我需要场景中的多个音频源。目前,当您进入体验时,曲目就开始了,因此每个人在进入场景时都会从一开始就听到它们。这是我现在正在使用的文件:https : //glitch.com/~indigo-roomy-supermarket
我尝试使用广播组件,但没有成功。我想尝试使用抽搐流并隐藏视频的解决方法,尝试将其投影到原始对象,但到目前为止还不起作用(只是设法将其附加到场景上的 div,我可以隐藏视频但音频永远不会是定位的)。这是我尝试过的文件(未联网,但应该相同):https : //glitch.com/~twitchtest-01 我知道可以使用以下选项将 vimeo 连接到框架:https:/ /github.com/vimeo/aframe-vimeo-component 但音频本身不是定位的,所以它并没有真正解决我的问题(另外,我不知道它是否适用于 vimeo live)。
如果有人知道这样做的方法,如果您能分享您的智慧,我将不胜感激。非常感谢!