「HLSL (High Level Shader Language)」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''High Level Shading Language'''(読み:はいれべるしぇーでぃんぐらんげーじ、通称: HLSL)とは、マイクロソフトによってDire...」)
 
imported>Administrator
2行目: 2行目:
  
 
== 概要 ==
 
== 概要 ==
HLSLは大雑把にいえば[[シェーダー]]特化型の汎用的な[[プログラミング言語]]である。
+
HLSLは大雑把にいえば[[シェーダー]]特化型の汎用的な[[プログラミング言語]]である。[[アセンブラ]]みたいな[[言語]]とGPUメーカー独自の言語しかない状況で颯爽と登場した[[高級言語]]である。
[[アセンブラ]]みたいな[[言語]]とGPUメーカー独自の言語しかない状況で颯爽と登場した[[高級言語]]である。
 
  
HLSLは環境依存が非常に低い言語であるため[[DirectX]]以外にも[[MonoGame]]や[[PlayStation]]([[サブセット]]の[[PSSL]])などにも採用されている。
+
HLSLは環境依存が非常に低い言語であるため[[DirectX]]以外にも[[MonoGame]]や[[PlayStation]]([[サブセット]]の[[PSSL]])などにも採用されている。[[Unity]]に至っては[[OpenGL]]向けの実装であっても[[GLSL]]ではなくHLSLの利用が推奨されている。
[[Unity]]に至っては[[OpenGL]]向けの実装であっても[[GLSL]]ではなくHLSLの利用が推奨されている。
 
  
 
== 扱えるパイプラインステージ ==
 
== 扱えるパイプラインステージ ==
* SM 1.x〜3.0 (Direct3D 9)
+
=== SM 1.x〜3.0 (Direct3D 9) ===
** [[バーテックスシェーダー]]
+
* [[バーテックスシェーダー]]
** [[ピクセルシェーダー]]
+
* [[ピクセルシェーダー]]
* SM 4.x (Direct3D 10)
+
 
** [[ジオメトリシェーダー]]
+
[[MonoGame]]などのサブセットではほぼこれである。
* SM 5.x (Direct3D 11/12)
+
[[iOS]]や[[Android]]で幅広い機種をサポートするためには致し方ない感じである。
** [[ハルシェーダー]]
+
また、[[OpenGL ES]]系では[[バーテックスシェーダー]]の書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。
** [[ドメインシェーダー]]
+
 
** [[コンピュートシェーダー]]
+
=== SM 4.x (Direct3D 10) ===
 +
* [[ジオメトリシェーダー]]
 +
 
 +
=== SM 5.x (Direct3D 11/12) ===
 +
* [[ハルシェーダー]]
 +
* [[ドメインシェーダー]]
 +
* [[コンピュートシェーダー]]
  
 
== 関連項目 ==
 
== 関連項目 ==

2018年8月30日 (木) 08:36時点における版

High Level Shading Language(読み:はいれべるしぇーでぃんぐらんげーじ、通称: HLSL)とは、マイクロソフトによってDirect3D (DirectX)向けに開発されたプログラマブルシェーダーのためのシェーディング言語である。

概要

HLSLは大雑把にいえばシェーダー特化型の汎用的なプログラミング言語である。アセンブラみたいな言語とGPUメーカー独自の言語しかない状況で颯爽と登場した高級言語である。

HLSLは環境依存が非常に低い言語であるためDirectX以外にもMonoGamePlayStationサブセットPSSL)などにも採用されている。Unityに至ってはOpenGL向けの実装であってもGLSLではなくHLSLの利用が推奨されている。

扱えるパイプラインステージ

SM 1.x〜3.0 (Direct3D 9)

MonoGameなどのサブセットではほぼこれである。 iOSAndroidで幅広い機種をサポートするためには致し方ない感じである。 また、OpenGL ES系ではバーテックスシェーダーの書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。

SM 4.x (Direct3D 10)

SM 5.x (Direct3D 11/12)

関連項目

参考文献