Vulkan_(API)
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

なお、Vulkanはハードウェアの詳細な制御を可能とするローレベルAPIである一方、従来のOpenGLはCPU-GPU間の同期などの煩雑な処理を自動で行なってくれる上位層のAPIとして、今後もメンテナンスおよびアップデートが継続されることになっている[12]
シェーディング言語

Vulkanがサポートする最初の高レベルシェーディング言語は、OpenGLと同じくGLSLとなる。ただし、VulkanではSPIR-Vを標準的に利用することが可能であるため、GLSLで記述したシェーダープログラムをオフラインコンパイルし、SPIR-V(英語版)としてバイナリに変換してからアプリケーションに同梱することが可能となる。そのほか、Vulkan SDKに付属するオフラインシェーダーコンパイラーglslangValidatorには、入力としてHLSLで書かれたソースコードを使うことができるようになるコンパイルオプションも存在する。
開発環境.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この節の加筆が望まれています。

この節に雑多な内容が羅列されています。事項を箇条書きで列挙しただけの節は、本文として組み入れるか、または整理・除去する必要があります。(2021年3月)

ウィキペディアはオンライン百科事典であって、情報を無差別に収集する場ではありません。改善やノートページでの議論にご協力ください。(2021年3月)

Vulkanの公式ソフトウェア開発キット (SDK) として、Valve社の協力のもとLunarG(英語版)社がLunarG Vulkan SDKをリリースしている。同SDKはWindowsLinux、およびmacOSに対応している。macOSに関しては後述のMoltenVKを間接的に利用している[13]。このSDKはiOSには対応していない。

また、Vulkanに対応するデバイスドライバーや独自のSDK開発を所望するベンダー向けに、ICD (Installable Client Driver) ローダーやアーキテクチャに関するドキュメントがGitHubにて公開されている。

Androidにおいては、2016年6月にリリースされたリビジョン12以降のNDKでVulkan 1.0に正式対応している[14]。なお、Android 10ではベンダードライバーによるOpenGL ES実装以外に、後述するVulkanバックエンドのANGLEを利用したOpenGL ES 2.0互換実装も利用できるようになっている[15]
補助ライブラリ

GLFW
(英語版) - OpenGL向けのマルチプラットフォームライブラリであるが、バージョン3.2以降でVulkanにも対応した[16]

vulkan-cpp - Googleの提供するVulkan用のC++向け抽象化ライブラリ[17]。ライセンスはApache License 2.0。

V-EZ - AMDの提供するVulkan用の簡略化ミドルウェア[18][19]

Anvil - AMDの提供するVulkan用フレームワーク[20]。ライセンスはMIT License

Falcor - NVIDIAの提供するVulkanおよびDirectX 12用のレンダリングフレームワーク[21]

Vulkan Memory Allocator - AMDの提供するVulkan用メモリ管理ライブラリ[22][23]。ライセンスはMIT License

ANGLE(英語版) - 各種3DグラフィックスAPIをバックエンドに利用できるOpenGL ES互換レイヤー。2021年3月現在、OpenGL ES 3.1対応のVulkanバックエンドが完成している。

言語バインディング

Vulkan-Hpp - Vulkan APIの
C++バインディング[24]。Khronos Groupが提供している。ライセンスはApache License 2.0。元々NVIDIAで開発された[25]

VulkanSharp - Vulkan APIの.NETバインディング[26]Mono Projectが提供している。ライセンスはMIT License。

互換レイヤー

Vulkan APIの制定元であるKhronos GroupはVulkan APIをAppleのMetal API上で使うための互換レイヤー「MoltenVK(英語版)」を提供している[27]。ライセンスはApache License 2.0。

またMicrosoftはVulkan APIをDirect3D 12 API上で使うためのMesaのDznバックエンドの開発を推進している[28]。なおそれ以前も同種のものとしてVulkanOnD3D12[29]やRostkatzeが存在していた[30]もののどちらも開発停止中となっていた。
MoltenVK

アップルのmacOS/iOS上では、Vulkanは2021年6月時点でネイティブサポートされていないが、Metal APIを利用してVulkanを実現するMoltenVK(旧称MetalVK)の開発が ⇒Brenwill Workshop によって進められている[31][32]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:36 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef