差分
ナビゲーションに移動
検索に移動
'''ShaderConductor'''とは、[[Microsoft]]が[[オープンソース]]のもとで[[開発]]していた[[HLSL]]を[[SPIRV]]や[[GLSL]]などに変換するツールである。
似たようなツールは他にもあるが、ShaderConductorは「[[GLSL]]への変換の際に細かくバージョンを指定できる」という特徴がある。
一時期の[[GLSL]]は「[[今週のGLSLバージョン地獄]]」と言われるほど破壊的な仕様変更が毎週のように行われ今なお後遺症に苦しんでいる。[[Linux]]、[[Mac]]、[[Android]]、[[WebGL]]、これらは「GLSL」を掲げているがどれも書式が微妙に違うという。
この問題の解決策としてShaderConductorを使うことで「1つのHLSLから全バージョンのGLSLを出力してしまう」という力技を使うことができる。実行時に環境を見てどのGLSLを使うかを分岐させればいい。
ただ公式の開発は数年前から止まっている。
そのせいで大量の[[フォーク]]が作られている。
== 関連項目 ==
* [[shaderc]] = [[Google]]製の似たようなツール
== 外部リンク ==
* https://github.com/microsoft/ShaderConductor/network
* https://github.com/cpt-max/ShaderConductor
似たようなツールは他にもあるが、ShaderConductorは「[[GLSL]]への変換の際に細かくバージョンを指定できる」という特徴がある。
一時期の[[GLSL]]は「[[今週のGLSLバージョン地獄]]」と言われるほど破壊的な仕様変更が毎週のように行われ今なお後遺症に苦しんでいる。[[Linux]]、[[Mac]]、[[Android]]、[[WebGL]]、これらは「GLSL」を掲げているがどれも書式が微妙に違うという。
この問題の解決策としてShaderConductorを使うことで「1つのHLSLから全バージョンのGLSLを出力してしまう」という力技を使うことができる。実行時に環境を見てどのGLSLを使うかを分岐させればいい。
ただ公式の開発は数年前から止まっている。
そのせいで大量の[[フォーク]]が作られている。
== 関連項目 ==
* [[shaderc]] = [[Google]]製の似たようなツール
== 外部リンク ==
* https://github.com/microsoft/ShaderConductor/network
* https://github.com/cpt-max/ShaderConductor