Vulkan Programming Vol.1
- 物販商品(倉庫から発送)ネコポス可能紙冊子¥ 1,000
- ダウンロード商品電子版¥ 1,000
マルチプラットフォームで使える Vulkan のプログラミング入門本です。 Vulkan は低レイヤーのグラフィックス API です。Vulkan は発表されてからそれなりに時間が経過しましたが、書籍としてまとまっているものはまだ数が少ないかと思います。 Vulkan はバージョンアップが激しく、既に 1.1.xxx となっている状態ですが、この本では、"Vulkan 1.1" をターゲットとしています。 Vol.1 となっている今回は Vulkan の初期化から簡単な描画までをじっくりと解説しました。 低レイヤー相当のグラフィックスAPI となっている Vulkan をこれから始めてみようと思っている人や興味を持っている人に見てもらえたら嬉しく思います。 ※ 2024年 『Vulkan Mastery』シリーズとして、新シリーズの展開を始めました。 近年のVulkan SDKに対応したものとなりますので、こちらをオススメします。 https://slash-labo.booth.pm/items/5772052
ポイント
・Vulkan の初期化から描画までをこの1冊で入門できます。 ・なかなか説明がされていないスワップチェインや各同期についての説明を入れています。 ・テクスチャの生成について詳しく説明しています。 ・Vulkan SDKは比較的最近の 1.1 系を用いています。 ・モデルの描画には glTF / VRM を使っています。簡易的にキャラクターを描画してみることができます。
Vulkan Programming シリーズ
⚙️ Vulkan Mastery Vol.1 近年のVulkan 1.3バージョンを対象とした新シリーズ 👉 詳しくはこちら。 https://slash-labo.booth.pm/items/5772052 ⚙️ Vulkan Programming Vol.1 Vulkan 概要から初期化、基本的な描画編です。 👉 詳しくはこちら。 https://slash-labo.booth.pm/items/1286100 ⚙️ Vulkan Programming Vol.2 テクスチャレンダリング解説と、MMD(PMD/VMD)描画&アニメーション編です。 Vol.1 でポリゴン描画を終えた方を対象としています。 👉 詳しくはこちら。 https://slash-labo.booth.pm/items/1572740 ⚙️ Vulkan Programming Vol.3 未解説だったシェーダーステージの解説編です。 テッセレーション・ジオメトリシェーダーとコンピュートシェーダーを取り扱っています。 👉 詳しくはこちら。 https://slash-labo.booth.pm/items/1851411 ⚙️ Vulkan Programming Vol.4 これまでに未解説だった機能の紹介や、描画のサンプルを紹介しています。 法線マップ関連・ディファードレンダリング・GPU パーティクルなど、説明しております。 👉 詳しくはこちら。 https://slash-labo.booth.pm/items/4138122
特記事項
技術書典8以降で再刷したものからは、あとがきページに電子版の特典をつけております。 (申し訳ないですが、技術書典6印刷のものでは付いておりません。筆者の力不足で実現出来ておりませんでした。)
目次
第1章 はじめに Vulkan の紹介 対象読者 動作環境 サンプルコード 日本語のVulkan の書籍 第2章 Vulkan 概要 登場の背景 低レイヤー API CPUとGPU まとめ 第3章 セットアップ Vulkan SDK 依存ライブラリについて 基本のコード まとめ 第4章 初期化 オーバービュー デバイスの作成 メモリ割り当て スワップチェインの生成 デプスバッファの準備 VkImageView の作成 RenderPass の作成 フレームバッファの作成 まとめ 第5章 画面をクリアする デバッグのための設定 描画コマンド 同期プリミティブ クリアのためのコマンド コマンドの送信 Present処理 画面クリアのコード例 スワップチェイン同期の解説 まとめ 第6章 リソース Vulkanにおいてのリソース 頂点・インデックス・ユニフォームバッファ イメージリソース まとめ 第7章 Descriptor と PipelineLayout ディスクリプタとディスクリプタプール DescriptorSetLayout ディスクリプタの割り当てと更新 パイプラインレイアウト まとめ 第8章 シェーダーの基礎 シェーダーの種類 コンパイル GLSL文法入門 シェーダーとディスクリプタセット まとめ 第9章 レンダリングパイプライン 論理的なパイプライン VkPipelineオブジェクト シェーダーのセット 頂点データ情報のセット プリミティブトポロジーの設定 ビューポートの設定 ラスタライザの設定 マルチサンプリングの設定 デプス&ステンシルの設定 ブレンド設定 データの依存関係について まとめ 第10章 シンプルな三角形の描画 頂点バッファ・インデックスバッファの準備 シェーダーの準備 パイプラインの構築 描画コマンドの発行 まとめ 第11章 テクスチャの作成 オーバービュー 画像の読み込み VkImageの準備 ステージングバッファ ステージングバッファからイメージへ VkImageViewの作成 サンプラーの作成 まとめ 第12章 テクスチャ付きキューブを描画 頂点バッファインデックスバッファの準備 ユニフォームバッファの準備 シェーダーの準備 テクスチャの準備 ディスクリプタセットの準備 描画コマンドの発行 ディスクリプタセット関連の説明 まとめ 第13章 3Dモデルを描画 モデル形式 モデルデータの読み込み 描画の実装 まとめ 第14章 デバッグ RenderDoc NVIDIA Nsighit Graphics その他