2 つのテクスチャを読み込むシェーダーを取得できますが、出力には gl_FragColor しかないようです。1 つのシェーダから 2 つの異なるテクスチャにレンダリングする方法はありますか? 私は Processing と GLGraphics ライブラリを使用しています。
4553 次
3 に答える
5
はい、出力の配列である gl_FragData に書き込むことができます (サイズは実装によって異なります)。または、新しいバージョンの GL では、gl_FragColor と gl_FragData の両方が非推奨になりout
、フラグメント シェーダーが書き込む独自の変数を宣言します。out
複数の出力バッファに対して複数のそのような var を宣言します。
于 2010-11-13T04:46:58.383 に答える
1
はい。私たちはできる。ただし、GLSL 4.0 では gl_FragData がサポートされなくなったことに注意してください。場所を次のように指定します。
glBindFragDataLocation(programHandle, 0, "FragColor");
.....
glsl 4.0 shading language cookbook の本を読んでいただければ幸いです。
于 2013-08-21T07:10:17.663 に答える
0
これがまさにあなたがやろうとしていることかどうかはわかりませんが、フレーム バッファー オブジェクト (FBO)を使用すると、複数のカラー バッファーに同時に描画できます。
ただし、シェーダー内では、1 つのフラグメントを記述しているように見えます。つまり、シェーダーは FBO にいくつのアタッチメントがあるかを認識していません。
于 2010-11-13T04:42:55.857 に答える