「ピクセルシェーダー」の版間の差分
imported>Administrator 編集の要約なし |
imported>Administrator 編集の要約なし |
||
| 4行目: | 4行目: | ||
[[ジオメトリシェーダー]]で頂点([[ポリゴン]])から[[ピクセル]]群に変換されたものを入力として受け取り、加工された[[ピクセル]]として出力する。<gallery> | [[ジオメトリシェーダー]]で頂点([[ポリゴン]])から[[ピクセル]]群に変換されたものを入力として受け取り、加工された[[ピクセル]]として出力する。<gallery> | ||
ファイル:バーテックスシェーダー.png|バーテックスシェーダーで頂点を処理 | ファイル:バーテックスシェーダー.png|バーテックスシェーダーで頂点を処理 | ||
ファイル:ピクセルシェーダー.png| | ファイル:ピクセルシェーダー.png|ジオメトリシェーダーでポリゴンをピクセル群に変換 | ||
</gallery> | </gallery>[[シェーダーモデル]]3.0(DirectX9)までは[[ジオメトリシェーダー]]は[[GPU]]の固定機能で[[プログラマ]]は特段意識することはなかった。[[バーテックスシェーダー]]で加工された[[ポリゴン]]が勝手に[[ピクセル]][[配列]]に変換されてピクセルシェーダーが呼ばれる感じであった。[[iOS]]や[[Android]]なんかの[[OpenGL ES]]系は下位互換性の関係から今でもそんな感じである。 | ||
== 主な用途 == | == 主な用途 == | ||
| 12行目: | 12行目: | ||
たとえば[[テクスチャマッピング]]であれば、グローバル変数にテクスチャを入れておき、ピクセルシェーダーでピクセル単位で貼っていく感じである。 | たとえば[[テクスチャマッピング]]であれば、グローバル変数にテクスチャを入れておき、ピクセルシェーダーでピクセル単位で貼っていく感じである。 | ||
陰影(ライティング)であれば、ライトの座標や強さや色をグローバル変数に入れておき、ピクセルシェーダーでピクセルの色や[[法線]]などの情報をもとに「色の強弱」を計算する感じである。この際に「極端に明るい」「極端に暗い」という2値に振り分ける処理を入れると[[トゥーンレンダリング]]になる。 | |||
また、各種[[シェーダー]]を経て得られた最終的な出力画面を1枚の大きな四角い[[ポリゴン]]と[[テクスチャ]]に見立てて、再度ピクセルシェーダーにぶち込み[[アンチエイリアス]]を掛けるというテクニックもある。有名な手法としては[[NVIDIA]]が考案した[[Fast Approximate Anti Aliasing]] ([[FXAA]]) がある。 | |||
== 関連項目 == | == 関連項目 == | ||