差分

ナビゲーションに移動 検索に移動

HLSL (High Level Shader Language)

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

案内メニュー