「如何实现流动式软件发布」线上课堂开课啦,快来报名参与课堂抽奖吧~ 了解详情
写点什么

Mozilla 公布 WebVR API 标准草案

2015 年 7 月 21 日

随着信息技术的迅速发展,虚拟现实(Virtual Reality,VR)技术在近些年不断完善,其应用范围也变得十分广泛。为了搭建逼真的虚拟场景,VR 技术一般都需要用到大量精美的图像和复杂的动作。因此,大部分的VR 应用都借助于复杂的Unity 引擎构建。为了降低VR 技术的使用难度,WebVR 技术诞生。该技术使得开发者只需要利用 JavaScript WebGL 等基础的 Web 技术即可创建 VR 场景。作为世界著名的非营利组织, Mozilla 在 WebVR 方面做了大量工作。之前,该组织已经开始实现头部跟踪方面的 WebVR API,用来跟踪 VR 设备的运动情况,增强 VR 场景的互动性。近期, WebVR API 的标准草案正式出炉,供相关人士进行讨论。接下来,本文就对该草案内容进行简要介绍。

首先,该草案定义了访问基于 Web 的传感器和头戴式显示器(Head-Mounted Display,HMD)等虚拟现实设备的标准。一般而言,VR 应用都需要底层硬件能够提供高精度、低延迟的数据以保证上层应用的用户体验。之前,VR 设备的厂商都是根据自身设备的特点,提供各自定义的接口供上层使用。然而,这些接口既增加了应用开发者的难度,又很难保证精度和延迟。因此,WebVR API 这一统一的标准被提出。

目前,该标准草案仅支持两个VRDevice 设备的变量。这两个变量分别表示了一个硬件设备中其中一部分组件的一个特殊能力。以一个典型的Oculus Rift 的HMD 为例,它可以包含HMDVRDevice 和PositionSensorVRDevice 这两个变量。其中,HMDVRDevice 用来描述设备的光学特性(包括视场和瞳孔间距等);PositionSensorVRDevice 则用来描述HMD 的位置和方向。这两个变量中的PositionSensorVRDevice 可以单独存在,用来表示单个控制器(无显示设备)的位置等信息。草案指出,如果未来有新的硬件设备(如眼球追踪系统等)出现,标准可以再逐渐添加额外的VRDevice 变量。

作为最主要的内容,草案详细描述了用来支持实时访问的文档对象模型(Document Object Model,DOM)的接口和功能。这包括了VREye、VRFieldOfView、VRPositionState、VREyeParameters、VRDevice、HMDVRDevice、PositionSensorVRDevice 和Navigator Interface extension。其中,针对VRPositionState 和VREyeParameters 等接口,标准详细解释了各个属性和方法的含义,并给出了一些使用案例。

WebVR 作为将虚拟现实场景嵌入到网页的技术,已经开始广泛应用到电影、医药、建筑等行业。通过以上可以看出,WebVR API 的标准草案为统一接口的定义提供了很好的参考。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015 年 7 月 21 日 07:531879
用户头像

发布了 268 篇内容, 共 103.9 次阅读, 收获喜欢 19 次。

关注

评论

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

产品训练营 第三次作业

Wangyunnfei

ICE暴雪正悄悄崛起

DT极客

玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定

YourBatman

Module IntelliJ IDEA Project Structure

Idea工具的各种查找快捷键

小马哥

IntelliJ IDEA 七日更 2月春节不断更

利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?

JackTian

Python 数据分析 数据可视化 化妆品 2月春节不断更

Linux-Lab 入门:使用开发板

贾献华

嵌入式 Linux Kenel 开发板 arm boot

【mybatis】- MyBatis基础篇

双木之林

用RabbitMQ了好几年之后,我总结出来5点RabbitMQ的使用心得

四猿外

MQ RabbitMQ 消息队列

即日起 Jira、Confluence 正式停售本地版,中国客户将无法购买

万事ONES

项目管理 开发者 研发管理 团队协作 CTO

Alibaba高并发业务秒杀系统落地实战文档,已实践某大型秒杀场景

Crud的程序员

Java 架构 高并发

SpringCloud 从入门到精通15---Sentinel搭建和服务监控

Felix

程序员成长第一篇:机会与趋势

石云升

28天写作 2月春节不断更 机会与趋势

《我想进大厂》之Zookeeper夺命连环9问

艾小仙

zookeeper

极客时间产品训练营第三周作业

云随心

产品 作业 产品训练营

华为18A架构师共享:Netty+Redis+zookeeper+高并发技术栈

996小迁

redis zookeeper 架构 Netty 高并发

HTTPS是怎么保证数据安全传输的?

云流

面试题 HTTP

关于自己的一个梦(飞翔)

Yuchen

挖矿区块链_什么是挖矿 带你详细了解挖矿基础知识

v16629866266

华为云FusionInsight助力宇宙行打造金融数据湖新标杆

华为云开发者社区

数据湖 云原生 存储 FusionInsight 华为云

托管节点池助力用户构建稳定自愈的 Kubernetes 集群

阿里巴巴云原生

Docker 容器 运维 云原生 k8s

即构自研海量有序数据网络MSDN,构建全球可靠的多云通讯链路

ZEGO即构

数据库表数据量大读写缓慢如何优化(4)【分库分表】

我爱娃哈哈😍

数据库 架构·

官宣了!Apache ECharts 毕业成为 Apache 软件基金会顶级项目!

百度Geek说

百度 基金会

MySQL安装教程&问题解决

Mars

MySQL 运维

太全了!字节总监总结240道算法LeetCode刷题笔记

Crud的程序员

Java 架构 算法

使用pgBackRest并行归档解决wal堆积问题

PostgreSQLChina

数据库 postgresql 开源 开源社区

EXCEL数据如何去重? Python:这事我比你熟

智分析

Python

后疫情时代,企业如何实现数字化增长?

字节跳动 Kubernetes 云原生 容器云

说说常常被研发忽略的原型模式

后台技术汇

28天写作 2月春节不断更

Kafka基础简介

架构精进之路

kafka 七日更 28天写作 2月春节不断更

anyRTC2020年 年终总结

anyRTC开发者

音视频 WebRTC RTC sdk

Mozilla公布WebVR API标准草案-InfoQ