2021.04
WebGPU はいいぞ
WebGPU, というか wgpu-rs はとてもよいものです。低レベルグラフィックス API を始めたいけど Vulkan は too verbose だし DX12, Metal はプラットフォーム依存がどうにも、という人に向いています。実態は Vulkan / DX12 / Metal をラップしたグラフィックスライブラリなので低レベルグラフィックスプログラミングそのもの感は少し低いかもしれませんが、現代的なグラフィック API の特徴(グローバルステートを持たない、シェーダーのバイナリ中間言語が使える、...)を備えているので、いざとなれば Vulkan などに移植するのもさほど苦ではないという点で安心感があります。レイトレや Mesh Shader などはサポートされていませんが、しかたないですね。テッセレーションもないのでやるならコンピュートシェーダーで自前実装が必要ですが、これは Metal も同じ(といっても Apple が用意してくれている)らしいので最近の流れなのでしょうか。ブラウザ上で実用できるレベルに至るにはまだ数年かかりそうですが、ネイティブグラフィックスライブラリとしては現状でも十分実用的だと思います。
おすすめチュートリアル:Introduction | Learn Wgpu
GUI フレームワークを作る
wgpu-rs で GUI フレームワークを作っています。ウィンドウ表示とフォント描画ができるようになりました。現在レイアウトシステム(StackPanel, Grid でいい感じに配置したい)を作っています。IME 対応のテキストボックスは見えている地獄です。