このページの内容

Awesome Vulkan

Vulkanを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

ハードウェア対応

SDK

IHVドキュメント

チュートリアル

アプリ

  • The Talos Principle - クローテームによるもの
  • Dota2 - ヴァルヴによるもの
  • Basemark - バスマーケットで
  • GFXBench 5 - キショントイによって。
  • ProtoStar - エピックが開発した、アンリアルエンジン4技術を用いた作品。
  • DDraceNetwork - 協働2Dプラットフォームゲーム。オプションの Vulkan backend。 - zlib website
  • Doom - by id Software.
  • vkQuake - クエーカーSpasmに基づくVulkan版クエーカー。[GPL]
  • vkQuake2 - id Softwareのクエーカー2 v3.21(Vulkanサポート)(WindowsおよびLinux)[GPL]
  • q2vkpt - リアルタイムパストラッカーVKPTがq2pro Quake 2クライアントに統合されたもの。 [gpl]
  • Linux port of SteamVR - SteamVRはVulkan APIに基づいて構築されている。
  • 3DMark - 3DMark APIオーバーヘッドテスト.
  • Q2RTX - NVIDIAがQuake IIに実装したRTXレイトレーシング。 [LICENSE]

サンプル

ライブラリ

  • 2D

    • imgui - 即時モードグラフィカルユーザーインターフェース。[MIT]
    • Skia - Googleの2Dグラフィックスライブラリには、Vulkan backendがあり、そのクロスプラットフォームsample applicationでのデモンストレーションが、独自のwindow libraryによって行われている。[BSD 3-clause] website
    • VKVG - Vulkan 2Dグラフィックスライブラリ。APIはCairoグラフィックスライブラリと同様のパターンを採用しているが、新しい関数を提供。
  • Compute

    • libvc - C++用Vulkanコンピュート [LICENSE]
    • Vulkan Kompute - 高速かつ軽量のVulkan Computeフレームワーク。高度なGPU処理用途に最適化。[Apache License 2.0]
    • ncnn - 高性能なニューラルネットワーク推論フレームワーク。VulkanベースのGPU推論を採用。[BSD 3-clause]
    • vuh - VulkanベースのC++ GPGPU計算フレームワーク。[MIT]
    • VkFFT - 効率的なVulkan FFTライブラリ [MPL-2.0 ライセンス]
  • Low Level

    • Vulkan Memory Allocator - AMDから提供される簡単なVulkanメモリ割り当てライブラリ。[MIT]
    • Fossilize - さまざまな永続Vulkanオブジェクトタイプのためのシリアライズフォーマット。[MIT]
    • vk-bootstrap - Vulkan開発をスムーズに進めるためのC++ユーティリティライブラリ。インスタンス、物理デバイス、デバイス、スワップチェーンの自動生成を実現。[MIT]
    • Google’s vulkan-cpp-library - C++11を用いたVulkan抽象化ライブラリ。メモリ、リソース管理、型およびスレッドセーフ性、システム独立性を提供。[Apache]
    • FrameGraph - フレームをタスクグラフとして表現するVulkan抽象化レイヤー。[BSD 2-clause]
    • V-EZ - プロフェッショナルワーキングステーション向けのVulkan API向け軽量ミドルウェアレイヤー。[MIT]
    • Vookoo - Vookooは、Vulkanグラフィックスデータ構造の構築および更新を支援する、依存関係のないユーティリティのセット。[MIT]
    • vpp - パフォーマンスに焦点を当て、シンプルなインターフェースを提供する現代C++ベースのVulkan抽象化。[MIT]
    • VulkanSceneGraph - Vulkan/C++17シーングラフプロジェクト。OpenSceneGraphの継承プロジェクト。
    • Vulkan-WSIWindow - マルチプラットフォームライブラリ。Vulkanウィンドウを作成し、入力イベントを処理。[Apache License 2.0]
    • Screen 13 - Rust向けに使いやすいVulkanレンダグラフ。[MIT]
  • Frameworks, Engines, Higher Level Rendering

    • Acid - 高速なC++17 Vulkanゲームエンジン。[MIT]
    • AMD’s Anvil - マルチプラットフォーム向けのVulkanフレームワーク。[LICENSE]
    • Auto-Vk - Vulkan-Hpp上に構築された、現代C++向けのVulkan便利かつ生産性の高いレイヤー。TU Wienのコンピュータグラフィックス研究部門による開発。[MIT]
    • Auto-Vk-Toolkit - Auto-Vkを基盤としたC++フレームワーク。急速なプロトタイピング、研究、教育に適した開発。TU Wienのコンピュータグラフィックス研究部門による開発。[MIT(フレームワークコード)]
    • bgfx - クロスプラットフォーム、グラフィックスAPIに依存しない、「自社エンジン/フレームワークをもって来」スタイルのレンダリングライブラリ。 [BSD-2-clause]
    • bsf - リアルタイムグラフィックアプリケーション開発用の現代C++14ライブラリ。[MIT]
    • Cinder および the story behind。[BSD]
    • DemoFramework - NXP GTEC C++11クロスプラットフォームデモフレームワーク。Vulkan、OpenGL ES、OpenVX、OpenCL、OpenVGおよびOpenCV向けの多くのサンプルを含む。 [BSD-3-clause]
    • Diligent Engine - OpenGL/GLES、Direct3D11/12およびVulkanをサポートする現代的なクロスプラットフォーム低レベルグラフィックスライブラリ。[Apache License 2.0]
    • Falcor - NVIDIAによるリアルタイムレンダリングフレームワーク。主にDX12をサポートし、Vulkanについては実験的サポートを提供。[BSD 3-clause]
    • glfw および the guide。 [LICENSE]
    • Intrinsic Engine - IntrinsicはVulkanベースのクロスプラットフォームグラフィックスおよびゲームエンジン。[Apache License 2.0]
    • Introductory Vulkan sample by GPUOpen。[MIT]
    • liblava - 現代的なC++で構成された使いやすいフレームワーク。[MIT]
    • Logi - 軽量なオブジェクト指向のVulkan抽象化フレームワーク。[BSD 2-clause]
    • Lugdunum - Vulkanと現代的なC++14を用いた現代的なクロスプラットフォーム3Dレンダリングエンジン。[MIT]
    • Nabla - Vulkan、OptiXおよびCUDAの相互操作を可能にするモジュラーレンダリングライブラリおよびフレームワーク(PC/Linux/Android対応)。[Apache License 2.0]
    • openFrameworks - 最も有名なC++クリエイティブコーディングフレームワーク。[MIT]
    • PowerVR SDK - VulkanおよびGLES開発を加速するC++クロスプラットフォーム3DグラフィックスSDK。 [LICENSE]
    • Pumex - クロスプラットフォームVulkanレンダラー。フレームグラフとシンプルなシーングラフを実装。複数の表面に同時にレンダリング可能。[MIT]
    • SDL - SDL_vulkan.hにクロスプラットフォームVulkanグラフィックスサポートを追加。[zlib]
    • small3d, ティニーVulkanベースのC++クロスプラットフォームゲーム開発フレームワーク [BSD 3-clause]
    • Spectrum - Vulkanを中心とした開発中フレームワークおよび抽象化層。
    • Tephra - 現代的なC++17グラフィックスおよびコンピュートライブラリ。VulkanとOpenGLのような高度なAPIの間のギャップを埋める。[MIT]
    • The-Forge - DirectX 12、Vulkan、macOS Metal 2 のレンダリングフレームワーク。[Apache License 2.0]
    • VKFS - クロスプラットフォームで使いやすいC++フレームワーク。Vulkanの初期化を迅速に行い、準備済み環境を提供。基本的なVulkanオブジェクトに対する高度な抽象化を提供。
    • Vulkan Launchpad - Windows、macOS、Linux向けのVulkanフレームワーク。特にVulkanの初心者に適しており、ウィーン大学のコンピュータグラフィックス研究ユニットで使用。[MIT]
  • Other API Interop and Implementations

    • visor - Vulkan Ignoble Software レンダラ。[MIT]
    • VulkanOnD3D12 - D3D12用のVulkan API。[Apache License 2.0]
    • rostkatze - D3D12の上に構築されたVulkanのC++実装 🐈[Apache License 2.0]
    • VK9 - Vulkanを使用したDirect3D 9互換層
    • VUDA - ヘッダーのみのライブラリで、CUDA Runtime APIインターフェースを提供。[MIT]
    • clspv - OpenCL Cの一部をVulkanコンピュートシェーダに変換するプロトタイプコンパイラ。[Apache License 2.0]
    • MoltenVK - iOSおよびmacOS上でVulkanを実行。[Apache-2.0]
    • Zink - Vulkanの上に構築されたOpenGL実装、Mesaプロジェクトの一部。[MIT]
    • glo / OpenGL Overload - Vulkanの上に構築されたOpenGL実装。
    • gfx-portability - MetalおよびD3D12向けのVulkanのポータビリティ実装、gfx-rsに基づく。
  • Raytracing

    • Quartz - 物理ベースのVulkan RTXパストレイサーおよび宣言型ES7のようなシーン記述言語。[LGPL-3.0]
  • Scientific

    • datoviz - 高パフォーマンスGPUによるインタラクティブな科学データ可視化(Vulkanベース)。[MIT]
    • iMSTK - VulkanおよびVTKバックエンドを用いた外科シミュレーションの構築に用いるC++ツールキット。[Apache License 2.0]
  • Shaders

    • glslang - glslをspirvにコンパイルするためのライブラリ [BSD 3-Clause]
    • SPIRV-Cross - spirvのリフレクションを実現し、Vulkanパイプラインレイアウトの作成を簡易化するライブラリ [Apache-2.0 ライセンス]
  • Outdated ⚠️

