写点什么

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:003516
用户头像

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

关注

评论

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

细节爆炸!腾讯用13个案例实战讲明白MySQL,没想到这么全

做梦都在改BUG

Java MySQL 数据库

美团架构师熬夜整理:Netty权威指南2.0版+英雄传说项目

做梦都在改BUG

Java Netty

面向万物智联的应用框架的思考和探索(下)

HarmonyOS开发者

HarmonyOS

matlab实现通信原理

袁袁袁袁满

三周年连更

下载LORA模型

IT蜗壳-Tango

三周年连更

数据导向下制造业的生产效率、交易效率提升办法

镭速

软件测试/测试开发丨Pytest 参数化用例

测试人

软件测试 自动化测试 测试开发 pytest

ShareSDK 钉钉平台注册指南

MobTech袤博科技

手把手教会你 | 网络编程

TiAmo

socket通信 服务器编程 单用户模式

服务网格(Service Mesh)是什么?

乌龟哥哥

三周年连更

Istio数据面新模式:Ambient Mesh技术解析

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

深入理解shims-vue.d.ts和declare module

Lee Chen

JavaScript

Markdown基础语法教程

进基的小张

学习 markdown markdown语法 markdown编辑器 基础

《AGI时代的破局之道 | 社区征文》

后台技术汇

三周年征文

Java实现坦克大战1.0

timerring

Java

Java多线程基础

timerring

Java

async/await详解

不叫猫先生

JavaScript async/await 三周年连更

前端配置化表单组件设计方法 | 京东云技术团队

京东科技开发者

前端 表单设计 配置化 企业号 5 月 PK 榜

谁说前端已死,低代码没干掉我,chatGPT又如何!| 社区征文

花花

三周年征文

Flink应用开发

阿泽🧸

flink 三周年连更

使用 NutUI 搭建「自定义业务风格」的组件库 | 京东云技术团队

京东科技开发者

京东云 企业号 5 月 PK 榜

MySQL一次大量内存消耗的跟踪

GreatSQL

路由器的后台管理界面的IP地址为什么都是192.168开头?

wljslmz

网络 三周年连更

去哪儿网企业级监控平台-Watcher

Qunar技术沙龙

去哪儿网 监控平台

开源项目LuckyDraw分享&介绍

进基的小张

小程序 开源 开发 GitHub、 项目上线

【问题排查篇】一次业务问题对 ES 的 cardinality 原理探究 | 京东云技术团队

京东科技开发者

ES 京东云 企业号 5 月 PK 榜

使用MASA全家桶从零开始搭建IoT平台(二)设备注册

MASA技术团队

IoT mqtt

机器人SLAM,三维人工智能的核心技术!

博文视点Broadview

以最大速度将数据迁移至AWS S3存储

镭速

1分钟学会、3分钟上手、5分钟应用,快速上手责任链框架详解 | 京东云技术团队

京东科技开发者

Netty 京东云 企业号 5 月 PK 榜

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