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