メインメニューを開く

差分

GLSL

331 バイト追加, 2021年7月8日 (木) 02:08
編集の要約なし
'''GLSL'''(語源:OpenGL Shading Language)とは、主に[[OpenGL]]で使われる[[シェーディング言語]]である。
== 互換性 ==GLSLには複数のバージョンが存在し、それらはそもそもの構文からして違うため[[互換性]]がない。一般的ながない。[[ネット]]上に転がっている[[ソース]]を[[コピペ]]してもまず動かない。これから学習しようという一般的な[[プログラマー]]はコンパイルエラーで悩まされることになる。
このようなグダグダな状況は[[Steam]]で有名な[[Valve]]の中の人に「今週のGLSLバージョン地獄( の中の人により「今週の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
* 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]]の方針がすべてになるであろう。
== 備考 ==あまりにGLSLがクソすぎて*[[GoogleDirectX Shader CompilerでSPIR-Vを出力する]]は[[Vulkan]]で[[HLSL]]を使えるようにした。[[Vulkan]]は実質的に[[Android]]でしか使われていないので[[Google]]の方針がすべてになるであろう。
* 前述の[[DirectX Shader CompilerでSPIR-Vを出力する互換性]]問題などを考慮すると、人間が手で書くものではなく、以下のような使い方の方が現実的である。
前述の互換性問題などを考慮すると、人間が手で書くものではなく、以下のような使い方の方が現実的である。*[[HLSL]]で書いて*[[SPIR-V]]に[[コンパイル]]して*[[GLSL]]に[[逆コンパイル]]する
* [[HLSL逆コンパイラ]]で書いて* [[SPIR-VVulkan]]に[[コンパイル]]して* [[GLSL]]に[[逆コンパイル]]するの中の人が開発してくれている。
逆コンパイラはVulkanの中の人が開発してくれている。*[[SPIR-VからGLSLを生成する]]*[[SPIR-VからHLSLを生成する]]
==関連項目==* [[SPIR-VからGLSLを生成するGLSLのversionディレクティブ一覧]]
* [[SPIR-VからHLSLを生成するcategory: コンピューター・グラフィックス]][[category: 3DCG]]== 関連項目 == * [[GLSLのversionディレクティブ一覧category: シェーディング言語]]