「SPIRV-Cross」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
1行目: | 1行目: | ||
− | '''SPIRV-Cross'''とは、[[オープンソース]] | + | '''SPIRV-Cross'''とは、[[オープンソース]]のもとで開発されているVulkan SDKに含まれる公式ツールのひとつで、[[Vulkan]]で使われる[[SPIR-V]]を[[GLSL]]([[OpenGL]])や[[HLSL]]([[DirectX]])、[[MSL]]([[Metal]])、[[C++]]などの[[高級言語]]に戻す[[逆コンパイラ]]である。 |
− | Vulkan | + | シェーダー内で使用されている変数などを[[JSON]]形式で列挙するリフレクション機能もある。 |
+ | Vulkan SDKにはリフレクション専用の「SPIRV-Reflect」というツールも含まれているが、ぶっちゃけSPIRV-Crossのリフレクションの方が扱いやすいと思う。 | ||
== 概要 == | == 概要 == | ||
− | [[SPIR-V]]とSPIRV- | + | [[SPIR-V]]とSPIRV-Crossを使えば様々な[[シェーディング言語]]間で相互変換が可能になる。 |
ぶっちゃけ[[シェーディング言語]]は[[HLSL]]([[Cg言語]])が圧倒的な勢力を誇る。[[DirectX]]はもとより[[Unity]]が採用しているため、この勢いが衰えない限りは主流であり続けるであろう。[[GLSL]]はどんなに頑張っても[[WebGL]]のちょっとしたデモくらいにしか使われない。 | ぶっちゃけ[[シェーディング言語]]は[[HLSL]]([[Cg言語]])が圧倒的な勢力を誇る。[[DirectX]]はもとより[[Unity]]が採用しているため、この勢いが衰えない限りは主流であり続けるであろう。[[GLSL]]はどんなに頑張っても[[WebGL]]のちょっとしたデモくらいにしか使われない。 | ||
ならばすべての環境で[[HLSL]]を使えばいい。SPIR-VとSPIRV-Crossがあれば何でもできる。 | ならばすべての環境で[[HLSL]]を使えばいい。SPIR-VとSPIRV-Crossがあれば何でもできる。 | ||
− | |||
== 関連項目 == | == 関連項目 == | ||
− | |||
* [[SPIR-VからGLSLを生成する]] | * [[SPIR-VからGLSLを生成する]] | ||
* [[SPIR-VからHLSLを生成する]] | * [[SPIR-VからHLSLを生成する]] | ||
== 外部リンク == | == 外部リンク == | ||
+ | * https://github.com/KhronosGroup/SPIRV-Cross | ||
− | + | [[category: Vulkan]] |
2022年11月28日 (月) 06:54時点における版
SPIRV-Crossとは、オープンソースのもとで開発されているVulkan SDKに含まれる公式ツールのひとつで、Vulkanで使われるSPIR-VをGLSL(OpenGL)やHLSL(DirectX)、MSL(Metal)、C++などの高級言語に戻す逆コンパイラである。
シェーダー内で使用されている変数などをJSON形式で列挙するリフレクション機能もある。 Vulkan SDKにはリフレクション専用の「SPIRV-Reflect」というツールも含まれているが、ぶっちゃけSPIRV-Crossのリフレクションの方が扱いやすいと思う。
概要
SPIR-VとSPIRV-Crossを使えば様々なシェーディング言語間で相互変換が可能になる。
ぶっちゃけシェーディング言語はHLSL(Cg言語)が圧倒的な勢力を誇る。DirectXはもとよりUnityが採用しているため、この勢いが衰えない限りは主流であり続けるであろう。GLSLはどんなに頑張ってもWebGLのちょっとしたデモくらいにしか使われない。
ならばすべての環境でHLSLを使えばいい。SPIR-VとSPIRV-Crossがあれば何でもできる。