虚拟现实(VR)正在进入各个行业,但尚未成为主流。WebVR和边缘计算有可能提高VR的采用率并将VR带给更广泛的受众。在本系列文章中,我将通过详细示例向您介绍WebVR和边缘计算的基础知识。虚拟现实(VR)是一股巨大的技术浪潮,它已经到来。无论您第一次握住智能手机时的感受如何,当您第一次体验VR时,您的计算机都会在各个方面提供更丰富的情感体验。作为一个概念,VR的出现时间比第一代iPhone还长,但将VR带给普通用户所需的技术直到最近才问世。OculusQuest是Facebook的VR消费游戏平台。它的主要特点是不需要PC。因为它提供了无线、移动的VR体验。你可以给某人一个VR耳机,让他在咖啡店分享3D模型,虽然这样做就像在谈话中使用谷歌搜索一样尴尬,但分享体验的回报却更具吸引力。因此,我可以看到VR正在改变我们工作、购物、分享内容等的方式。在本系列中,我们将探讨支持WebVR和浏览器边缘计算的当前浏览器技术。本文重点介绍这些将要用到的相关技术。为了探索这项技术,我制作了一个Canvas和WebVR演示。VR对用户体验意味着什么?就像在移动设备上一样,娱乐内容将导致虚拟现实技术的采用。不过,一旦VR像手机APP一样成为主流,业内可能会出现一种说法:“VRFirst”,即VR先行。对于设计人员和开发人员来说,这是一个非常激动人心的时刻,因为VR是一种完全不同的设计范式。VR始于个人计算(PC)革命,但正在成为移动革命的下一步。Facebook的OculusQuest基于GoogleCardboard使用Qualcomm的Snapdragon835片上系统(SoC)、耳机跟踪(使用移动摄像头)构建,并在Android上运行。所有这些技术都被封装起来,可以舒适地贴合在您脸部柔软的感觉器官上。VR的行业应用VR开始出现在许多行业和计算领域。除了经常获得媒体报道的内容消费和游戏之外,VR正在慢慢改变从建筑到医疗保健的行业。建筑和房地产以非凡的成本创造了物理现实的价值,因此建筑师和房地产经纪人非常适合通过虚拟现实展示客户体验。学习和教育中的VR可以传达无法通过图像或视频复制的体验。汽车公司也从设计和安全到培训和营销的方方面面受益于VR。斯坦福大学LucillePackard儿童医院的医疗保健专业人员一直在使用VR来规划心脏手术,让他们能够在进行单个切口之前了解患者的解剖结构。VR也正在取代药物来缓解疼痛。零售、营销和酒店业也为客户的虚拟旅游提供产品和场所。随着技术的进步,我们将看到越来越多的行业采用VR。现在的问题是这种转变将以多快的速度发生,哪些行业将受到最大影响。VR对Web和边缘计算意味着什么“边缘计算”正在将计算从您的主要应用程序服务器集群转移到更接近您的最终用户。这种技术引起了市场热议,因为托管公司迫不及待地想在每个城市为您租用低延迟服务器。例如,在B2C边缘计算中,谷歌的Stadia服务就是其中之一,它在谷歌的服务器上运行CPU/GPU密集型游戏工作负载,然后将游戏发送到Netflix等设备。任何笨重的NetflixChromebook都能突然像高端游戏电脑一样玩游戏。在B2B边缘计算中,Nvidia的GRID可以提供廉价的类似Netflix的设备,以及由NvidiaGPU提供支持的虚拟远程工作站。问题:为什么不将边缘计算从数据中心转移到浏览器?答案是肯定的。浏览器边缘计算的一个例子是计算机的“动画渲染农场”,它通过将一天的过程分解成计算机可以在几分钟内处理的数千个块来渲染3D电影。Electron和NW.js等技术将Web编程带入了桌面应用程序。PWA等新的浏览器技术正在将Web应用程序分发模型带回桌面计算。用户现在无需下载安装程序,只需访问网站即可加入计算场。问题:WebVR是“真实的东西”吗?WebVR是真实的。浏览器端的边缘计算可以使用相同的API来访问支持WebVR的计算能力。为了对此进行测试,我将对N体问题进行天体物理模拟。N体问题是在经典力学下寻找具有已知初始位置、速度和质量的多个物体的后续运动。天文学家可以使用方程式来计算两个物体之间的引力。然而,对于具有三个或更多物体的系统没有方程,这对于已知宇宙中的每个系统来说都是不方便的。虽然n体问题没有解析方程,但它确实有一个计算解,即O(n2)。O(n2)几乎是最坏的情况。n-body解决方案还将我们带入了物理/游戏引擎的世界,并探索了WebVR所需的技术。WebWorkers、WebAssembly、AssemblyScript、Canvas、Rollup、WebVR、Aframe是现代移动浏览器中出现的一系列网络新技术。例如我们可以:使用WebWorkers模拟传输到它们自己的CPU线程,以提高感知和实际性能。使用WebAssembly提高编译后代码的运行效率。使用Canvas的2D视觉模拟。使用Rollup和Gulp作为Webpack的轻量级替代品。使用WebVR和Aframe为您的手机创建虚拟现实场景。API设计和模拟循环我们的n体模拟使用重力来预测天体的位置。我们可以使用方程来计算两个物体之间的精确力,但要计算三个或更多物体之间的力,我们需要将模拟分解成小的时间段并迭代。假设我们的目标是30fps(或~33ms/帧)。下面有这么一段index.html代码:
演示:WebAssembly+WebWorkers+Canvas
这个“n-body问题”是CPU密集型的,这个演示使用新的浏览器技术来突破硬件限制:WebAssembly,AssemblyScript、WebWorkers和Canvas。
太阳系=恒星+气态巨行星+“碎片”。这是一颗勉强稳定的恒星和3个气态巨行星。你能在不破坏气态巨行星稳定的情况下添加内行星吗?