写点什么

使用 HTML5 在浏览器中开发虚拟现实业务

  • 2015-01-29
  • 本文字数:1940 字

    阅读完需:约 6 分钟

SFHTML5 小组(San Francisco HTML5 User Group)组织的一场会议中,与会者们的讨论焦点围绕着两个主题:使用 HTML5 技术——如 WebGL、WebVR、Three.js 和 GLAM——创建虚拟现实体验,以及 Firefox 和 Chrome 对这些技术提供支持的当前开发进展。这一切背后的目的在于,将整个互联网带入虚拟现实(以下简称 VR)的世界中。

Tony Parisi 是 VRML 和 X3D ISO 标准的创造者之一,在会上他介绍了 WebVR ——它结合了虚拟现实和 Web 技术。目前, VR 软件基本上都属于游戏式,在创建和操纵图形方面做了大量的工作。大部分已有的 VR 应用都借助于 Unity 引擎构建,然而精通该引擎的人却并不多。Parisi 的理念是降低该领域的门槛,让所有开发者都能够使用 JavaScript 与 WebGL 这样的基础 Web 技术创建 VR。 Three.js 是一个 JavaScript 类库,用来在 WebGL 中渲染 2D/3D 图像。借助 Three.js,开发者将更易于渲染 VR 场景,代码量仅为对应的 WebGL 版本的 1/10 到 1/3。Parisi 目前还在致力于创建另一个不同的解决方案 GLAM ,这是一门用来创建 3D Web 内容的声明式语言。它将令 VR 渲染变得更加简单。使用 GLAM 渲染一个旋转的 3D 立方体,需要引入 glam.js 并这样使用 Tag:

复制代码
#photocube {
image:url(../images/flowers.jpg);
rx:30deg;
}

Parisi 还介绍了,Chrome(实验版本,Blink 源码分支)和Firefox( nightly )都开始实现头部跟踪方面的 WebVR API,这些 API 可以用来跟踪 VR 设备的运动情况(目前支持 Oculus Rift,稍后也会增加对其他设备的支持),并支持对 WebGL/CSS3 内容进行 3D 立体渲染。目前已有一个更简单的可用方案,由 Google Cardboard 、智能手机和一个 VR 应用(例如 Cardboard )组成。该应用使用智能手机的摄像头和运动传感器,在手机浏览器中使用 WebGL 生成活动的立体图像

来自 Mozilla 的 Firefox OS 首席 UX 设计师 Josh Carpenter,在他的演讲“ WebVR 的 UI/UX 设计”中,展示了结合 Firefox 使用 Oculus Rift 的效果,并针对开放的“网络化(Webby)”虚拟现实体验总结了一些他所期望的特性:

  • 通过链接,无缝且安全地从一个地方切换到另一个地方的能力。包括对导航链接、缩放、滚动、后退、填写信息等方面的控制。简而言之,让用户在使用 VR 头戴设备的时候能够获得类似于浏览器的体验。
  • 易于开发。为了实现这一点,需要开发一些新的工具。“JavaScript-Three.js-WebVR-WebGL- 浏览器”这条工具链尚处于新生阶段。
  • 能够在任何设备上获得 VR 体验。
  • 能够将当今世界中的网站自动化转换为 VR 体验。这意味着在访问老式网站的时候,应该同样能够获得 3D VR 体验。
  • VR 商品化:更多的设备、嵌入性以及更好的性能。

Carpenter 还演示了一些早期阶段的工作,这些工作使得普通网站带入 VR 世界而不必要求这些网站升级其的内容。他还创建了一系列在不同 VR 站点之间切换时使用的转场效果。在设计VR 浏览器方面,Carpenter 看到了许多潜在的可能性,因为目前我们已经可以使用具备空间动画能力的360 度Canvas。

来自Google 的WebGL 和WebVR 开发者Brandon Jones,在他的演讲 Web 浏览器的 VR 内部实现中,提供了一些用于 VR 应用方面的代码样例,以介绍在渲染 VR 场景时所需的必要条件。在刚开始对站点进行 VR 渲染的时候,或许有许多令人生畏的工作,但如果我们通过像下面代码段中展示的一样使用 Three.js,这一切都会变得简单许多。

复制代码
// Normal scene setup, then...
var vrControls = new THREE.VRControls(camera);
var vrEffect = new THREE.VREffect(renderer);
function onEnterVRFullscreen() {
vrEffect.setFullScreen(true);
}
function onWindowResize() {
vrEffect.setSize(window.innerWidth, window.innerHeight);
}
function onRequestAnimationFrame() {
vrControls.update();
vrEffect.render(scene, camera);
}

