Help us understand the problem. What is going on with this article?

初めてのvulkanプログラム第1章 ②Vulkan プログラムでの処理の流れ

目次に戻る

step1 インスタンスとデバイスの列挙

Vulkan application は、Instanceの初期化から始めます。アプリケーションごとの状態は、VKInstanceオブジェクトに格納されます。インスタンスが作成されるとvulkanライブラリーが初期化されアプリケーションの情報を実装することができます。vulkanライブラリーを初期化した後、どのデバイスを使用するか探して選択する必要があります。vulkanでは、複数のデバイスを使用することができます。

step2 キューとデバイス

使用するデバイスをより具体的に記述した論理デバイスを作成する必要があります。
キューファミリーには、いくつかの種類に分かれており、各キューは、制限されたコマンドを使用することができます。例えば計算コマンドのみを行うキューや、メモリーの操作するコマンドキューなどがあります。キューのcommandは、そのグラフィクスデバイスによって異なる場合があります。

step3 ウィンドウサーフェスとスワップチェーン

Vulkanは、プラットフォームに依存しないAPIなのでそれ単体でウィンドウシステムとして機能させることができません。vulkanと、ウィンドウシステムの間を接続させるには、WSI(Windows system Integration)拡張させる必要があります。そのためにウィンドウサーフェススワップチェーンが必要です。

サーフェスは、プラットフォーム上のウィンドウを抽象化したものです。Vulkanでは、この機能は、オプションなので、ウィンドウが必要ない場合には、非表示にすることができます。

スワップチェーンは、レンダリング結果をサーフェスに提示する機能を提供します

step4 Image viewとバッファ

スワップチェーンが作成されたので、その中のImageハンドラーを取得し、その後のレンダリング処理に渡します。
レンダリング処理に渡すものは、2つあり、vkImageViewVkFrameBufferです。

vkImageViewは、Imageオブジェクトをパイプラインに含むには、必要です
VkFrameBufferは、レンダーパスインスタンスが使用する特定のメモリを表します。

step5 レンダーパス

Vulkanのレンダリングパスでは、レンダリング操作中に、使用される画像のタイプ使用方法、その内容の処理方法などを指定しています。

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

3dを2dに変換するといったいわゆるシェーダモジュールに関する処理を記述します。
グラフィクスパイプライン Wikipedia

step7 コマンドバッファーとコマンドプール

Vulkanにおける描写などの操作は、あらかじめキューに登録しておく必要があります。これらの命令は、コマンドプールに記録されます。そしてコマンドプールは、コマンドバッファを通してGPUに処理を渡します。

step8 メインループ

描写ループは、まずスワップチェーンからイメージを取得します。次にイメージに適切なコマンドバッファを選択しvkQueueSubmit()を行い実行します。最後に画像をスワップチェーンに戻して画像を描写します。

最後に

つたない文章を最後まで見ていただきありがとうございます。次回からは、上のステップを順にプログラムを書いていきます。拡散してもらえると嬉しいです。

連絡先

tweeter: tositada_nakada
mail: nakadasanda@outlook.com

寄付

paypal: tositada_nakada
Amazon: 欲しいものリスト

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away