HN 日本語サマリー

← 一覧へ戻る
プログラミング

C++ で WebGPU を学ぶ

Learn WebGPU for C++ (eliemichel.github.io)

92 pointsby ibobev12 コメント

要約

このドキュメントは、C++ を使用してネイティブな 3D アプリケーションをゼロから作成するための WebGPU グラフィックス API の使い方を解説します。Windows、Linux、macOS に対応しており、初心者向けから高度なトピックまで網羅しています。

全文翻訳

C++ でネイティブグラフィックスを。 このドキュメントは、WebGPUグラフィックスAPIを使用して、Windows、Linux、macOS向けのネイティブ3Dアプリケーションをゼロから作成するための使い方を解説します。 クイックスタート! (クリックしてください) 書くGPUコードのすべてのビットを理解したいですか? はい、WebGPUコードをゼロから書きましょう!素晴らしいです! 導入から始めて、すべての章を順番に読むことができます。 いいえ、初期の定型コードはスキップしたいです。 これは完全に理にかなっています。後で基本的なステップに戻ることができます。 おそらく、各ページの最初と最後にある「結果のコード」リンクを確認したいでしょう。例: 簡単な読み込みのために、浅いラッパーを使用しても大丈夫ですか? はい、C++スタイルのコードを好みます。 「webgpu.hpp」を使用するタブを選択してください。 いいえ、生のC WebGPU APIを見せてください! 「Vanilla webgpu.h」タブを選択してください。 バニラWebGPUの結果コードはそれほど最新ではありませんが、このタブはガイド内のすべてのコードブロックも切り替えます。これらは最新です。 このベースコードをビルドするには、プロジェクトセットアップチャプターの「Building」セクションを参照してください。 cmake -B build 行に -DWEBGPU_BACKEND=WGPU (デフォルト) または -DWEBGPU_BACKEND=DAWN を追加して、それぞれwgpu-nativeまたはDawnをバックエンドとして選択できます。 ベースコードをどこまで進めたいですか? A simple triangle 「Hello Triangle」チャプターを確認してください。 基本的なインタラクションを備えた3Dメッシュビューア 「Lighting control」チャプターの終わりから始めることをお勧めします。 Webでも実行させたいです。 ガイド本体にはいくつかの追加行が欠けています。例をWebで実行できるように、Web用ビルドの付録を参照してください! 🚧 作業中 このガイドはまだ作成中です。WebGPU標準も進化しています。読者が最新の状態を把握できるように、チャプターのタイトルには以下の記号を使用しています: 🟢 最新!WebGPU-distributionの最新安定版、v0.2.0を使用しています。 🟡 読める状態ですが、古いバージョンのWebGPUを使用しています。 🟠 作業中: 十分読めますが、完了していません。 🔴 TODO: 表面をなぞっただけです。 このガイドの将来のバージョンのプレビューについては、非表示の「Next」セクションを参照できますが、安定版ではありません。 注: チャプターに付属するコードを使用する際は、不一致を避けるために、そのコードが提供するwebgpu/のバージョンを必ず使用してください。 目次¶ 導入 はじめに プロジェクトセットアップ 🟢 Hello WebGPU 🟢 アダプターとデバイス アダプター 🟢 デバイス 🟢 コマンドキュー 🟢 ウィンドウを開く 🟢 初めての色 🟢 C++ラッパー 基本的な3Dレンダリング Hello Triangle 🟢 入力ジオメトリ バッファを操作する 🟢 初めての頂点属性 🟢 複数の属性 🟢 インデックスバッファ 🟢 ファイルからの読み込み シェーダーユニフォーム 初めてのユニフォーム 🟢 より多くのユニフォーム 🟢 動的ユニフォーム 🟡 3Dメッシュ 簡単な例 🟡 深度バッファ 🟡 変換行列 🟡 透視投影行列 🟡 基本的なシェーディング 🟡 ファイルからの読み込み テクスチャリング 初めてのテクスチャ 🟡 テクスチャマッピング 🟡 サンプラー 🟡 ファイルからの読み込み いくつかのインタラクション リファクタリング 🟡 ウィンドウのリサイズ 🟡 カメラコントロール 🟡 シンプルなGUI 🟡 ライティングコントロール 🟡🟢 ライティングとマテリアル 鏡面反射 🟡 ノーマルマッピング 🟡 画像ベースのライティング 🟠WIP キューブマップ 🟠WIP 物理ベースマテリアル 🟠WIP 基本的なコンピュート コンピュートパイプライン 🟡 画像処理 ミップマップ生成 🟡 畳み込みフィルター 🟡 キューブマップ変換 🟠WIP キューブマッププリフィルタリング 🟠WIP プロシージャルジオメトリ変形 🟠WIP ニューラルネットワーク 🔴TODO 高度なテクニック インスタンス描画 🔴TODO RAII 🟡 スクリーンキャプチャ 🟠WIP ヘッドレスコンテキスト 🟡 高ダイナミックレンジテクスチャ 🟠WIP ベンチマーク 時間 🟡 メモリ 🔴TODO 処理ユニット 🔴TODO 環境への影響 🔴TODO 遅延シェーディング 🔴TODO レンダリングバンドル 🔴TODO マルチサンプリング 🔴TODO シーンツリー 🔴TODO シャドウマップ 🔴TODO テセレーション 🔴TODO レイトレーシング 🔴TODO 付録 2023年にネイティブグラフィックスを教える 🟢 低性能デバイスを考慮する 🟢 フィードバックが必要 🟢 Web用ビルド 🟡 SDLを使用したウィンドウ管理 🟡 カスタム拡張機能 拡張メカニズム 🟠WIP wgpu-nativeで 🟠WIP Dawnで 🟠WIP デバッグ 🟠WIP メモリモデル 🔴TODO 参考文献 🟠WIP 一時ページ