在Firefox.png中,文件的背景颜色与前面的任何内容相同。如果在空间中移动相机时背景为白色,则透明区域为白色。另外,如果两个PNG直接在对方前面,我会得到闪烁的效果。我在windows上使用最新版本的Firefox。我应该使用.gif文件而不是.png文件吗 A-Frame的主分支公开material.alphaTest属性,您可以将该属性设置为0.5以解决此透明度问题
如果希望继续使用0.5.0,解决方法是:
AFRAME.registerComponent('alpha-test',
我在safari mobile中测试a-frame项目时遇到此错误:
加载资源失败:服务器响应状态为404(未找到)
加载联机DPDB时出错
此错误不会显示在桌面上,仅显示在手机上。它还会导致页面刷新,这一点都不好
我尝试用谷歌搜索错误,但我在github上只找到了这一页:
然而,似乎没有人能解决这个问题。我在控制台中做了一些挖掘,这似乎是webvr-polyfill.js的一个问题
有人知道会发生什么吗?谷歌的乔丹·桑特尔(Jordan Santell)刚刚发布了一份公关,更新polyfil
我的目标是用oculus go记录运动,并在台式计算机上重放这段记录。目前,我可以录制、保存录制并在oculus go上重放录制。但是,当我希望在计算机上重播时,不会发生任何事情,因为A-frame足够聪明,可以看到没有连接控制器:
“以下控制器组件只有在检测到在Gamepad API中找到并被视为已连接的控制器时才会激活。”(Aframe.io)
解决这个问题的最好办法是什么 嗨,埃里克,恐怕我不能回答你,但我很好奇你是如何在旅途中录制的,我所有的尝试都失败了。。当我进入虚拟现实模式时,我看
Aframe似乎在不改变文档的情况下改变了它处理鼠标事件的方式。你能帮我触发mouseenter和mouseleave事件吗
我的代码在这里,在glitch框架中运行:
(单击“show live”(左上角)以在新选项卡中运行,单击“remix to edit”(右上角)以更改代码)
现场
此时会出现一个圆形光标,并带有一个框。如果单击并拖动屏幕,可以将光标移动到框上。如果随后单击,则长方体将以y轴旋转方式设置动画
但是,只需将光标移动到框上,就可以使用“mouseenter”和“mousel
我在A帧中工作,我需要在3d对象的顶部显示滚动文本。根据初步研究,html css在a框架中不起作用。滚动文本仍然可以完成吗?如何在a帧中使用css?
谢谢,Html可以嵌入到框架中(但不是内置的)。
superEggbert使用此组件
滚动文本有点复杂(不要认为使用框架htmlembed组件会自动获得它,但我还没有使用它,所以不确定)
下面是一个教程,介绍如何在框架中创建虚拟现实博客。
底部是如何制作一大块滚动文本
还值得注意的是,您可以在aframe场景的顶部使用屏幕空间html。这不是
我有一个相当普通的例子,它是一个框架,点击它可以改变实体的颜色。在桌面上,一切正常,但在OculusGo上则不然。如何使事件与oculus go上的相同桌面光标一起工作,并确保它在所有其他控制器上工作
<a-assets>
<a-mixin id="cube" geometry="primitive: box"></a-mixin>
<a-mixin id="cube-hovered" material="color: magenta
我试图引入一个Aframe系统,通过在场景上叠加一个网格来防止摄影机移动到场景的某些部分,并防止移动到标记为已满的网格单元中
现在我只检查一维(z轴)的相机是否在球体附近。当检测到摄像机位于不应位于的网格单元中时,当前代码将摄像机移回上次允许的位置
组件、系统注册
AFRAME.registerSystem('gridsystem', {
init: function () {
// start with 1d
this.grid = Array(2
我正在尝试使用alpha着色器创建视频,我在three.js中使用了alpha着色器,但在将其转换为帧时遇到了问题。我看到的是,着色器一开始没有正确应用,如果我应用标准着色器,然后重新选择alphaMatte着色器,它将显示视频帧,但不会显示视频播放。在哪里设置material.needsUpdate,或者如何在开始时正确初始化着色器
以下是着色器代码供参考:
AFRAME.registerShader('alphamatte', {
schema: {
src: {
标签: Aframe
virtual-realitygoogle-cardboardwebvr
我正在尝试制作一个带有框架的虚拟现实应用程序,但有一个错误,物体在到达屏幕左侧之前就会消失,这真的让人分心。有人知道如何解决这个问题吗?我知道这是因为程序不再显示视野外的对象以节省处理能力,所以答案可能是增加边缘周围仍显示对象的边距。我知道这不是因为我的任何代码,因为它发生在任何一个框架程序上。而且,它似乎只发生在右眼。什么版本的U帧?根据我的脚本标签,它是0.8.0版本。
我已经看到了这个答案:
。。。但是,由于querySelector只查找第一个元素,因此无法确定如何编写适用于多个对象的类似函数
我正在尝试创建一个包含5-8个对象的场景,每个对象只能单击一次。单击对象时,计数器将增加1。使用queryselect或all:
var targets = querySelectorAll('a-box')`
for (var i = 0; i < targets.length; i++) { // Add event listeners... }
作为旁
基线基本上告诉文本组件Y位置是指文本本身的底部、中心还是顶部(即单词“test”),而不是父实体。您仍然需要更改文本位置以将其移动到顶部(在本例中,将Y位置设置为1.5,即平面高度的一半)。通过设置baseline:top可以确保多行文字向下流到平面上,而不是向上溢出
您可以从文本组件文档及其附件中看到中所示的不同属性
我想在同一台计算机上显示带有a帧的本地视频。但是,在浏览器上,没有显示任何内容,屏幕是黑色的(似乎没有渲染)。
我只是对360视频源代码做了一点修改,我是一个新的Web开发人员。所以请帮帮我,告诉我哪里错了。
我的源代码是:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>360 Video</title>
<m
我已经从六个平面实体创建了一个骰子实体。但是,当我单击并拖动骰子实体时,不会移动该骰子,只会拖动单面。
这可以在link上亲自尝试,而不是从六个平面创建一个长方体,您应该创建一个长方体并使用一种材质为您渲染骰子面。您可以使用:
AFRAME.registerComponent('dice-texture'{
init:函数(){
var box=this.el.getOrCreateObject3D('mesh');
var loader=new THREE.cubeTextReloader()
这个问题是特定于框架库的
我想知道,无论用户如何移动/环视,如何使文本始终固定在屏幕上
例如,我正在开发一款aframe VR游戏,我想在屏幕左上角显示分数。因此,无论用户从哪个角度看,或者移动到哪里,他都能够在屏幕上看到自己的分数
希望我的问题足够清楚。您必须将文本设置为摄影机的子对象:
<a-camera>
<a-text value="Hello, World!" position="0 0 -1"></a-text>
</a-camera>
例如,启用按钮位于右下角。我需要按钮和文本出现,并在事件触发时固定在屏幕上。类似于画布和按钮在unity中的工作方式 将按钮设置为摄影机的父级。然后他们会被锁定在摄像机前。
使用“位置”组件移动按钮,按钮将在其局部坐标空间中移动。
父/子关系是通过嵌套实体创建的,如下所示
<a-scene>
<a-box>
<a-sphere></a-sphere>
<a-light></a-light>
</
标签: Aframe
virtual-realitywebvrreact-360
我正在检查web vr框架,并寻找一个可用性来更改左眼和右眼的投影设置/相机设置。这是可能的还是由浏览器自动完成的
我检查了mozilla和react vr的A-Frame框架,但找不到这样的选项。摄像头投影由浏览器通过提供,并且特定于每个耳机。这可能是你不想改变的
WebVR现在在mdn上标记为已弃用。它将被将成为标准的webXR取代。是否会有新版本的a-Frame支持webXR?a-Frame在版本0.9.2中已经支持WebVR和webXR。FWIW,在写这篇文章的时候,还没有一款浏览器提供WebXR。WebVR仍然是未来3-6个月的目标API
我无法在任何移动浏览器上查看a-sun-sky组件。太阳位置设定器也会随着太阳从相机下方经过而反转。此组件与移动设备兼容吗?
不过,它在PC上工作得很好。
我还没有在手机上测试过,所以它可能在手机上不起作用。不用担心……作为一个骗子,我已经拍摄了一张全景截图,并加载了img
我试图在一个框架中加载一组非常复杂的GLTF模型。
我的问题很简单;我的目标是尝试在一个独特的场景中加载大约900万个gltf模型
我的想法是根据相机距离,在GLTF模型中结合不同的细节级别,并且只加载相机可见的GLTF。如果不是的话,问题是资产被加载到内存中,而我的浏览器最终由于内存消耗而挂起
这在一个帧中可能吗?请注意,您应该能够创建一个包含数万个甚至数十万个多边形的高性能场景。但在A-Frame或任何WebGL渲染器中,无法同时加载数百万个不同的glTF模型
假设您只想显示尽可能多的模型,
我有一个非常入门级的Javascript,并为一个框架构建组件,我试图弄清楚为什么下面的内容不起作用
我试图创建可以用数据输入设置的点,并用曲线连接它们。到目前为止,这就是我所拥有的:
<a-assets>
<script id="datapoint" type="text/nunjucks">
<a-entity position="{{ point }}">
<a-box></a-box&g
我有一个简单的AR.js场景,应该在hiro标记上显示一个可点击的白色框。单击后,框的颜色应变为红色。事实上,框是可点击的,颜色也在变化,但它的位置和可点击区域的位置不一样。在我的例子中,这个区域在盒子下面。下面是一个代码示例:
注册表组件('clickhandler'{
init:函数(){
this.el.addEventListener('click',()=>{
this.el.setAttribute('material','color:red;');
});
},
});
但是,
我正在使用a-frame js创建平面漫游。我想自动移动相机。目前我正在使用鼠标进行移动。有人能帮我吗?要在A帧中进行tweening,您可能需要使用A-animation系统:
<a-entity camera position="0 1.6 0">
<a-animation attribute="position"
dur="2000"
easing="linear"
to="0 1.6 -
我只是想知道是否有一个内置的功能来重置头部旋转。
我见过的大多数虚拟现实SDK(Oculus、Carboard等)都有一种方法可以将当前旋转设置为默认的正向旋转。
有没有一种简单的方法可以在a帧中执行此操作?您可以在相机周围添加一个包装实体,并在事件中,将实体包装绕Y轴的旋转设置为相机绕Y轴的旋转为负值
下面是@jhsu使用shake.js的一个示例(但在React中):
import React from 'react';
import Camera from './Camera';
impo
家具可以有多种材质,例如:
<a-entity id="shelf" io3d-furniture="id:10344b13-d981-47a0-90ac-f048ee2780a6"></a-entity>
现在这个架子上有一堆材料:
> console.log(document.getElementById('shelf').components['io3d-furniture'].availableMaterials.Wood)
< [ Oak st
我试着做一个绳状的约束,约束就像弹簧一样反弹回来
我正在尝试使用约束组件:
<a-box id="other-box" dynamic-body />
<a-box constraint="target: #other-box;" dynamic-body />
但它似乎在固定距离下工作。如何制作弹簧?CANNON.js
有它自己的。其构造函数有三个基本选项,如下所示:
new CANNON.Spring(bodyA, bodyB, { // bodies a
标签: Aframe
virtual-reality360-virtual-reality
我正在做一个a-frame项目,需要我在360虚拟现实中定位几个3d对象。传统上,这是通过以下方式完成的:
<a-entity position="x y z"></a-entity>
但我需要的是使用偏航和俯仰来定位3d对象。到目前为止,我还没有支持此工作流的a-frame
是否可以使用偏航和俯仰在a帧3d空间中定位3d对象?使要定位的对象成为另一个对象(父对象)的子对象。将子对象放置在父对象坐标系中的(5,0,0)处。旋转父对象(即更改偏航和俯仰),子对象的位置
我想展示一个带边框的图像。使用可以得到一个带有图像的平面。
我不知道你是否可以用一个框架(我不这么认为),但你可以用三个JS来做,制作一个包含每个长方体面的材质的材质数组,并将其应用到长方体网格
const loadManager = new THREE.LoadingManager();
const loader = new THREE.TextureLoader(loadManager);
const materials = [
new THREE.MeshBasicMaterial(
Im使用一个元素显示360°光球
我的问题是,我必须在光球层中放置一些元素,这些元素必须像“标记”一样工作;但我不知道如何计算这些元素的x-y-z位置
例如,假设我有一张尺寸为4096x2048的图片,我想在1691349处放置一个简单的框
我知道球体的半径(5000),我知道盒子的大小(我可以选择一个方便的大小),我只知道如何检索球体内“像素位置”(1691349)的位置
有什么提示吗?如果你想计算a-sky球体表面上的位置,我有一个方法。从摄影机的位置生成一条光线,这条光线将击中球体。这个生
是否可以在我的场景中添加如下2D图像。我将(版本0.5.0)与结合使用
我试着在inspector工具(ctrl+alt+I)中观察,有一个选项可以添加这个,但是没有找到任何可以添加图像组件的选项
首先将平面实体添加到场景中,然后将图像作为纹理附加到场景中
有关更多详细信息,请参阅A-Frame文档:
我写了一个a-Frame0.8.2项目
Vive控制器可以添加到场景中,并且交互事件可以很好地工作
但未显示Vive控制器的模型
红线是Vive控制器的激光器
我尝试添加带有额外实体的模型,但它不起作用
<a-entity id="viveControllerRight" vive-conrols="hand: right" debug_tool>
<!-- Defining the URL inline. Not recommended but may be mor
目前,我们可以在AFRAME.registerShader中将顶点/片段着色器指定为字符串。如何将着色器作为单独的文件进行维护,以便不必在长字符串中进行编码?在a帧中无法自动引用外部着色器文件。它们现在一定是一根绳子。这就是三个.js着色器的定义方式,在js文件中定义它们可以使共享和其他人更容易使用,而无需引用多个文件
我们能做的就是使用构建工具
在.glsl文件中定义顶点和片段着色器
myVertex.glsl
myFragment.glsl
myAFrameShader.js
这样编写着色
我的场景中有一个文本元素和一个天空框。当场景初始化时,我希望文本对其位置设置一次动画
<!-- scene elements -->
<a-scene coogee2006-scene embedded style="width:100%;height:400px;">
<a-assets>
<img
id="coogee2006"
src="/assets/vr/sydney-co
嗨,我真的很难找到答案,我已经做了一个基本的3D环境,用户可以四处移动。然而,在GearVR内部,默认情况下,它不会显示为您可以在环境中四处移动,而只是旋转以查看固定轴
使用GearVR上的轨迹板或蓝牙控制器是否可以实现这一点?我没有尝试最新的更新,但请查看此组件-
GearVR的移动约束集与mobile/polyfill相同。常见的选项包括通过凝视或轻触移动进行远程传送的A帧
有没有办法添加凝视按钮?请注意,为了获得更好的体验,必须有一个小进度条,以了解用户必须关注它多长时间
我查看了inspector工具的内部,但没有发现任何有效的工具
在中,我发现了如何添加单击控件。这与我制作凝视事件的方式相同吗?您可以通过使用光标组件的fuse属性凝视来选择项目。检查此处的A-Frame文档:
这将触发项目上的单击事件,因此您还需要在项目上为单击事件设置侦听器。您可以使用光标组件的fuse属性通过注视项目来选择项目。检查此处的A-Frame文档:
这将触发项目上的单击事件,
我的文字如下:,
avavtxt=“abc;def\n”
分号会导致多个错误消息,如上面的错误消息
有人知道它背后可能的原因吗?您是否正在尝试使用文本组件
如果是,则不能像这样添加分号文本值:
<a-entity position="1 0 0" text="value:abc; def\n;color:#000"></a-entity>
<a-text position="0 1 0" value="abc; def\n" color="#000">&l
是否有人知道动画组件属性,我会将其添加到场景中的模型中,使其“旋转”360°(例如,汽车在车展或其他场合的圆形平台上旋转)?理想情况下,会将其添加到该列表中,并希望能够使循环为真或假:
<a-entity gltf-model="#id" scale="0.5 0.5 0.5" rotation="0 90 0" animation__scale="property: scale; dir: alternate; dur: 200; easing: easeInSine; loop: fa
我有两个重叠的a-sky元素。第二个定位在z=-1000(摄像机不可见)。在这个设置中,如果我将第一个a-sky元素的不透明度设置为0.5,我将看到第二个a-sky元素
以下代码不起作用。(需要使这项工作正常进行。)
但这种方法是有效的
skyEl.setAttribute('src','image url');
skyEl.getObject3D("mesh").material.transparent = true;
skyEl.getObject3D("mesh").material.o
我已经建立了一个简单的虚拟现实场景使用a帧。我已经在Android的chrome上测试了这个场景,它工作正常。我为此做了两件事
安装谷歌虚拟现实服务
在chrome上启用web vr标志
问题陈述:firefox for android是否支持web虚拟现实
我已经在我的android设备上下载了最新版本61.00,并试图访问场景,但一旦我进入VR模式并在硬纸板中看到,行为与使用chrome时相同,但没有启用web VR标志
任何提示都将受到高度赞赏
谢谢,
AkkiAndroid版Firefo
这个项目是使用A-Frame和AR.js制作的
在这个项目中,我有10个不同的标记,我必须知道一个标记何时出现和消失。为此,我创建了下一个组件:
AFRAME.registerComponent("marker-controller", {
tick: function() {
if ( document.querySelector("#marker1").object3D && document.querySelector("#marker1").object3D.
我使用的轨道控制是Kevin Ngo k-frame套装的一部分:
通过这些控件,可以围绕场景旋转摄影机,从而创建围绕视点旋转场景的效果。
不幸的是,当进入VR模式时,组件会自动切换到场景中心的第一人称外观控件
对于我的项目,我希望保留动态观察透视图和动态观察控件,即使是在虚拟现实中。我认为,这可以通过在检查是否输入VR后禁用部分代码来实现
el.sceneEl.addEventListener('enter-vr', () => {
if (!AFRAME.utils.de
我想从我的右侧发出声音。因此,我尝试使用下面的A帧声音组件:
<a-sound src="src: url(Buzz.mp3)" autoplay="true" loop="true" position="-20 0 0"></a-sound>
我使用-20坐标来确保声音来自我最右侧。然而,无论我如何/在哪里定位声音,它都不会改变声音来源的感知。我是否正确使用该组件?以下是整个身体:
<body>
<a-scene sound="src:
我发现Diego Marcos的回复是“仅供参考,您不必再次导入TWEEN.js。您可以通过AFRAME.TWEEN:new AFRAME.TWEEN.TWEEN(动画)”访问与a-Frame捆绑的版本,但我无法使用Frame 0.9.0版本。a-Frame从TWEEN移走,现在使用。它被曝光在一幅动画中
标签: Aframe
8thwall-xr8thwall-web
我在一个新的第八面墙项目上看到了“你就快到了!”的信息,但是我在设备上使用了谷歌浏览器
以下是关于Glitch的项目代码:
这是第八面墙项目的唯一ID:
附件是一个手机截图
在屏幕截图中显示的URL是“”,请注意http。确保您是通过https连接的,这是浏览器访问摄像头所必需的。是的,就是这样!问题解决了
我想要的是,在a帧上,当我说话时,我的3D模型头像也在说话
按照这个指南,我用这个资源创建了3D模型头像
但是这个gltf 3D模型一直在说话。我需要交互式三维模型说话时,我说话
假设我的语音检测已经实现了
有人能回答这个问题吗?动画混音器组件有两种方法应该会有所帮助
playAction()将播放
stopAction(),它将停止
假设我的语音检测已经实现了
那么您的代码可能如下所示:
const modelEntity = document.querySelector("[
我想用WebVR记录我自己
我应该使用什么工具从WebVR会话中捕获视频?请参阅
您可以录制屏幕的一部分或整个显示器,它可以处理从网络摄像头合成视频和从计算机+麦克风获取音频源。常用于类似twitch流媒体请参阅
您可以录制屏幕的一部分或整个显示器,它可以处理从网络摄像头合成视频和从计算机+麦克风获取音频源。常用于类似twitch流媒体
这里的a-frame完全是初学者,已经完成了教程场景,现在我正在设置我的第一个使用.obj模型的程序
使用远程服务器,感觉这是重要的信息
我看到一些关于模型没有出现的问题,但我的问题是显示坏了,我不知道从哪里开始修复它
这是它在windows 3D builder中的外观:
这就是我的项目中的外观(以粉色平面为背景以形成对比):
以下是html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf
我想让daydream控件在my AFrame应用程序中工作,这简直是疯了。我不确定是我的代码还是我的浏览器。。。有没有人有可以使用daydream控制器的示例?这应该很简单。只需使用官方:
您是否使用官方的白日梦控件?提醒:Android版Chrome浏览器中的WebVR API支持origin试用计划。在中启用WebVR和Gamepad扩展chrome://flags/This 这个例子对我很有用,谢谢。事实证明,在控制器出现之前,我必须进入和退出“VR”几次,因为某种原因。。。
<a
我对gltf模型的一个问题非常感兴趣。如果尝试覆盖gltf的材质,动画将停止。我认为这与覆盖的更新功能和动画混合器的勾号功能有一定的关系,但我自己还没有解决这个问题
我希望有人能告诉我为什么会发生这种情况。
下面是一个活生生的例子:
非常感谢。这是代码本身。注释部分是材质的替代部分。如果取消注释,将加载新材质,但动画将停止:
AFRAME.registerComponent("fefo", {
init: function() {
我遇到了一个无法正确设置动画触发事件的问题
我有一个光标
当它指向一个特定的实体时,它应该为自己设置动画
动画属性中“startEvents:fusing”的属性值对以及其他变体(如“fuse”和“fused”)不起作用
我的a-frame版本是0.9.2
<a-camera position="0 3 0"
wasd-controls
look-controls>
<!-- Cursor (NOTE: having is
我试过了,其他的都很好,除了一件事:在youtube上,我看到模型硬钉在任何标记上(hiro或无标记图片),而我的模型总是飞到标记或图片附近
若我按位置参数将其向下移动到标记处,无论如何,当我稍微弯曲手机(相机)时,它会飞起来
为什么在youtube上所有的模特都固定在更硬的标记上?我做错了什么
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 16 页