标签: aframe

将相机位置移动限制在特定3D对象的区域

我试图将相机位置移动限制为由3D对象/对象子项定义的特定区域.例如,如果我在海洋上有一个走道对象,我只希望我的用户能够在该走道上向前和向后移动摄像机.类似于Unity中的第一人称控制器导航网格但没有AI方面.

我会喜欢基于AFrame的解决方案,但如果有三个js解决方案,我不介意编写自定义组件.

谢谢!

three.js webvr aframe

6
推荐指数
1
解决办法
723
查看次数

Archilogic gltf模型无法加载到框架中

我在故障上编写了一个演示场景来测试我在a-frame中输出的gltf模型,但是我在控制台中遇到错误:

我的代码

<!DOCTYPE html>
<html>
  <head>
    <title>Basic Scene - A-Frame</title>
    <meta name="description" content="Basic Scene - A-Frame">
    <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-assets>
        <a-asset-item id="gltfDemo" src="https://cdn.glitch.com/a3c2afff-dcc6-4918-bb73-5716b35f39b0%2Fexport.gltf?1499844855169"></a-asset-item>
        <a-asset-item id="buffer_0.bin" src="https://cdn.glitch.com/a3c2afff-dcc6-4918-bb73-5716b35f39b0%2Fbuffer_0.bin?1499844851189"></a-asset-item>
        <a-asset-item id="buffer_1.bin" src="https://cdn.glitch.com/a3c2afff-dcc6-4918-bb73-5716b35f39b0%2Fbuffer_1.bin?1499844853034"></a-asset-item>
      </a-assets>
      
      <a-entity gltf-model="#gltfDemo"></a-entity>
      
      <a-sky color="#000"></a-sky>
      <a-light type="ambient" color="#445451"></a-light>
      <a-plane color="#050" rotation="-90 0 0" height="100" width="100"></a-plane>  
      <a-camera>
        <a-cursor color="#FAFAFA"></a-cursor>
      </a-camera>
    </a-scene>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

错误:

VM1762:1 Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at e.parse (GLTFLoader.js:68)
at GLTFLoader.js:32
at three.js:29160
Run Code Online (Sandbox Code Playgroud)

源文件: Glitch Fiddle包含源文件

我有一种感觉,我错误地将gltf导入故障或以错误的方式使用它.有谁能够帮我?

aframe gltf archilogic

6
推荐指数
1
解决办法
748
查看次数

如何在WebVR/A-Frame中收听Android Chrome上的点击事件?

我正在尝试在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中的错误吗?有没有解决方法?我只需要能够听按钮按下.

javascript android google-chrome webvr aframe

6
推荐指数
1
解决办法
489
查看次数

如何在 A-Frame 中为盒子的侧面分配不同的纹理

有没有办法为 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

谢谢!

webvr aframe

5
推荐指数
1
解决办法
1965
查看次数

如何使用 javascript 从 A 框架元素获取点击事件

onclick= function();更新:您可以在 HTML 中使用。

例如: <a-box onclick="myFunction()"></a-box>

我想用 javascript 从 A 框架元素(例如盒子)获取光标的单击事件,我该怎么做?

javascript dom-events aframe

5
推荐指数
1
解决办法
2万
查看次数

AR.js:如何通过单击按钮启用/禁用相机以及显示/隐藏 AR 内容

所有通过浏览器演示 AR.js AR 功能的示例和代码在网页加载后即可运行。不过,我想为用户提供一个选项,手动启动和停止扫描过程以及隐藏 AR 内容。

基本上,我想仅在用户单击网页上的按钮时加载 a-frame、AR.js 脚本和其他 a-frame html 元素。

请告诉我 AR.js 中是否有任何参数可以传递以表明用户启动相机/扫描/显示我们的内容的意图。


