テクスチャへのオフスクリーンレンダリングの場合、添付ファイルGL_COLOR_ATTACHMENT0で次のように定義されたテクスチャをアタッチします。
glTexImage2D(GL_TEXTURE_2D、0、GL_RGBA、width、height、0、GL_RGBA、GL_FLOAT、NULL);
次に、vec4を出力するフラグメントシェーダーを使用してFBOにレンダリングするので、通常は問題ありません。テクスチャが正しく表示されていることを確認するには、関数を使用します
glTexSubImage2D()
テクスチャの中央にいくつかの灰色のピクセルを追加します。テクスチャは正しく表示されますが(これらのピクセルは適切な場所に完全に表示されます)、残りのテクスチャはノイズの多いアーティファクト(黒でない場合)のみです。
これは、GL_RGBAテクスチャにGL_FLOATを使用しているという事実から来ていますか?はいの場合、GLSLでuvec4をvec4に変換するにはどうすればよいですか?メインシェーダーの出力はvec4であり、usampler2Dテクスチャのuvec4出力を最終的なvec4に変換する方法がわかりません。
あなたが提供するかもしれないどんな答えにも感謝します:)
編集:解決策を見つけました:2つのレンダリングの間にGL_COLOR_BUFFER_BITをクリアしませんでした。