Flash 退出历史舞台后,Web 端 3D 会迎来怎样的发展?

上一期讨论《Web和Native谁才是元宇宙的未来》一篇中,我们提到了 Flash 的技术。这里我们更加详细的介绍一下 Flash 技术以及它的发展过程,以及 Flash 对 Web 3D 的影响。帮助我们预测了解,未来 Web 端 3D 内容将如何发展。
在 Web 发展初期,浏览器是一个非常弱小的存在。Web 框架本身和 JS 语言能力都非常弱,也没有任何的标准比如 H5 可以支持复杂的页面内容。当时的网页几乎只能显示文字,图片,内容也都是静态,没有任何的交互能力。然而用户对于 Web 平台呈现视频、游戏等丰富交互内容的需求是非常强的。
浏览器厂商为了弥补本身的劣势,就利用开放权限的方式,允许第三方为浏览器开发各种功能的插件,来支撑复杂的功能。到今天为止,某些网银还要求必须只能用 IE 浏览器打开,而且安装对应的安全插件,就是那个时代遗留下的产物。最著名的插件当数 Flash。

为什么 Flash 那么火?
Flash 做为插件的原理很简单。因为浏览器本身很多功能都实现不了,那他就提供给外部程序一种介入的方法,或者说是一块区域,在这个区域中显示的所有内容,都完全不在浏览器环境中运行,而是在第三方的插件中去运行。因此,这部分内容就摆脱了浏览器本身的限制,可以用其他编程语言进行各种复杂功能的编写和实现。

浏览器拥有了 Flash 插件之后,最大的变化就是带来了一波页游繁荣的时代。首先 Flash 因为它摆脱了浏览器的束缚,可以直接发起 TCP 和 UDP 请求,这是网络游戏的基础。
其次,依托于浏览器,所有的页游可以达到即开即玩,无需安装任何客户端,及其方便简单。当然有了 Flash 之后,浏览器就可以轻松的播放音频视频了,也极大的丰富了人们的生活。

为什么 Flash 退出了历史舞台?
虽然 Flash 给 Web 生态带来了丰富的内容,但是它有一个根本的问题就是破坏了浏览器设计的原则-沙盒机制。通俗说,沙盒机制指的就是,就是自己家里人管自己家的事儿。
明显 Flash 插件这种机制,在带来的丰富页面内容的同时,摆脱了浏览器的控制,存在很大的安全性问题。每个人肯定都不想,打开一个页面的时候,自己电脑里的文件就被别人窃取了。
除了安全问题,Flash 带来的较大的硬件消耗已经不适应移动互联网时代的手机设备了。2010 年四月份,当年的苹果 CEO 乔布斯给 Flash 写了一封公开信《Thoughts On Flash》,强调苹果设备将不在移动端支持 Flash。
《Thoughts On Flash》
https://archive.is/pxSTb

是谁替代了 Flash?
W3C 于 2008 年发起 HTML5 标准草案,目的是使得浏览器原生就已经开始支持视频、音频、画布等等元素,减少了 Flash 外挂。
2011 年,Khronos 发布了 WebGL 1.0 版本,浏览器也开始可以原生支持 3D 内容的渲染显示了。同年,WebRTC 协议推出,也可以在浏览器应用层发起类似于 UDP 的通信请求,未来还会推出基于 HTTP3 的 Webtransport 协议,游戏不在需要 Flash 了。
随之而来的是 WebGL 时代。WebGL 是一个跨平台、免版税的开放 Web 标准,用于基于 OpenGL ES 的轻量级 3D 图形 API,通过 HTML5 Canvas 元素向 ECMAScript 公开。WebGL 1.0 公开了 OpenGL ES 2.0 功能集;WebGL 2.0 公开了 OpenGL ES 3.0 API。WebGL 将无插件 3D 带入网络,直接在浏览器中实现。
我们目前在网页上看到的 3D 动画和渲染都是基于 WebGL 的。Khronos 在 2009 年启动 WebGL 标准的讨论和制定工作,在 WebGL 发布十年的过程中,也出现了很多 3D 引擎,包括我们熟知的 Three.js,Babylon.js 等。
当 WebGL 和 HTML5 已经足够成熟,可以提供“可行的替代方案”,而无需用户安装和更新专用插件。Flash 当年的技术优势,都慢慢的被取代了。
2015 年,Apple 默认禁用其 Safari 网络浏览器中的插件,谷歌的 Chrome 开始屏蔽部分 Flash 内容。
2017 年 7 月,Adobe 宣布将于 2020 年淘汰 Flash,标志着一个时代的落幕。

Flash 退出历史舞台,其实并不是被 H5 或者 WebGL 打败,而是孕育了或者说促进了新的技术的发展。很多 H5 标准都是借鉴 Flash 设计,而且大名鼎鼎的 RTMP 协议和 Flash 也有千丝万缕的关系,而且目前几乎所有的摄像头仍然在采用 RTMP 协议来做推流。
Web 3D 未来如何发展?
面临 GPU 能力的发展,以及渲染要求的不断增加,WebGL 标准即将被 WebGPU 取代。2014 年,Native 出了三大现代图形 API: DX12, Vulkan, Metal。在 2017 年的时候,W3C 就提出在 Web 侧发展下一代图形学的技术标准,即 WebGPU。
WebGPU 真正向开发者释放了 GPU 的计算能力,有了 WebGPU,原本那些基于 Native 端的 3D 建模工具,像 3DMax,Maya, Unity3D 等,也将会在 Web 端得到实现。

同时,由于 Web 环境拥有天然的跨平台和协同特性,可以避免下载各种重量级终端应用,一个链接就可以完成内容的制作和协同,就像 Figma(Web 端的 2D 内容协同制作平台),依靠 Web 协同取得了巨大的成功。
无论怎样,时代和技术一直会继续往前,从最初的静态页面,到 Flash,再到 H5 和 WebGL,WebGPU,应用内容得到了极大丰富。我们可以预测,有了新的 Web 3D 渲染标准 WebGPU,会再次给人们带来意想不到的惊喜!
你对未来 Web 端的 3D 内容制作和演示的发展有什么看法呢?在下方评论区留言给我们吧!
欢迎更多开发者留言,
加入 Orillusion 社区参与讨论!
👇
长按下图,扫码添加管理员微信

欢迎更多的小伙伴可以加入我们的 Orillusion 社区,陪我们一起见证 WebGPU 的发展。我们会尽自己最大的努力把最干货最前沿的 WebGPU 技术分享给每一位社区成员,也诚心的希望大家为 Orillusion 开源社区做出自己的贡献。我们一直坚信,开源社区的技术留痕是每一位技术人员最崇高的追求。因此,我们尊重,我们认可,我们更期待,加入 Orillusion,让我们共同进步!
——Link uncharted, 链接未来世界
版权声明: 本文为 InfoQ 作者【Orillusion】的原创文章。
原文链接:【http://xie.infoq.cn/article/a01bed4ce97239c238dc94190】。文章转载请联系作者。
评论