三角形が表示できた、と思ったら違った

サンプルだけど、三角形が表示できた。
ということで、ソースコード眺めてた。

最初に言わせてほしい、Vulkan滅茶苦茶やる事多い

とりあえず表示できた三角形を載せてみます。

ここから本題。
ソースコードをいくら眺めても頂点情報や色情報を明記した場所が見当たらない。セマフォだとか新しい物はいろいろ知れて理解は幸せなのだが、なぜ三角形が表示されているのかわからない。

答え
そういえばシェーダで宣言してた

結論
事実上、まだ三角形表示できてない

GLSLからSPIR-Vファイルにする

SPIR-Vファイルとは、VulkanにおけるGLSLのシェーダファイルらしい
ただし、SPIR-Vファイルはバイナリファイルなので、直接作成できない

SPIR-Vファイルを得るためには、GLSLからの変換する方法があるとのこと
コマンドは以下の通り

glslangValidator -V 入力シェーダ名 -o 出力シェーダ名

glslangValidator自体はGLSLのチェック用スクリプトらしい。Vオプションで、これをSPIR-Vに変換できる。ただ出力ファイル名を指定しないと生成されなかったのでそっちも追加

ちなみに、最初は直接GLSLファイルを食べさせて食中毒起こしてました。サンプルファイルにGLSLファイルしか置いてなかったらそう思い込むよね・・・

std::optionalを使えるようにする

Visual Studio C++でstd::optionalが使えなかった
解決策は、ISO C++17の標準仕様を設定すれば良い

設定箇所

VS C++は標準への対応が遅いとか聞くけど、一応は設定できました。でも初期設定じゃないって事は何かありそう・・・
std::optionalに限らず、動くはずの物が動かなかったら、それがいつ追加された機能なのか確認するといいかも

Vulkanとか

とりあえずサンプルがコンパイル通るまで

  1. VulkanのSDKインストール
    https://vulkan.lunarg.com/home/welcome
    この辺からSDKダウンロードしてインストールする。exe形式なので実行するだけ
    デフォルトで C:\VulkanSDK 以下に配置されました
  2. GLFWの用意
    サンプルがGLFW使ってるので用意
    今回は割愛
  3. パス通す
    Visual Studio 2019からIncludeファイルのディレクトリとLibへのパスを通す
    一般的なことなので省略
  4. 追加のライブラリを設定
    3に続いて依存するライブラリを設定する
    一般的なことなので省略
  5. サンプルをビルドする
    サンプル取得元:https://vulkan-tutorial.com/
    サンプルのGitHub:https://github.com/Overv/VulkanTutorial
    上記設定が通ってれば普通にビルドできました

ビルドした結果
これだけだと何なのか分からない上に、本当にVulkan使ってるのかわからないですね。

舞い戻る

  1. 連休なので何かしたいなと思ったけど、そのままじゃ何もしないだろう
  2. やった事を書き出すなりしてみよう
  3. 更新してないサイトは更新が面倒
  4. 更新してないtwitterも何か違う
  5. 消したブログを復活させよう

よって復活のブログです
更新は完全に気まぐれ。内容は恐らくその時々の気まぐれ。