やっていくVulkan入門

用語集

Vulkanに出てくる用語集です。

複数の呼び方(というか訳し方)がある単語もありますが、このシリーズにおいては基本的にこの表記で統一しています。

また、ここに出てくる単語群はできるだけ他の意味で使わないようにしています。(例: 「イメージ」と言ったらvk::Imageのことであり、「想像・印象」といった日常語の意味でのイメージという言葉は基本使いません。)

インスタンス

  • vk::Instanceのこと。すべてはここから始まる。
  • 同一のモデルを大量に描画する際に用いる手法(インスタンス化)における、複製されたそれぞれのモデルのこと。vk::Instanceとは何の関係もないが、名前だけ同じ。

物理デバイス

  • vk::PhysicalDeviceのこと。実際のGPUなどの機器と1対1に対応している。
  • (文脈により)実際のGPUなどの演算機器のこと。

論理デバイス

  • vk::Deviceのこと。vk::PhysicalDeviceから作られる。メモリ上の存在なので、作られたり破棄されたりする。

デバイス

  • GPUなどの外付け演算装置のこと。ホスト(主にCPU)との対比で用いられる。
  • (文脈により)物理デバイスのこと。
  • (文脈により)論理デバイスのこと。

ホスト

マザーボードに乗ったCPUのような、システムを制御するメインの演算装置のこと。デバイス(GPUなど)との対比で用いられる。

コマンド

デバイスに送信され実行される演算命令のこと。

コマンドバッファ

vk::CommandBufferのこと。一連の実行するコマンドの情報を記録するオブジェクト。コマンドをデバイスに送る際にはコマンドバッファに記録して送る。

キュー

vk::Queueのこと。デバイスが持っている、これから実行するコマンドを溜めておく場所。いわゆる待ち行列。デバイスは複数のキューを持っている場合があり、キューによって特性が違う場合がある。

キューファミリ

あるデバイスが持っている、特性の等しいキューのまとまり。デバイスのキューを指定する際は基本的に「このデバイスのこのキューファミリのこのキュー」という形で指定する。

メモリ

データを記録しておく場所。記憶装置。Vulkan用語ではなく一般用語。

デバイスメモリ

vk::DeviceMemoryのこと。デバイスから参照できるメモリ領域。デバイスメモリには種類があり、特性が異なる。内部的な実体はビデオメモリだったりメインメモリだったりする。

ビデオメモリ

GPU内のメモリのこと。GPUからは高速にアクセスできるが、CPUからはアクセスできない。

メインメモリ

マザーボードなどに乗っかっているメモリ。CPUからは普通にアクセスできるが、GPUからはアクセス出来たりできなかったりする。アクセス出来ても遅い。

レンダリング

描画処理のこと。画像生成。

プレゼンテーション/プレゼン

表示処理のこと。画像表示。

イメージ

vk::Imageのこと。画像を表すオブジェクト。

イメージビュー

vk::ImageViewのこと。イメージを操作する場合はイメージビューに変換する必要がある。

パイプライン

  • レンダリングなどの演算を行うための一連の定型処理のこと。
  • (文脈により)vk::Pipelineのこと。パイプライン処理を実行するための情報がまとまったオブジェクト。

グラフィックスパイプライン

レンダリングを行うためのパイプライン。

コンピュートパイプライン

一般の演算を行うためのパイプライン。

シェーダ

デバイス上で動く、演算を行うためのプログラム。

GLSL

シェーダを記述するために使われる、C言語ライクな高級言語。VulkanではSPIR-Vにコンパイルしたものを読み込む。

SPIR-V

Vulkanにおいて使われる、シェーダのプログラムを表す中間表現。

頂点シェーダ

頂点座標を出力するシェーダ。

ジオメトリシェーダ

頂点座標を増やして出力するシェーダ。

フラグメントシェーダ

画像の各ピクセル(=フラグメント)の色の値を出力するシェーダ。DirectX方面では「ピクセルシェーダ」とも。

ラスタライズ

(2次元の)頂点座標のデータをピクセルの集合に変換する処理。GPUがグラフィックスパイプラインの中で勝手にやってくれる。

レンダーパス

vk::RenderPassのこと。レンダリング処理の枠組み・依存関係を定義するもの。

アタッチメント

レンダーパスにおける、操作の対象となるイメージ。

サブパス

レンダーパスの中で行われる処理の単位のこと。

フレームバッファ

vk::FrameBufferのこと。レンダーパスとイメージビューを結びつけるオブジェクト。

バッファ

vk::Bufferのこと。一般的なデータ列を表すオブジェクト。コマンドバッファおよびフレームバッファとは関係がない。

頂点バッファ

各頂点の情報を持っているバッファ。

インデックスバッファ

頂点座標のインデックス(番号)を持っているバッファ。頂点バッファのみでも描画は出来るが、インデックスバッファを使うと同じ頂点の情報が使いまわせる。

ユニフォームバッファ

ユニフォーム変数の情報を持っているバッファ。

ステージングバッファ

ビデオメモリなど、GPUからのアクセスが高速なメモリにデータを転送するために中間項として用いるバッファ。

サンプラー

シェーダなどにおいて、テクスチャの色情報を取り出すもの。

深度バッファ

カメラ位置からの距離を記録するバッファ。描画順序に関わらず正しい重なり順序で描画するために用いる。