你們好,本系列從0開始學習WebGPU API,並給出相關的demo。html
上一篇博文
WebGPU學習系列目錄
下一篇博文
WebGPU學習(二): 學習「繪製一個三角形」示例git
WebGPU至關於DX12/Vulkan,能讓程序員更靈活地操做GPU,從而大幅提高性能。程序員
WebGPU更好地支持多線程github
WebGPU支持compute shader,從而讓程序員能利用GPU實現不少優化web
WebGPU是標準,各大瀏覽器都會支持。不像WebGL2,蘋果直接不支持。chrome
目前WebGPU雖然還未正式發佈,但已經比較成熟了,也有相關的Demo可供學習瀏覽器
自從2017年提出WebGPU後,已經通過兩年的發展。
目前Chrome和Safari支持得比較好,基本功能都有了(好比可以繪製pbr材質的模型,支持compute shader等),並且已經能夠在MacOS中運行。多線程
Babylonjs已經支持了WebGPU,詳見WebGPU 文檔。ide
不過WebGPU對於shader使用哪一種方案尚未肯定:
在Chrome中,使用4.5版本的glsl ,須要經過官方提供的第三方庫將其轉成二進制碼(SPIR-V);
在Safari中,直接使用新的語言WSL,不須要轉換。模塊化
前者的好處是咱們熟悉glsl,學習成本低;
後者的好處是新語言功能更強大,性能更好。
Implementation Status
WebGPU and WSL in Safari
WebGPU and WSL in Web Inspector
Babylonjs->WebGPU 文檔
webgpu-samples for Chrome (uses GLSL via SPIR-V)
WebKit/Safari Demos (uses WSL)
gpuweb->issues
目前只能在MacOS高版本中運行WebGPU(我以前是MacOS 10.10版本,運行不了WebGPU!升級爲MacOS Catalina就能夠運行了!!!)。
對於Chrome:
下載最新的Chrome Canary,而且打開 chrome://flags/#enable-unsafe-webgpu
對於Safari:
下載最新的Safari Technology Preview,選中 Safari → Preferences → Advanced → Develop menu→ Experimental Features → WebGPU
目前學習資料很是少,屬於早期探索階段~
WebGPU學習中文資料
WebGPU: An Explicit Graphics API for the Web
Get started with GPU Compute on the Web
WebGPU API規範
開發環境
技術棧
Javascript語言
使用原生WebGPU API
本系列分紅三個部分:
一個一個地學習官方的sample,掌握基礎的API調用,講解相關的概念
學習進階內容(如indirect draw、ray tracing等),並實現對應的sample
綜合運用所學內容,實現一些demo(如gpu driven render pipeline)