![]()
一、序言
這是一段關于瀏覽器與3D的 "進化簡史",也是一個關于如何讓虛擬世界在指尖流動的漫長故事。
曾幾何時,要在那個方寸之間的瀏覽器窗口中構建一個立體的、交互的、沉浸的數字世界,近乎是一種奢望。開發者們不得不依賴各種脆弱的插件,在性能的懸崖邊舞蹈,或是在一個背負著沉重歷史包袱的圖形接口上艱難求索。從驚艷一時卻終將消逝的Flash黃金時代,到為瀏覽器真正 "點亮"3D卻力不從心的WebGL,我們見證的不僅僅是技術的迭代,更是一場為爭奪 "下一代互聯網體驗" 的基礎設施之戰。
這背后,是芯片算力的狂飆突進,是移動互聯網對隨時隨地沉浸體驗的渴望,更是人類永不滿足的想象力:渴望在網頁中直接觸摸逼真的三維設計,進行復雜的科學模擬,甚至運行龐大的人工智能模型。瀏覽器,這個我們最熟悉的互聯網入口,必須變得更強。
而這一切的轉折點,始于2017年一次破釜沉舟的會議,一個名為WebGPU的大膽構想被正式提出。它不再是對過去的修補,而是一次面向未來的徹底重構。今天,當我們回顧這段從構想到無處不在的八年征程,看到的是一部技術標準的協奏曲,一次產業力量的罕見對齊,以及一個屬于 Web 的全新立體時代的真正黎明。
現在,就讓我們回到起點,穿越時光,重溫瀏覽器3D能力從無到有、從有到強的波瀾壯闊之路。
二、Flash時期
2008 年之前,瀏覽器曾經擁有過一段短暫而絢爛的 "3D黃金時代",實現方案主要依靠Adobe Flash。在這前后,涌現了一大批諸如Papervision3D、Away3D和Sandy 3D等在內的優秀開源 Flash 3D 引擎橫空出世。
2009 年至 2011 年,Flash Player 11 引入了Stage3D,提供接近 DirectX 9 / OpenGL ES 2.0的低級GPU API,部分3D游戲引擎巨頭,比如Unity 3D、Unreal Engine 3都曾推出Flash導出插件。
在 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 光環不再,開始走下坡路,逐步退出了歷史的舞臺。
三、2011–2016:WebGL 時代的艱難曙光
Flash 倒下的同一年,Web 迎來了真正的原生希望 WebGL,該方案直接在瀏覽器中運行,無需安裝任何第三方插件。
2011 年 3 月,WebGL 1.0 正式發布(基于 OpenGL ES 2.0),2014 年,Google Maps 全面切換到 WebGL 渲染,2015–2016年,Three.js、Babylon.js、PlayCanvas 等現代 Web 3D 引擎崛起,2017 年,WebGL 2.0(基于 OpenGL ES 3.0)正式發布。
盡管如此,WebGL 從誕生之日起就背負著沉重的歷史包袱,也有很多問題和短板:
1、設計過于保守,為了兼容2010年的手機GPU,只能基于早已過時的 OpenGL ES。2、缺少計算著色器(Compute Shader),無法實現真正的GPGPU。3、驅動兼容性噩夢,尤其是 Windows 上的 ANGLE 層導致無數黑屏與性能陷阱。4、狀態機設計導致性能極度不可預測,比如會出現同樣的代碼在這臺電腦可實現 200 FPS,在另一臺只能達到 15 FPS 的情況。
因此,整體而言,WebGL 的情況也非常尷尬,雖然讓瀏覽器重新擁有了 3D,卻始終停留在 "勉強能跑,很不理想" 的尷尬境地,WebGL 只是讓瀏覽器 "勉強跟得上 2010 年的手機",卻永遠追不上 2020 年的桌面 GPU。
四、2017 年:歷史在沉默中轉型
正是 WebGL 2.0 發布的那一年,幾個瀏覽器工程師在會議室里做出了一個大膽決定:"我們不能再修修補補了,應該直接跳到Vulkan、Metal、DX12的時代,我們要讓瀏覽器擁有真正的現代 GPU,而不是永遠活在十年前。"
至此,WebGPU 的故事正式開始了。
![]()
五、WebGPU發展史
2017年1月,蘋果工程師Dean Jackson 在 BlinkOn大會上首次公開提出了 "NVIDIA-style low-level API for the Web" 的概念。
2017年2月,Google Chrome 團隊在 W3C GPU for the Web Community Group 中正式提交了 WebGPU 最初提案。其目標非常明確:徹底取代 WebGL 1.0/2.0,設計一個建立在 Vulkan、Metal、DX12之上的現代、低開銷和跨平臺GPU API,并支持圖形渲染和通用GPU計算(Compute)
1、2018–2019 年:三大原型誕生,方向開始分化
蘋果團隊開發了 WebMetal(僅 Safari 內部實驗),Google 推出 Dawn(C++ 實現的 Vulkan/Metal/DX12 跨平臺層),Mozilla 開發wgpu(Rust 實現的 WebGPU 實現)。
2、Chrome 113首次支持
2021 年 3 月 1 日是歷史性一刻,Chrome 113 首次在實驗標志后啟用WebGPU,Chrome成為第一個支持WebGPU的主流瀏覽器,但該功能不是默認開啟的,需要用戶手動開啟。
同年,WebGPU 正式進入 W3C First Public Working Draft 階段
3、2022 年:三大引擎全部站隊
Firefox Nightly 開啟 WebGPU 支持(基于 wgpu),Safari Technology Preview 加入實驗性支持,三家瀏覽器廠商首次在同一張時間表上同步推進。
4、2023年:真正可用的一年
2023 年 4 月,Chrome 113 正式穩定版默認啟用 WebGPU(全球第一個)。2023 年 8 月,WebGPU + WGSL 正式成為 W3C 推薦標準(REC)。同年,Three.js、Babylon.js、PlayCanvas 等主流 Web3D 引擎發布 WebGPU 渲染器。
5、2024 年:生態爆發與最后堡壘倒下
Firefox 127(2024 年 6 月)正式默認啟用 WebGPU,Safari 18(2024 年 9 月,隨 macOS Sequoia /iOS 18發布)在macOS 和iOS上默認開啟WebGPU,微軟Edge隨Chrome節奏同步開啟。
6、2025 年:全面勝利,無處不在
2025 年 6 月,Chrome Android 正式默認開啟WebGPU,2025年9月,Safari 19將WebGPU擴展到visionOS,即Apple Vision Pro原生支持。
2025年11月,WebGPU在以下平臺全部默認開啟,無需用戶進行任何手動操作,主要涵蓋以下類別:
A、Chrome / Edge:Windows、macOS、Linux、ChromeOS、Android;;
B、Firefox:Windows、macOS、Linux、Android(進行中);
C、Safari:macOS、iOS、iPaOS、visionOS。
至此,3D 應用開發者第一次可以只寫一套WebGPU代碼,就覆蓋全球95%以上的桌面與移動瀏覽器。
![]()
六、筆者總結
從 2017 年一個激進的想法,到 2025 年成為瀏覽器標配,WebGPU用8年時間完成了WebGL從 2006 年提出到 2011 年普及花了5年卻依然局限的全部使命。
它不再是 "WebGL 的升級版",而是第一個真正現代的、計算統一的、跨所有瀏覽器引擎的GPU 接口;第一個讓瀏覽器原生性能接近桌面應用的圖形與計算API;第一個讓 "在瀏覽器里跑大模型"、"在瀏覽器里玩3A游戲" 等愿望從夢想變成了可能,因此意義非凡。
目前,各大主流瀏覽器對WebGPU的技術支持已經全部實現,預計在未來數年,各種基于WebGPU技術的3D應用或內容將呈井噴之勢,全面普及,永遠相信美好的事情即將發生。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.