バインディング

  • ash - ルスト向けのヴァルカンバインディング。[MIT]
  • gfx-rs - ルスト向けの低オーバーヘッドヴァルカン類のGPUAPI。[Apache License 2.0]
  • libvulkan.lua - ルアーバインディングによるヴァルカン。
  • dvulkan - 自動生成されたDバインディングによるヴァルカン。
  • ErupteD - 別の自動生成されたDバインディングによるヴァルカン。
  • flextGL - 最小限のヴァルカンヘッダー/ローダー生成器および the blog post について。
  • Silk.NET - C#向けのヴァルカンおよびその他のバインディング。[MIT]
  • vulkan - ハスケル向けのヴァルカンおよびヴァルカンメモリアロケータバインディング。[BSD-3-Clause]
  • nvk - JavaScript向けのヴァルカンバインディング。[MIT]
  • racket-vulkan - ラケット向けのヴァルカンバインディングおよび detailed implementation notes。[MIT]
  • Vulkan-hpp NVIDIAから発展したオープンソースヴァルカンC++APIおよび the blog について。
  • VulkanSharp - C#向けのヴァルカンバインディング。[MIT]
  • Vulkano - 安全かつ豊かなルストによるヴァルカンAPIのラッパー。[MIT]
  • LWJGL - ライトウェイトなJavaゲームライブラリ3にはヴァルカンバインディングがある。[BSD]
  • SharpVk - Linq-to-SPIR-Vおよび NuGet package を用いたC#向けのヴァルカンバインディング。[MIT]
  • vulkan - CFFIで生成された究極のPythonバインディング。[Apache Licence 2.0]
  • vulkan-go - Go向けのヴァルカンバインディング。[MIT]
  • PasVulkan - ヴァルカンバインディングおよびオブジェクトパascal向けのハイレベルラッパーライブラリ。[Zlib]
  • vulkan-zig - Zig向けのヴァルカンバインディング生成器。[MIT]
  • VK²Kotlinによるヴァルカンラッパー:コードの表現力と安全性がグラフィックパワーアップ。[Apache License 2.0]
  • Vortice.Vulkan - .NET Standard 2.0 および .NET5 C# バインディング [MIT]
  • Raw Node.js Vulkan API - Node.JS 用の新しい Vulkan バインディング。LWJGL-3 または NVK に類似。
  • Deno Vulkan - Deno 用の Vulkan API バインディング。[Apache ライセンス 2.0]

