本日はイベント参加枠です。
今回は日本で初めてのVulkanのミートアップイベントが開催されました。
VulkanのガイドブックであるVulkanガイドの執筆の際にコミュニティ内でミートアップの話題が上がり、第一回が実現したとのことです。
筆者はUnityアプリケーションを使用する際にQuestでOpenGLを使用していましたが、近年DirectX 12同様にVulkanが注目されているという認識で、本格的に使用したことはなく、今回Vulkanはどのようなものなのか? 何ができるのか?というところで興味を持ち、参加しました。
〇Introduction to Vulkan by Spencer Fricke
登壇者のspencerさんは元サムソンのVulkanエンジニアであり、米国クロノスの代表であったそうです。
〇Vulkanとは?
Vulkanはクロノスグループが開発、公開しているCPU上で動作し、GPUを制御するAPIです。
〇Vulkanが解決する問題
VulkanはGPU上で動くグラフィックスAPIです。
もともとグラフィカルなアプリケーションに使用されていましたが、近年では機械学習などにも使用されているようです。(GPGPU)
Vulkanの目的は様々な開発者がそれぞれのGPUで共通したアプリケーションを同じ感覚で構築することを目的としたAPIです。
OpenGLの後継に当たるそうです。
GPUをより低レベルで扱いたいという開発者の声にこたえる形で6年前にリリースされました。
より低レベルなハードウェアにアクセスできる低レベルグラフィックスAPIに数えられています。
Vulkanの最大の特徴として同時期にリリースされたDirectXやMetalに比べ、ほぼすべてのプラットフォームをサポートしている点です。
iOSに関してもVulkan Porting Toolsというものを使用することで使用可能になるようです。
またVulkanを扱うための中間言語としてSPIR-Vがあり、こちらはHLSLやGLSLなどの言語から生成されているようです。
〇ツール
GFXReconstructはスクリーンショットなどVulkanアプリのキャプチャに使用されるツールです。
SwiftshaderはVulkanに対応したGPUがなくてもCPU上でVulkanを実行することができるシェーダーです。
〇ドキュメント
VulkanガイドはVulkan Specificationの内容をより分かりやすく読み解いたドキュメントになっているようです。
有志が日本語訳して日本語で読むことができるようです。
〇学生/研究者から見たVulkan by 西舘さん
Vulkan Guideの日本語訳を担当された方です。
〇Vulkanの使用例
GPUのレンダラーやGPUGPUの活用として流体シュミュレーション、 またレンダリングの研究をされているようです。
〇学習方法
3つのステップが紹介されていました。
VulkanTutirial
クロノスグループ公式のチュートリアルです。全文英語ですが、Qiitaなどに日本語訳されたものがありました。
Vulkan Samples
こちらもクロノスグループが公開しているサンプル集です。
NVIDIA Vulkan Ray Tracing Tutorial
GPUを開発、提供しているNVIDIAによるレイトレーシングのチュートリアルです。
〇レイトレーシング拡張機能
Vulkanではレイトレーシングハードウェアを利用するための機能がサポートされているようです。
DXRやOptiXに似た機能が提供されているようです。
今回は以上です。
Vulkanは冒頭で述べた通りほぼほぼ初めてなのでついていくのがやっとでしたが、とても良い刺激になりました。