2

FBOとテクスチャを添付して「テクスチャにレンダリング」機能を使用しています。

私の問題は、フラグメントシェーダーで、2Dテクスチャの特定の行に書き込む方法がわからないことです。どの行(均一なfloat変数で示される)の情報はありますが、そこに描画する方法がわかりません。

これは可能ですか?または、フラグメントシェーダーのどこにいるのかを知る良い方法は何ですか?

私のグローバルなアイデアは、1Dテクスチャの進化を上から下に2Dテクスチャにレンダリングすることです。各進化ステップは、フラグメントシェーダーによって計算されます(2つのFBOを使用したテクスチャピンポンメソッドへのレンダリングの使用)

4

2 に答える 2

1

フラグメントシェーダーはこの場所ではないと思います。

FBOの1行だけに書き込みたい場合は、描画呼び出しの頂点を、描画したいピクセルのみと重なるように設定できませんか?

于 2012-06-08T23:30:26.273 に答える
1

discard;フラグメントシェーダーで使用して、不要なフラグメントを破棄できます。何かのようなもの

if (gl_FragCoord.y != row_to_keep)
    discard;

次に、シーンを通常どおりにレンダリングすると、出力の1行だけが書き込まれます。

于 2012-06-09T03:39:30.580 に答える