ツール

  • Nsight™ Visual Studio Edition 5.2+
  • LoaderAndValidationLayers - KhronosGroup によるもの。[Apache ライセンス 2.0]
  • renderdoc - baldurk による、独立したグラフィックスデバッグツール。[MIT]
    • RDCtoVkCpp - RenderDoc の Vulkan キャプチャをコンパイル可能かつ実行可能な C++ コードに変換。[MIT]
  • VulkanTools - LunarG のツール(レイヤーおよび設定ツール)。[Apache ライセンス 2.0]
  • VKtracer - Vulkan 用のユニバーサルかつ使いやすいプロファイラー。
  • CodeXL - CodeXL がオープンソース化。[MIT]
  • Qualcomm Adreno GPU Tools - サンプル、Adreno 推奨レイヤー、Adreno GPU 用のベストプラクティスドキュメント。
  • Qualcomm Snapdragon Profiler - Adreno GPU 用の Vulkan イベント記録およびフレームキャプチャを含む。
  • Arm Mobile Studio - Arm Graphics Analyzer を含み、グラフィックスパフォーマンスの問題を簡単にトレース可能であり、Arm Streamline パフォーマンスアナライザーを含み、システム全体のパフォーマンスを把握し、CPU および GPU のボトルネックを迅速に特定できる。
  • Open Capture and Analytics Tool (OCAT) - D3D11、D3D12、および Vulkan 用の FPS オーバーレイとパフォーマンス測定を提供。[MIT]
  • gapid - グラフィックスAPIデバッガー。Android OpenGL ES および Vulkan アプリケーションのトレースと再実行が可能。[Apache License 2.0]
  • Arm - PerfDoc - Mali アプリケーション開発ベストプラクティスドキュメントに対するバリデーションレイヤー。[MIT]
  • glsl_trace - Vulkan および OpenGL 用のシェーダデバッグとプロファイリングライブラリ。[MIT]
  • MangoHud - Vulkan および OpenGL 用の FPS、温度、CPU/GPU ロードをモニタリングするオーバーレイ。[MIT]

