夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Vulkanミートアップに参加しました。

本日はイベント参加枠です。

今回は日本で初めてのVulkanのミートアップイベントが開催されました。

www.khronos.org

 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などの言語から生成されているようです。

registry.khronos.org

〇ツール

GFXReconstructはスクリーンショットなどVulkanアプリのキャプチャに使用されるツールです。

vulkan.lunarg.com

SwiftshaderはVulkanに対応したGPUがなくてもCPU上でVulkanを実行することができるシェーダーです。

〇ドキュメント

VulkanガイドはVulkan Specificationの内容をより分かりやすく読み解いたドキュメントになっているようです。

有志が日本語訳して日本語で読むことができるようです。

github.com

〇学生/研究者から見たVulkan by 西舘さん

Vulkan Guideの日本語訳を担当された方です。

〇Vulkanの使用例

GPUのレンダラーやGPUGPUの活用として流体シュミュレーション、 またレンダリングの研究をされているようです。

〇学習方法

3つのステップが紹介されていました。

 VulkanTutirial

クロノスグループ公式のチュートリアルです。全文英語ですが、Qiitaなどに日本語訳されたものがありました。

vulkan-tutorial.com

 Vulkan Samples

こちらもクロノスグループが公開しているサンプル集です。

github.com

 NVIDIA Vulkan Ray Tracing Tutorial

www.bing.com

GPUを開発、提供しているNVIDIAによるレイトレーシングのチュートリアルです。

〇レイトレーシング拡張機能

Vulkanではレイトレーシングハードウェアを利用するための機能がサポートされているようです。

 DXRやOptiXに似た機能が提供されているようです。

今回は以上です。

Vulkanは冒頭で述べた通りほぼほぼ初めてなのでついていくのがやっとでしたが、とても良い刺激になりました。