3-4. パイプライン

パイプラインとは、3DCGの基本的な描画処理をひとつながりにまとめたものです。

ほぼ全ての3DCGは三角形の集まりであり、私たちが最初に持っているものは三角形の各点の色や座標ですが、最終的に欲しいものは画面のどのピクセルがどんな色なのかという情報です。この間を繋ぐ演算処理は大体お決まりのパターンになっており、まとめてグラフィックスパイプラインとなっています。

(画像はvulkan tutorialより引用)

そしてもちろんこの処理は全ての部分が決まっているのではなく、プログラマ側で色々指定する部分があり、それらの情報をまとめたものがパイプラインオブジェクト( vk::Pipeline)です。

実際に使用して描画処理を行う際にはコマンドバッファにパイプラインをバインドし、ドローコールを呼びます。(これは以降の節でやります)

Vulkanにおけるパイプラインには「グラフィックスパイプライン」と「コンピュートパイプライン」の2種類があります。コンピュートパイプラインはGPGPUなどに使うもので、今回は普通に描画が目的なのでグラフィックスパイプラインを作成します。グラフィックスパイプラインは vk::DevicecreateGraphicsPipelineメソッドで作成できます。

先に言っておくと、吐くほど長いです。

長いので各変数に関する詳細な解説はおいおいやっていくと思います。

そしてこの中の変数の大半は変える必要があまりなく、やりたいことの必要に応じて意味を学んでいけば十分だとも思います。

とは言っても意味の分からない変数が大量に並んでいるのはあまりにも不気味だと思うので、それぞれの数値を変えて遊びながらちゃんと意味を学ぶオマケの節をいずれ書きます。


この節ではパイプラインの作成をやりました。次節ではシェーダモジュールの作成をやります。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です