「ピクセルシェーダー」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
1行目: 1行目:
 
'''ピクセルシェーダー'''([[英語]]:Pixel Shader)とは、[[シェーダー]]のうち、[[グローバル変数]](実質的に[[定数]])と[[ポリゴン]]内部の[[ピクセル]]が入力され、それを加工して出力するものをいう。
 
'''ピクセルシェーダー'''([[英語]]:Pixel Shader)とは、[[シェーダー]]のうち、[[グローバル変数]](実質的に[[定数]])と[[ポリゴン]]内部の[[ピクセル]]が入力され、それを加工して出力するものをいう。
  
[[OpenGL]]界隈では宗教上の理由で「フラグメントシェーダー」と呼ばれる。
+
[[OpenGL]]界隈では宗教上の理由で「[[フラグメントシェーダー]]」と呼ばれる。
  
== 概要 ==
+
==概要==
 
ピクセルシェーダーは[[ジオメトリシェーダー]]により頂点([[ポリゴン]])から[[ピクセル]]群に変換された[[データ]]を入力として受け取り、それを加工した[[ピクセル]]群を出力する。
 
ピクセルシェーダーは[[ジオメトリシェーダー]]により頂点([[ポリゴン]])から[[ピクセル]]群に変換された[[データ]]を入力として受け取り、それを加工した[[ピクセル]]群を出力する。
  
13行目: 13行目:
 
[[シェーダーモデル]]3.0(DirectX9)までは[[ジオメトリシェーダー]]は[[GPU]]の固定機能であり[[プログラマ]]は特段意識することはなかった。[[バーテックスシェーダー]]で加工された[[ポリゴン]]が勝手に[[ピクセル]][[配列]]に変換されてピクセルシェーダーが呼ばれる感じであった。[[iOS]]や[[Android]]なんかの[[OpenGL ES]]系は下位互換性の関係から今でもそんな感じである。
 
[[シェーダーモデル]]3.0(DirectX9)までは[[ジオメトリシェーダー]]は[[GPU]]の固定機能であり[[プログラマ]]は特段意識することはなかった。[[バーテックスシェーダー]]で加工された[[ポリゴン]]が勝手に[[ピクセル]][[配列]]に変換されてピクセルシェーダーが呼ばれる感じであった。[[iOS]]や[[Android]]なんかの[[OpenGL ES]]系は下位互換性の関係から今でもそんな感じである。
  
== 主な用途 ==
+
==主な用途==
 
主に[[ポリゴン]]に色を塗ったり、[[テクスチャ]]を貼ったり、[[陰影]]をつけたりするのに使う。
 
主に[[ポリゴン]]に色を塗ったり、[[テクスチャ]]を貼ったり、[[陰影]]をつけたりするのに使う。
  
22行目: 22行目:
 
また、各種[[シェーダー]]を経て得られた最終的な出力画面を1枚の大きな四角い[[ポリゴン]]と[[テクスチャ]]に見立てて、再度ピクセルシェーダーにぶち込み[[アンチエイリアス]]を掛けるというテクニックもある。有名な手法としては[[NVIDIA]]が考案した[[Fast Approximate Anti Aliasing]] ([[FXAA]]) がある。
 
また、各種[[シェーダー]]を経て得られた最終的な出力画面を1枚の大きな四角い[[ポリゴン]]と[[テクスチャ]]に見立てて、再度ピクセルシェーダーにぶち込み[[アンチエイリアス]]を掛けるというテクニックもある。有名な手法としては[[NVIDIA]]が考案した[[Fast Approximate Anti Aliasing]] ([[FXAA]]) がある。
  
== 関連項目 ==
+
==関連項目==
* [[シェーダー]]
+
 
** [[バーテックスシェーダー]]
+
*[[シェーダー]]
** [[ピクセルシェーダー]]
+
**[[バーテックスシェーダー]]
** [[ジオメトリシェーダー]]
+
**[[ピクセルシェーダー]]
** [[ハルシェーダー]]
+
**[[ジオメトリシェーダー]]
** [[ドメインシェーダー]]
+
**[[ハルシェーダー]]
** [[コンピュートシェーダー]]
+
**[[ドメインシェーダー]]
* [[HLSL]]
+
**[[コンピュートシェーダー]]
* [[OpenGL ES]]
+
*[[HLSL]]
 +
*[[OpenGL ES]]

2019年5月20日 (月) 01:59時点における版

ピクセルシェーダー英語:Pixel Shader)とは、シェーダーのうち、グローバル変数(実質的に定数)とポリゴン内部のピクセルが入力され、それを加工して出力するものをいう。

OpenGL界隈では宗教上の理由で「フラグメントシェーダー」と呼ばれる。

概要

ピクセルシェーダーはジオメトリシェーダーにより頂点(ポリゴン)からピクセル群に変換されたデータを入力として受け取り、それを加工したピクセル群を出力する。

シェーダーモデル3.0(DirectX9)まではジオメトリシェーダーGPUの固定機能でありプログラマは特段意識することはなかった。バーテックスシェーダーで加工されたポリゴンが勝手にピクセル配列に変換されてピクセルシェーダーが呼ばれる感じであった。iOSAndroidなんかのOpenGL ES系は下位互換性の関係から今でもそんな感じである。

主な用途

主にポリゴンに色を塗ったり、テクスチャを貼ったり、陰影をつけたりするのに使う。

たとえばテクスチャマッピングであれば、グローバル変数にテクスチャを入れておき、ピクセルシェーダーでピクセル単位で貼っていく感じである。

陰影(ライティング)であれば、ライトの座標や強さや色をグローバル変数に入れておき、ピクセルシェーダーでピクセルの色や法線などの情報をもとに「色の強弱」を計算する感じである。この際に「極端に明るい」「極端に暗い」という2値に振り分ける処理を入れるとトゥーンレンダリングになる。

また、各種シェーダーを経て得られた最終的な出力画面を1枚の大きな四角いポリゴンテクスチャに見立てて、再度ピクセルシェーダーにぶち込みアンチエイリアスを掛けるというテクニックもある。有名な手法としてはNVIDIAが考案したFast Approximate Anti Aliasing (FXAA) がある。

関連項目