0

私は次の Web サイトから Android 用の OpenGL ES を学習中です: http://www.learnopengles.com/android-lesson-one-getting-started/

誰かがシェーダーとは何かを説明してもらえますか? Webでいろいろ調べましたが、説明がわかりずらいです。フラグメント シェーダーと比べて頂点シェーダーとは何ですか?

ありがとう!

4

3 に答える 3

1

ウィキペディアから:

フラグメント シェーダーとも呼ばれるピクセル シェーダーは、各ピクセルの色やその他の属性を計算します。

ピクセル シェーダーは、常に同じ色を出力することから、ライティング値を適用すること、バンプ マッピング、シャドウ、スペキュラー ハイライト、半透明性などの現象を実行することまで、多岐にわたります。

ピクセルの深度を変更したり (Z バッファリング用)、複数のレンダー ターゲットがアクティブな場合は複数の色を出力したりできます。

ピクセル シェーダーだけでは、非常に複雑な効果を生成することはできません。これは、シーンのジオメトリを知らずに 1 つのピクセルに対してのみ動作するためです。

一方:

頂点シェーダーは、グラフィックス プロセッサに与えられた頂点ごとに 1 回実行されます。目的は、仮想空間内の各頂点の 3D 位置を、画面に表示される 2D 座標に変換することです (Z バッファーの深度値も同様です)。

頂点シェーダーは、位置、色、テクスチャ座標などのプロパティを操作できますが、新しい頂点を作成することはできません。

頂点シェーダーの出力は、パイプラインの次の段階に進みます。これは、存在する場合はジオメトリ シェーダー、存在しない場合はラスタライザーです。

基本的に、ピクセル (フラグメント) シェーダーは、目に見えるもの、つまりピクセルで動作します。頂点シェーダーは、コードに存在する頂点情報を操作します。頂点シェーダーは、グラフィックス パイプラインの初期段階で使用されます。

于 2012-05-31T23:11:24.853 に答える
-1

iPhone 3d Programming や Professional WebGL Programming など、非常に優れた本がいくつかあります。どちらも OpenGL ES 2 と WebGL API 全体に関する貴重な情報が含まれているため、お勧めします。

于 2012-05-31T23:17:46.440 に答える