2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Facebook 发布 React VR,使用 React 进行虚拟现实开发

  • 2017-04-25
  • 本文字数:1016 字

    阅读完需:约 3 分钟

早在 2014 年 Facebook 就布局虚拟现实(VR)技术,并以 20 亿美元收购了沉浸式虚拟现实技术厂商 Oculus。近日 Facebook 又在虚拟现实领域有了新动向,基于其核心的开源前端框架 React 发布了一个虚拟现实网页应用的开发框架 React VR ,进一步践行了其一次学习,到处适用(Learn once, write anywhere)的口号。

过去的 2016 年被誉为虚拟现实的元年,国内外的诸多厂商,如 Oculus HTC 暴风等公司都发布了各自的虚拟现实产品,但是经过上半年的急速发展,下半年却进入了该行业的资本寒冬,而任天堂发布的增强现实(AR)手游Pockemon Go 的大获成功,又纷纷把大家关注的目光拉向了与真实世界交互性更强的增强现实技术。Facebook 在这个虚拟现实寒潮来临之际推出React VR,无疑是想通过简化VR 开发层面的技术难点,来带动虚拟现实的后续发展。

在网页端开发虚拟现实应用的一大挑战,就是其页面的刷新率,如果帧数低于60 帧每秒,就无法给用户带来足够好的用户体验,在Oculus Rift 上,这一指标更是建议达到90 帧每秒。要在单线程的JS 运行环境中达到这点,对性能的要求就比较苛刻。React VR 借鉴了React Native 中将运行和渲染进行分离的架构。它会在web worker 中运行React 的代码,再通过异步桥接将图像渲染到界面上,这样就可以更快地捕捉到用户动作并反馈到图像上,从而减少用户的眩晕感。在React VR 中还引用了诸多React Native 的概念,甚至可以说React VR 本身就是建立在React Native 上的一种平台。它沿用了React Native 的打包功能,以及诸多组件,如View、Text 等。这为有React Native 经验的开发人员减少了不少学习成本。

React VR 的内部是通过包装流行的 JS 3D 引擎 Three.js 来实现的。Three.js 内部通过 WebGL 来将应用展现到页面上,因此可以在支持 WebGL 的浏览器上浏览 React VR 的应用。而在虚拟现实设备上,其使用的是 WebVR 的 API。鉴于目前该规范还在开发中,目前仅支持 Oculus Rift 和三星 GearVR 等设备。

值得注意的是,目前已经存在一些虚拟现实网页应用的开发框架。Mozilla 的开源项目 A-Frame 就是一个相对成熟的例子。React VR 在与 React 的无缝集成上占有优势,这为具备 React 基础的开发人员减少了一定的学习成本,但是最终是否能够后来者居上还需要拭目以待。


感谢刘振涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-04-25 19:004013
用户头像

发布了 41 篇内容, 共 16.4 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

如何通过 NFTScan 捕获早期 NFT 项目投资趋势

NFT Research

区块链 NFT

贾斯特里尼&布鲁克斯葡萄酒,用品质征服世界

联营汇聚

世界元素多元化发展,法国名酒贾斯特里尼&布鲁克斯受推崇

联营汇聚

MMEval正式支持OneFlow评测

OneFlow

机器学习 深度学习 算法

极客时间运维进阶训练营第九周作业

9527

超越10倍开发者

俞凡

研发效能

YOLOv5全面解析教程②:如何制作训练效果更好的数据集

OneFlow

人工智能 深度学习 数据集

【Java基础】Win10如何配置jdk环境变量(配置java环境变量)

No8g攻城狮

Java、 java 并发 Java IO

2022-12-23:portainer是docker的web可视化工具。如果根据docker部署去写yaml,默认local是k8s,而不是docker,这不符合需求,需要修改yaml。请问部署在

福大大架构师每日一题

云原生 k8s k3s 福大大

跨平台应用开发进阶(四十)自定义插件及引用

No Silver Bullet

uni-app 跨平台应用 12月月更 自定义插件

LED显示屏行业真的需要8K分辨率吗?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

基于随机森林算法进行硬盘故障预测

华为云开发者联盟

人工智能 机器学习 华为云 12 月 PK 榜

linux运维常用脚本

@下一站

12月日更 12月月更 shell脚本 程序代码

Spring单例和静态方法

hasWhere

贾斯特里尼&布鲁克斯为何被称为葡萄酒典范?

联营汇聚

华为云CodeArts Req需求管理工具,7大特性限时免费体验

华为云开发者联盟

需求管理 开发 华为云 12 月 PK 榜

架构误区系列9:强扭的「复用」

agnostic

270年经典传承,贾斯特里尼&布鲁克斯——红酒中的高端代表

联营汇聚

还在手动发早安,教你用java实现每日给女友微信发送早安

华为云开发者联盟

Java 开发 代码 华为云 12 月 PK 榜

ChatGPT进化的秘密

OneFlow

人工智能 机器学习 深度学习 GPT

Java中Map集合的三种遍历方式

@下一站

Java 程序设计 map 12月日更 12月月更

【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结

HarmonyOS SDK

HMS Core

Android开发环境搭建

芯动大师

android 开发环境搭建 Androidstudio

架构实战营模块二 _ 作业

原城

架构实战营 #架构实战营 「架构实战营」

基于K-means聚类算法进行客户人群分析

华为云开发者联盟

人工智能 机器学习 华为云 12 月 PK 榜

VUE 前端文本输出为超文本

HoneyMoose

什么是DevSecOps?理解DevOps安全性

DevOps

极客时间运维训练营第九周作业

好吃不贵

Facebook发布React VR,使用React进行虚拟现实开发_Meta_周元昊_InfoQ精选文章