脚本版本:
A-Frame 版本:0.7.1(日期 18-10-2017,提交 #b9a751e)
三个版本:^0.87.0
WebVR Polyfill 版本:^0.9.36


javascript augmented-reality aframe ar.js

5
推荐指数
1
解决办法
2516
查看次数

使用AR.js扫描二维码并根据扫描值显示对象

在我的网络应用程序中,想要通过二维码扫描值来实现增强现实。

扫描二维码后,根据二维码值从服务器获取数据,并根据响应显示图像或对象。

我浏览过A-Frame 博客,能够使用 hiro/条形码显示示例对象,但具有静态值。我想通过扫描二维码使其动态。

如何使用 AR.js 和 A-Frame 来实现这一点?

javascript augmented-reality aframe ar.js

5
推荐指数
1
解决办法
5361
查看次数

Aframe 和 aframe-ar:在 div 中显示视频流而不是全屏

我正在使用aframe-ar,需要将视频流显示在与场景嵌入的同一div中。

我正在尝试使用默认场景:

<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;'>
 <a-marker preset="hiro">
  <a-box position='0 0.5 0' material='color: black;'></a-box>
 </a-marker>
</a-scene>
Run Code Online (Sandbox Code Playgroud)

渲染的盒子成功嵌入到周围div,但我的网络摄像头的视频流是全屏的,并放置在其他 html 元素后面。

我还尝试明确指定相机,但这没有帮助!

简而言之:我想让视频也嵌入到周围的环境中div

  • A 型框架版本:0.8.0
  • 平台/设备:Chrome/台式电脑

我怎样才能做到这一点?

aframe

5
推荐指数
1
解决办法
2515
查看次数

React NotFoundError:无法在“Node”上执行“insertBefore”:要插入新节点的节点不是该节点的子节点

当我在 React 中内置的 Aframe 资产管理器中更新新资产时,出现此 notFound 错误。

资产管理器组件的构建如下:

export class Assets extends PureComponent{

  render(){

    const {
      hiResPanoUrl,
      onHiResPanoLoaded,
      sceneThumbnails = [],
      guideThumbnails = [],
      videos = [],
      sounds = [],
      models = [],
      panos = [],
      images = [],
    } = this.props


    return (
      <a-assets>
        {createHighResolutionPanoAsset(hiResPanoUrl, onHiResPanoLoaded)}
        {createPanoAssets(panos)}
        {createSceneThumbnailsAssets(sceneThumbnails)}
        {createGuideThumbnailsAssets(guideThumbnails)}
        {createAudioAssets(sounds)}
        {createVideoAssets(videos)}
        {createModelAssets(models)}
        {createImageAssets(images)}
      </a-assets>
    )
  } 
Run Code Online (Sandbox Code Playgroud)

健全的资产是这样构建的

function createAudioAssets(sounds) {
  return sounds.map(sound => {
    const {url, id, preload} = sound

    if(!preload)
      return <audio key={id} {...{id}} src={url} crossOrigin='anonymous'/>
    return <audio …
Run Code Online (Sandbox Code Playgroud)

reactjs aframe

5
推荐指数
1
解决办法
3609
查看次数

Aframe with webpack - systems[name] 不是构造函数

在尝试与 webpack 一起使用时,我遇到了此错误。

我的 webpack 配置是:

const path = require("path");
const webpack = require('webpack');
const HtmlWebpackPlugin = require("html-webpack-plugin");

const nodeFallbacks = require("./nodeFallbacks");

const { WebpackManifestPlugin } = require("webpack-manifest-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");

const cwd = process.cwd();
const outputPath = path.join(cwd, "build");

module.exports = {
  mode: "development",
  devtool: "cheap-module-source-map",
  context: path.resolve(cwd, "./"),
  entry: {
    main: "./src/index.js"
  },
  output: {
    path: outputPath,
    publicPath: "/",
    pathinfo: false,
  },
  resolve: {
    extensions: [".ts", ".tsx", ".js", ".json", ".mjs"],
    fallback: {
      ...nodeFallbacks,
    },
  },
  module: { …
Run Code Online (Sandbox Code Playgroud)

webpack aframe

5
推荐指数
0
解决办法
249
查看次数