写点什么

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

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

关注

评论

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

【重磅发布】蚂蚁动态卡片,让 App 首页实现敏捷更新

蚂蚁集团移动开发平台 mPaaS

ios android 前端 mPaaS

杭州AI开发者Meetup报名开启!

百度大脑

ModStartCMS模块化建站系统 v3.3.0 组件功能升级,事件触发增强

ModStart开源

优化| 手把手教你学会杉数求解器(COPT)的安装、配置与测试

杉数科技

线性规划 求解器 优化求解器 混合整数规划 杉数科技

Guitar Pro教程之如何设置MIDI键盘

懒得勤快

Deep dive #2:API 与 Python SDKs 详解

Zilliz

Python 数据库

大咖说|对话路特斯科技副总裁李博:如何看待智能驾驶的未来?

大咖说

阿里巴巴 智能 汽车 无人驾驶 路特斯

如何通过 draftjs 设计留言框

全象云低代码

前端 低代码 留言 draftjs 留言框

Go 语言入门很简单:读写锁

宇宙之一粟

读写锁 Go 语言 2月月更

了解 DevOps,必读这十本书!

禅道项目管理

DevOps

虎符交易所2022年首届交易大赛 最高瓜分5万USDT奖励

区块链前沿News

虎符交易所

Android技术分享| 【你画我猜】Android 快速实现

anyRTC开发者

音视频 移动开发 互动白板 Andriod 你画我猜

一个关于 += 的谜题

AlwaysBeta

Python 编程语言

“pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘

华为云开发者联盟

Python pip 批处理 scripts pip install

oracle数据库审计用什么数据库审计软件好?可以用什么方式部署?

行云管家

数据库 IT运维 数据库审计

百度飞桨大企业开放创新中心联合赋能计划启动!助力浦东产业智能化升级

百度大脑

乘冬奥之风:北京2022年冬奥会用户信息获取偏好专题分析

易观分析

冬奥会用户分析

产品经理:「点这里,我要跳到任何我想跳的页面」—— 解耦提效神器「统跳路由」

百瓶技术

ios 前端 客户端 路由

前所未有的 Milvus 源码架构解析

Zilliz

「前端CI/CD系列」第二篇:如何用建木CI更新七牛云CDN证书

Jianmu

CDN 自动化运维 七牛云 建木CI

极致用云,数智护航

阿里云云效

阿里云 DevOps 运维 云原生 运维安全

为什么我的 ORDER BY create_time ASC 变成了 order by ASC

LigaAI

Java 数据库 sql 程序员

掌握这些招数,你也能写出HR眼中的高分简历

Tom弹架构

求职面试

火山引擎举办视频云科技原力峰会,发布面向体验的全新视频云产品矩阵

字节跳动视频云技术团队

音视频

web前端培训:vue3源码中细节知多少

@零度

Vue 前端开发

Hudi Bucket Index 在字节跳动的设计与实践

字节跳动数据平台

数据库 字节跳动 数据湖 Hudi

云效发布策略指南|滚动、分批、灰度怎么选?

阿里云云效

云计算 阿里云 云原生 持续交付 发布策略

混合云管平台哪家强?采购时候需要注意什么?

行云管家

混合云 云管平台

Milvus 图形化管理工具 Attu 来袭!

Zilliz

数据库

边缘计算场景下Service Mesh的延伸和扩展

华为云原生团队

开源 边缘计算 边缘技术 边缘 边缘云

移动开发er,10万奖金等你来战!

Speedoooo

活动 前端开发 移动开发 黑客马拉松 黑客松

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