差分

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

パックドピクセル

1,122 バイト除去, 2016年12月19日 (月) 06:57
'''High Level Shading Languageパックドピクセル'''(読み:はいれべるしぇーでぃんぐらんげーじ、通称: [[HLSL英語]])とは、:packed pixel)とは、[[マイクロソフトコンピューターグラフィックス]]によって[[Direct3D]] ([[DirectX]])向けに[[開発]]された[[プログラマブルシェーダー]]のための[[シェーディング言語]]である。における二次元画像の表現方式のひとつで、1ピクセル単位で色を管理する方式である。
== 概要 ==
HLSLは大雑把にいえばメモリ空間では以下のように[[シェーダーピクセル]]特化型の汎用的な単位で[[プログラミング言語データ]]である。[[アセンブラ]]みたいな[[言語]]とGPUメーカー独自の機種依存の激しい言語しかない状況の中で颯爽と登場した[[高級言語]]である。が並ぶ。* RGBA,RGBA,RGBA…
HLSLは環境依存が非常に低い言語であるため、そのサブセットが多数存在する。たとえばパックドピクセル方式では[[MonoGameプログラム]]から1ピクセルを取り出したり書き換えたりする処理を簡単に行えるという特徴がある。また[[PlayStation]]([[サブセット液晶ディスプレイ]]の[[PSSL]])などが採用ある。[[Unity]]に至っては[[OpenGLドット]]向けの実装であってももバックドピクセルのような配列になっているため[[GLSLサブピクセル]]ではなくHLSLの利用が推奨されている。の処理が行いやすいという利点もある。
== 扱えるパイプラインステージ ==一方で「赤だけ」などと色単位(三原色単位)で画像処理を行いたい場合には効率が悪い。HLSLで扱える機能(パイプラインステージ)は環境により異なる。どの機能が使えるかという制限は大雑把に「たとえば[[シェーダーモデルJPEG]](英語:Shader Model、通称:SM)」という言葉で表される。2018年時点では「[[PC]]から[[スマホ]]までカバーするSM3.0」と、[[ハイエンドPC]]を想定した「それ以上」の2種類に大分類されると考えておけばよい。の圧縮伸長ルーチンなどがこれに該当する。
なお、実行環境によりさらに細かな制限がある場合もある。 === SM 1.x〜3.0 (Direct3D 9) ===* [[バーテックスシェーダー]]* [[ピクセルシェーダー]] [[MonoGame]]などのサブセットではほぼこれである。[[iOS]]や[[Android]]で幅広い機種をサポートするためには致し方ない感じである。また、[[OpenGL ESDOS/V]]系では[[バーテックスシェーダー]]の書き戻しができないなどの制限もあり、それらは実行時にはじめてエラーになる。気をつけよう。 === SM 4.x (Direct3D 10) ===* [[ジオメトリシェーダー]] === SM 5.x (Direct3D 11/12) ===* [[ハルシェーダーVGA]]* )ではパックドピクセル方式を採用しており[[ドメインシェーダーPC-9801]]* より[[コンピュートシェーダーゲーム]]が作りやすかった。
== 関連項目 ==
* [[プラナー方式]]
== 参考文献 ==
匿名利用者

案内メニュー