「GLSL」の版間の差分
imported>Administrator |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の9版が非表示) | |||
| 1行目: | 1行目: | ||
'''GLSL'''(語源:OpenGL Shading Language)とは、主に[[OpenGL]]で使われる[[シェーディング言語]]である。 | '''GLSL'''(語源:OpenGL Shading Language)とは、主に[[OpenGL]]で使われる[[シェーディング言語]]である。 | ||
== 互換性 == | ==互換性== | ||
GLSLには複数のバージョンが存在し、それらはそもそもの構文からして違うため[[互換性]] | GLSLには複数のバージョンが存在し、それらはそもそもの構文からして違うため[[互換性]]がない。[[ネット]]上に転がっている[[ソース]]を[[コピペ]]してもまず動かない。これから学習しようという一般的な[[プログラマー]]はコンパイルエラーで悩まされることになる。 | ||
このようなグダグダな状況は[[Steam]]で有名な[[Valve]] | このようなグダグダな状況は[[Steam]]で有名な[[Valve]]の中の人により「今週のGLSLバージョン地獄(GLSL version of the week hell)」と命名された。 | ||
*https://cpplover.blogspot.com/2014/05/opengl.html | |||
*http://richg42.blogspot.com/2014/05/things-that-drive-me-nuts-about-opengl.html | |||
==備考== | |||
当初、[[Vulkan]]でもGLSLを採用していたが、あまりにGLSLがクソすぎるためか途中から[[Google]]は[[Vulkan]]で[[HLSL]]を使えるようにした。[[Vulkan]]は実質的に[[Android]]でしか使われていないので[[Google]]の方針がすべてになるであろう。 | |||
*[[DirectX Shader CompilerでSPIR-Vを出力する]] | |||
前述の[[互換性]]問題などを考慮すると、人間が手で書くものではなく、以下のような使い方の方が現実的である。 | |||
*[[HLSL]]で書いて | |||
*[[SPIR-V]]に[[コンパイル]]して | |||
*[[GLSL]]に[[逆コンパイル]]する | |||
[[逆コンパイラ]]は[[Vulkan]]の中の人が開発してくれている。 | |||
*[[SPIR-VからGLSLを生成する]] | |||
*[[SPIR-VからHLSLを生成する]] | |||
* [[ | ==関連項目== | ||
*[[GLSLのversionディレクティブ一覧]] | |||
[[category: GLSL]] | |||