本日はグラフィックス学習枠です。
本日筆者はSeattle中心部から北西にあたる海岸沿いのballadeという町に行ってStereoKitの生みの親Nickさんに会っていました。
Nickさんと話す中でグラフィックス関係でWebGPUについて知ったので今回は情報を集めていきます。
筆者もGoogle Chrome Kanariaで一回動かしたことがあるくらいで具体的な説明が全くできなかったので調べてまとめていきます。
〇WebGPUとは?
Web GPUは最新の3Dグラフィックを提供することを目的としたWeb standerdとjavascriptのAPIです。
その名の通りWebブラウザ上で実行され、開発はW3C(ワールドワイドウェブコンソーシアム)によって開発されています。
W3CGPUを中心にIntel,Microsoft,Mozilla,Apple,Googleのエンジニアを含めたコミュニティが、100人近くのコントリビューターによって3000を超えるコミットを重ね開発しています。
グラフィックスパイプラインであるVulkanやDirectX12によるAPIに基づいている点がWebGLとの違いになります。
特徴として以下のようなものがあります。
低レベルAPI: WebGPUは、OpenGLやWebGLのような従来のウェブグラフィックスAPIとは異なり、ハードウェアに近い低レベルのAPIです。これにより、開発者はより細かい制御を行い、高性能なグラフィックスを実現できます。
パフォーマンス向上: WebGPUでは、ハードウェアアクセラレーションを最大限に活用するため、高度なグラフィックスや計算処理を実行する際に高いパフォーマンスを提供します。つまりGPGPUの実行に適しています。これによってグラフィックスの処理だけでなく趣味レーションなどの様々な分野での高度計算を実行できます。
3. クロスプラットフォーム: WebGPUは、さまざまなブラウザやプラットフォームでサポートされており、クロスプラットフォームのアプリケーションを開発するのに適しています。これにより、異なるデバイスやブラウザで一貫したグラフィックスを提供できます。
〇WebGPUの実行環境
WebGPUはブラウザ上でサポートされている必要があります。
現在はChromiumベースのブラウザがサポートされています。
ChromiumはGoogleChromeの基盤となるOSSプロジェクトであり、拡張性、マルチプラットフォーム、セキュリティといった面で有用であり、GoogleChromeをはじめMicrosoft EdgeやApple Safariなども最新のバージョンではChromiumを採用するようになっています。
現時点ではバージョン113以降で試験的にサポートが行われています。
上記で上げたブラウザは開発に参加している企業が影響している可能性があります。
現時点ではGoogle Chrome Canary(開発者向けβ版)などで使用することが可能です。
〇サポートしているライブラリ
・Babylon.js
筆者が見つけられた情報ではBabylon.jsがWebGPUをサポートしています。
〇デモサイト
〇資料
以上がWebGPUの簡単なまとめです。
もっとまとめるとWebGPUは現時点で開発が行われ、いずれウェブブラウザでサポートされるGPUを今までよりも活用できるAPI群ということになります。
正直やりたいことがいっぱいありすぎて手が回らない昨今ですが、チュートリアルを早いうちに見てみたいです