書籍

  • Introduction to Computer Graphics and the Vulkan API Kenwright による — Vulkan API を用いて、基礎から実践的にコンピュータグラフィックスの興味深いテーマに導入する。
  • Learning Vulkan - Parminder Singh による — よく理解できる例を用いて、Vulkan API およびそのプログラミング技術に着手する。
  • Vulkan Cookbook- Pawel Lapinski による — Vulkan API を最大限に活用するための幅広いグラフィックスプログラミングおよびGPU計算手法を探索。
  • Vulkan Programming Guide - Graham Sellers および John Kessenich による - 多くの分野における強力な3D開発技術を紹介します。
  • Mastering Graphics Programming with Vulkan - マルコ・カストリナガブリエル・サソネが、初原理から最先端技術までを経て構築した現代的なレンダリングエンジンを構築する。

論文

Khronos

コミュニティ

関連リスト

  • awesome - 素晴らしいリストの厳選リスト。
  • awesome-opengl - 素晴らしいOpenGLライブラリ、デバッガーやリソースの厳選リスト。
  • gamedev - ゲーム開発に関する素晴らしいリスト。
  • graphics-resources - グラフィックプログラミング向けリソース一覧
  • awesome-d3d12 - 厳選された素晴らしい D3D12 ライブラリ、デバッグツールおよびリソース一覧

ライセンス

Creative Commons License

この作品はCreative Commons Attribution 4.0 International Licenseのライセンスで許可されています。

コントリビューション

Please see CONTRIBUTING for details.