ピクセルシェーダーとは何ですか?


ベストアンサー

シェーダーは、グラフィックハードウェアが画像を生成するために使用する特殊なプログラムです。これらは通常、ハードウェアレンダリングプロセスのさまざまな側面を処理する小さなプログラムに細分されます。

いくつかの異なる種類がありますが、最も一般的なものは、ピクセル頂点シェーダーです。

頂点シェーダーは、入力ジオメトリに変更を適用する役割を果たします。通常、これは3Dジオメトリを出力画像の2D投影面に投影することを意味しますが、ここでもジオメトリに何らかの手順の動きや変形を追加する場合があります。

ピクセルシェーダーは頂点シェーダーの出力であり、最終的な画像に表示されるピクセルを生成します。ほとんどの場合、これはレンダリング方程式のバリエーションに基づいており、ピクセルの向きの方向を光源の方向および表面のプロパティと比較します。 、ただし、ランダムノイズ関数から複雑なシミュレーションやレイトレーシングまで何でもかまいません。

通常のプログラミングと最も異なるのは、頂点シェーダーとピクセルシェーダーの両方が非常に並列化されています。各頂点シェーダーは、入力データのすべての頂点で同時に実行されます。各ピクセルシェーダーは、最終画像のすべてのピクセルで同時に実行されます。つまり、別のピクセルの状態に基づいて1つのピクセルに対して何かを行うのは困難です。つまり、すべてのピクセルが互いに独立して同時に実行されます。コンテキストを認識する必要のあるエフェクトでは、多くの場合、複数のピクセルシェーダーを次々に実行して、結果を一時的な画像に保存する必要があります。

これにより、その仕組みの概要がわかりやすくなります。

回答

「ピクセルシェーダー」(「フラグメントシェーダー」の悪い名前です)は、GPU上で何度も並行して実行され、フラグメントの色を決定する小さなプログラムです。基本的に、フラグメントは概念的にピクセルに非常に似ているため、名前が混乱します。

ジオメトリが描画のために送信されると、頂点は「頂点シェーダー」によって変換されます。パイプラインは三角形や線などのプリミティブを構築し、それらがスクリーンに投影されてクリップされた後、ラスタライザーはタッチされたすべての「ピクセル」を計算し、色、テクスチャ座標、法線などの頂点間の値を補間します。 。フラグメントシェーダーは、フラグメントごとに実行され、最終的な色を決定します。デプス/アルファ/ステンシルテストなどの他の操作が実行され、マルチサンプルアンチエイリアシングの場合、フラグメントが平均化されてから、最終的に画面バッファーに書き込まれるかブレンドされる実際のピクセルカラーになる可能性があります。

ここから取得した画像。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です