凯发国际官网这是一段关于浏览器与3D的 进化简史,也是一个关于如何让虚拟世界在指尖流动的漫长故事。
曾几何时,要在那个方寸之间的浏览器窗口中构建一个立体的、交互的、沉浸的数字世界,近乎是一种奢望。开发者们不得不依赖各种脆弱的插件,在性能的悬崖边舞蹈,或是在一个背负着沉重历史包袱的图形接口上艰难求索。从惊艳一时却终将消逝的Flash黄金时代,到为浏览器线D却力不从心的WebGL,我们见证的不仅仅是技术的迭代,更是一场为争夺 下一代互联网体验 的基础设施之战。
这背后,是芯片算力的狂飙突进,是移动互联网对随时随地沉浸体验的渴望,更是人类永不满足的想象力:渴望在网页中直接触摸逼真的三维设计,进行复杂的科学模拟,甚至运行庞大的人工智能模型。浏览器,这个我们最熟悉的互联网入口,必须变得更强。
而这一切的转折点,始于2017年一次破釜沉舟的会议,一个名为WebGPU的大胆构想被正式提出。它不再是对过去的修补,而是一次面向未来的彻底重构。今天,当我们回顾这段从构想到无处不在的八年征程,看到的是一部技术标准的协奏曲,一次产业力量的罕见对齐,以及一个属于 Web 的全新立体时代的真正黎明。
现在,就让我们回到起点,穿越时光,重温浏览器3D能力从无到有、从有到强的波澜壮阔之路。
2008 年之前,浏览器曾经拥有过一段短暂而绚烂的 3D黄金时代,实现方案主要依靠Adobe Flash。在这前后,涌现了一大批诸如Papervision3D、Away3D和Sandy 3D等在内的优秀开源 Flash 3D 引擎横空出世。
在 Flash 最辉煌时期,浏览器中充斥着大量基于Flash的动画视频、3D游戏与交互广告等等。2011 年左右,全球约98%的桌面浏览器都装有Flash。
不过,Flash也有严重的短板,主要依靠CPU运行,而不是显卡,这导致渲染3D极为耗资源,遇到稍微复杂一点的3D应用,CPU经常处于接近满载的状态。在PC上,这个问题还勉强可以接受,但是到了2010年移动互联网开始普及的阶段,这个短板就非常突出了。
如果在移动设备上采用 Flash 3D 方案,存在以下三个严重的负面后果:1、卡顿,因为移动设备的性能肯定不如 PC,Flash 3D 内容在 PC 上运行都很吃力。2、导致设备发热,影响续航,因为移动设备主要采用电池供电。3、安全问题,Flash 高危漏洞频发。
正是基于这种情况,乔布斯坚决拒绝了在苹果移动生态中采用 Flash,从此 Flash 光环不再,开始走下坡路,逐步退出了历史的舞台。
Flash 倒下的同一年,Web 迎来了真正的原生希望 WebGL,该方案直接在浏览器中运行,无需安装任何第三方插件。
尽管如此,WebGL 从诞生之日起就背负着沉重的历史包袱,也有很多问题和短板:
1、设计过于保守,为了兼容2010年的手机GPU,只能基于早已过时的 OpenGL ES。2、缺少计算着色器(Compute Shader),无法实现线、驱动兼容性噩梦,尤其是 Windows 上的 ANGLE 层导致无数黑屏与性能陷阱。4、状态机设计导致性能极度不可预测,比如会出现同样的代码在这台电脑可实现 200 FPS,在另一台只能达到 15 FPS 的情况。
因此,整体而言,WebGL 的情况也非常尴尬,虽然让浏览器重新拥有了 3D,却始终停留在 勉强能跑,很不理想 的尴尬境地,WebGL 只是让浏览器 勉强跟得上 2010 年的手机,却永远追不上 2020 年的桌面 GPU。
正是 WebGL 2.0 发布的那一年,几个浏览器工程师在会议室里做出了一个大胆决定:我们不能再修修补补了,应该直接跳到Vulkan、Metal、DX12的时代,我们要让浏览器拥有真正的现代 GPU,而不是永远活在十年前。
2021 年 3 月 1 日是历史性一刻,Chrome 113 首次在实验标志后启用WebGPU,Chrome成为第一个支持WebGPU的主流浏览器,但该功能不是默认开启的,需要用户手动开启。
从 2017 年一个激进的想法,到 2025 年成为浏览器标配,WebGPU用8年时间完成了WebGL从 2006 年提出到 2011 年普及花了5年却依然局限的全部使命。
