HLSL (High Level Shader Language)
2018年8月30日 (木) 08:51時点におけるimported>Administratorによる版
High Level Shading Language(読み:はいれべるしぇーでぃんぐらんげーじ、通称: HLSL)とは、マイクロソフトによってDirect3D (DirectX)向けに開発されたプログラマブルシェーダーのためのシェーディング言語である。
目次
概要
HLSLは大雑把にいえばシェーダー特化型の汎用的なプログラミング言語である。アセンブラみたいな言語とGPUメーカー独自の言語しかない状況で颯爽と登場した高級言語である。
HLSLは環境依存が非常に低い言語であるためDirectX以外にもMonoGameやPlayStation(サブセットのPSSL)などにも採用されている。Unityに至ってはOpenGL向けの実装であってもGLSLではなくHLSLの利用が推奨されている。
扱えるパイプラインステージ
HLSLで扱えるパイプラインステージ(=使える機能)の種類は環境により異なる。「どのシェーダーが使える」という制限は大雑把に「シェーダーモデル(英語:Shader Model、通称:SM)」という言葉で表される。なお、実行環境によりさらに細かな制限がある場合もある。
SM 1.x〜3.0 (Direct3D 9)
MonoGameなどのサブセットではほぼこれである。 iOSやAndroidで幅広い機種をサポートするためには致し方ない感じである。 また、OpenGL ES系ではバーテックスシェーダーの書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。