ページ「HLSL (High Level Shader Language)」と「パックドピクセル」の間の差分

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

2016年12月19日 (月) 06:57時点における最新版

パックドピクセル英語:packed pixel)とは、コンピューターグラフィックスにおける二次元画像の表現方式のひとつで、1ピクセル単位で色を管理する方式である。

概要[編集 | ソースを編集]

メモリ空間では以下のようにピクセル単位でデータが並ぶ。

  • RGBA,RGBA,RGBA…

パックドピクセル方式ではプログラムから1ピクセルを取り出したり書き換えたりする処理を簡単に行えるという特徴がある。また液晶ディスプレイドットもバックドピクセルのような配列になっているためサブピクセルの処理が行いやすいという利点もある。

一方で「赤だけ」などと色単位(三原色単位)で画像処理を行いたい場合には効率が悪い。 たとえばJPEGの圧縮伸長ルーチンなどがこれに該当する。

DOS/VVGA)ではパックドピクセル方式を採用しておりPC-9801よりゲームが作りやすかった。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]