2012-02-02 5 views
1

フラグメントシェーダがフレームバッファに描画されます。フラグメントシェーダーによって生成されたピクセル/フラグメントのリストを取得するにはどうすればよいですか?

しかし、フラグメントシェーダの実行 の結果として生成されたピクセル/フラグメントだけを効率的に取得するにはどうすればよいですか?

+0

**取得**とはどういう意味ですか? – tibur

+0

配列またはリスト内の完全なリストを取得するか、変更されたピクセルだけのポインタを取得する – seahorse

答えて

3
  • セットアップステンシルマスクますので、フラグメントを引くたびに、それは1
  • にそのマスクを設定しますステンシルマスクとglReadPixels機能付カラーバッファを取得します。
2

一般的に、あなたはそうしません。

フラグメントシェーダに画像に特定のカラー値を書き込ませることができます。その後、画像から読み戻して、その色がどこにあるかをテストすることができます。それはあなたに必要な情報を得るでしょう。浮動小数点フレームバッファに書き込む場合は、追加のブレンドモードを使用して、各サンプル位置に書き込む量を確認することもできます。

しかしそれはそれです。

1

フラグメントシェーダがフレームバッファに描画します。

直接ではありません。 OpenGLの後のバージョンでは、フラグメントシェーダでの散布操作がサポートされていますが、その実行はより自然に行われます。

フラグメント処理ステージが実行される前に、ラスタライズステージはまず、現在処理されているプリミティブによってどのフラグメントが書き込まれるかを決定します。これは、走査線範囲推定器などによって行われる。私。処理されたフラグメントのセットは、フラグメントシェーダの実行前に決定される。フラグメントシェーダが次に行うことは、次のブレンディングステージで使用される値を計算してフレームバッファに結合することだけです。

関連する問題