Jones 承认,尽管 Three.js 并未将 VR 作为优先考虑的内容,也尚未针对 VR 渲染做优化,甚至它本身可能还需要进行一些优化,但它至少已经能够肩负起 VR 渲染的工作。针对 VR 应用开发者,Jones 给出了一些建议

  • 优先考虑轻量级顶点渲染引擎
  • 当遇到性能问题的时候,减少 canvas 分辨率而不是帧数。
  • 永远不要把与视点无关的东西(如阴影或环境地图)重复渲染。
  • 对每个眼睛看到的场景逐一完全绘制,在面对状态转换时,是一件非常沉重的任务。在具体场景下,或许更高效的做法是:针对每个物体,先绘制左眼所见场景,当切换视图后再绘制右眼所见场景。

Jones 还演示了在 Chrome 中渲染 Quake 3 VR 场景。

来源: SFHTML5 会议视频 WebVR API 新手指南 Mozilla VR (一个完全采用 VR 的网站), Google Cardboard Chrome VR 实验 GLAM Mozilla WebVR Mailing List

查看英文原文: The Current Status of Browser-based Virtual Reality in HTML5

2015-01-29 19:3110361
用户头像

发布了 256 篇内容, 共 88.3 次阅读, 收获喜欢 10 次。

关注

评论

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

等保 2.0 落地关键:黑龙江企业如何通过日志分析实现合规增效

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

防御安全播客第330期:网络安全威胁深度解析

qife122

网络安全 威胁情报

0 代码搞定可视化大屏!JNPF 大屏设计神技:拖拽组件 + 数据绑定,指挥决策 / 汇报展示直接拿捏

引迈信息

玩转 Pipelines 之修正链路错误状态码

观测云

链路

C# 中 ?、??、??=、?: 、?. 、?[] 各种问号的用法和说明

追逐时光者

C# .net 微软

AI智能研修系统:你的专属“智能私教”

上海拔俗

快手&南大发布代码智能“指南针”,重新定义AI编程能力评估体系

快手技术

NeurIPS 顶会论文 快手技术

数字藏品 NFT 系统的外包开发流程

北京木奇移动技术有限公司

NFT 数字藏品 软件外包公司

深入解析 HDF5 与 TsFile:时序数据存储的较量

Apache IoTDB

追《新闻女王2》Man姐!鸿蒙有礼这波优酷会员送得太及时

最新动态

在"红皇后"的世界里竞速:用AI重构商业情报的"上帝视角"

HuiZhuDev

数字化转型 战略规划 竞品分析 提示词工程 AI应用实战

Amazon Bedrock助力飞书深诺电商广告分类

亚马逊云科技 (Amazon Web Services)

人工智能

1688商品评论API开发指南

Datafox(数据狐)

1688商品评论API 1688API 1688评论API 1688商品评论采集 1688评论数据

不停机迁移 Oracle 到达梦:NineData 图形化工具降低技术门槛,业务零中断

NineData

oracle NineData 不停机迁移 达梦数据库 国产化数据库替换

指挥调度 AI 预警平台:用技术让 “拥堵 / 险情” 提前 “说话”

上海拔俗

数字藏品 NFT 系统的开发费用

北京木奇移动技术有限公司

NFT 数字藏品 软件外包公司

LED视频墙安装前需要准备什么?

Dylan

LED LED display LED屏幕

从静态合规到动态强防:黑龙江等保与安全加固的协同机制设计

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

当“超节点”成为算力新秩序,openEuler重构数智基础设施

Alter

AI智能体 - 记忆管理

Hernon AI

AI开发 AI 智能体 AI开发框架 AI设计模式

大数据-165 Apache Kylin Cube7 实战:聚合组/RowKey/编码与体积精度对比

武子康

Java 大数据 kylin 分布式 Apache Kylin

数字藏品 NFT 系统的上线

北京木奇移动技术有限公司

NFT 数字藏品 软件外包公司

从 Snowflake 到 Apache Doris:Planet 实时分析成本直降 80%、查询加速 90 倍

SelectDB

数据库 apache 社区

黑龙江等保合规难落地?安全加固让合规更具 “防御力”

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

从“AI 赋能”到“赋能 AI”:ICPC时刻之后,研发管理者最应该关注的转型指标

思码逸研发效能

研发效能 研发效能管理 度量AI

智能测试新纪元:AI驱动的Java单元测试生成技术实践

飞算JavaAI开发助手

JimuBI 积木大屏 v2.2.0 版本发布,免费的可视化大屏和仪表盘

JEECG低代码

数据可视化 数据可视化拖拽 大屏设计器 积木BI BI大屏

逻辑控制案例详解|基于smardaten实现OA一体化办公系统逻辑交互

数睿数据

系统 无代码开发 OA smardaten 数睿数据

Spring Boot中使用Swagger3.0.0注解

刘大猫

人工智能 云计算 算法 物联网 大模型

GEO=SEO升级?超过80%的生成式AI营销企业的误区!

易观分析

geo 生成式AI

企业内部通讯软件:构建高效、安全与协同的数字工作枢纽

BeeWorks

即时通讯 IM 私有化部署

使用HTML5在浏览器中开发虚拟现实业务_移动_Abel Avram_InfoQ精选文章