zoukankan      html  css  js  c++  java
  • AR.js 使用 JavaScript 在浏览器里实现 VR 效果

    AR.js - 使用 JavaScript 在浏览器里实现 VR 效果

    原文链接: github.com

    我正在努力使网络 AR 成为现实。这个存储库是我发布代码的地方。随时联系我@jerome_etienne事情仍在快速发展,我们达到了良好的状态。所以我想发布这样人们可以尝试并从中获得乐趣:)

    • 非常快:即使在手机上也能高效运行。我 2 岁的手机上 60 fps
    • 非常 Webby:这是一个纯 Web 解决方案,因此无需安装。基于three.js + jsartoolkit5的完整javascript
    • 免费和开放:它是完全开源和免费的!
    • 纯标准:它适用于任何带有webglwebrtc 的手机

    截屏

    在手机上试试

    只需 2 个简单的步骤即可完成 :)

    1. 将您的 android 浏览器定向到此 url
    2. 将您的手机指向一个 hiro 标记。

    你完成了!它将打开一个读取手机网络摄像头的网页,定位一个 hiro 标记并在其顶部添加 3d。这是hiro marker 的一个例子您也可以打印标记,也可以将其显示在桌面屏幕上,如下所示。

    截屏

    地位

    • 在three.js级别是主要的。它运行良好且高效
    • a-frame 组件 - 它导出<a-marker>标签。它变得真正易于使用。它允许做 three.js 扩展所做的事情。这是一些幻灯片aframe-artoolkit
    • webvr-polyfill:它有点​​工作 - 仍在进行中

    例子

    三.js示例:

    框架示例:

    WebVR-polyfill 示例:

    文件夹

    • /three.js是与纯three.js一起使用的扩展
    • /aframe是与a-frame一起使用的扩展
    • /webvr-polyfill 是 WebVR polyfill,因此您可以轻松重用您的#AR / #VR 内容

    许可证

    这是所有开源jsartoolkit5 在 LGPLv3 许可和附加许可下。我在 AR.js 存储库中的所有代码都在 MIT 许可下。:)

    有关法律细节,请务必查看jsartoolkit5 许可证AR.js 许可证

    更改日志

    CHANGELOG.md

    电话支持

    它适用于任何带有 WebGL 和 WebRTC 的浏览器这是原则。所以android可以工作,window mobile可以工作。不幸的是,它不适用于IOS。safari IOS safari 目前不支持 WebRTC。苹果目前正在为此努力。

    这是这个项目的开始。以下是一些初始性能数据,仅供参考。这在很大程度上取决于您的 3d 的重量以及您对 AR.js 的调整,因此您的里程可能会有所不同。也就是说,他们给出了一个粗略的想法。

    站在巨人的肩膀上

    因此,我们展示了现在可以在手机上进行 60fps 的基于网络的增强现实。这肯定很棒,但我们是怎么到这里的?站在巨人的肩膀上!多亏了其他人的辛勤工作,我们今天才能达到神话般的 60fps AR。所以我要感谢:

    • three.js 是一个很棒的库,可以在网络上做 3d。
    • 工具包!多年做增强现实的发展和经验
    • emscripten 和 asm.j!因此我们可以将artoolkit c编译成javascript
    • 铬浏览器!谢谢你这么快!

    多亏了他们所有人,我才能尽自己的一份力量:将性能从高端手机的 5fps 优化到 2 年旧手机的 60fps。

    在很多人完成了所有这些工作之后,我们拥有它!我们有一个基于网络的增强现实库,速度足够快,适用于移动设备。现在,很多人的口袋里都有一部功能强大到可以进行网络 AR 的手机。我认为这种性能改进使 web AR 成为现实。我都退出了:)

    如何发布?

    # replace REVISION to the proper version
    atom three.js/threex-artoolkitcontext.js
    
    # Rebuild a-frame and webvr-polyfill
    (cd aframe && make minify) && (cd webvr-polyfill && make minify)
    
    # Commit everything
    git add . && git commit -a -m 'Last commit before release'
    
    # tag the release 
    git tag 1.0.0
    
    # push the tag on github
    git push origin --tags
    
    # update the a-frame codepen 
    open "https://codepen.io/jeromeetienne/pen/mRqqzb?editors=1000#0"
    

      

  • 相关阅读:
    SRM 551 div2
    HDU_4390 Number Sequence (容斥原理)
    HDU 多校联合第五场
    HDU 多校联合第六场
    POJ 2057 The Lost House (经典树形dp)
    Lucas定理
    HDU 4385 Moving Bricks (状态dp+贪心)
    HDU 多校联合第三场
    当最短路变成二维 _!
    POJ 1848 (一道不错的树形dp)
  • 原文地址:https://www.cnblogs.com/ygunoil/p/15792809.html
Copyright © 2011-2022 走看看