「HLSL (High Level Shader Language)」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator |
||
2行目: | 2行目: | ||
== 概要 == | == 概要 == | ||
− | HLSLは大雑把にいえば[[シェーダー]]特化型の汎用的な[[プログラミング言語]]である。[[アセンブラ]]みたいな[[言語]] | + | 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) === | === SM 1.x〜3.0 (Direct3D 9) === | ||
14行目: | 16行目: | ||
[[MonoGame]]などのサブセットではほぼこれである。 | [[MonoGame]]などのサブセットではほぼこれである。 | ||
− | [[iOS]]や[[Android]] | + | [[iOS]]や[[Android]]で幅広い機種をサポートするためには致し方ない感じである。また、[[OpenGL ES]]系では[[バーテックスシェーダー]]の書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。 |
− | |||
=== SM 4.x (Direct3D 10) === | === SM 4.x (Direct3D 10) === |
2018年8月30日 (木) 09:29時点における版
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系ではバーテックスシェーダーの書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。