0
通常の処理とは逆の処理をしたい、つまりデフォルトのフレームバッファ(画面)を使用し、これをフラグメントシェーダの入力テクスチャとして使用します。それは、されていないOpenGL ES:シェーダの入力テクスチャとして画面を使用する
は私が
glBindFramebuffer(GL_FRAMEBUFFER,0);
glReadPixels(blah,blah,blah, buf);
int texID = createTexture(buf);
glBindTexture(GL_TEXTURE_2D, texID);
runShaderProgram();
行うことができます知っているが、それはGPU(BindTexture)に戻って、その後(ReadPixels)CPUにGPUですでにだとデータをコピーするのか?
私は何とか「直接」画面のコンテンツを使用してシェイダーにフィードできませんでしたか?
ありがとうございました。私が「普通の」方法で使用しないようにする強い理由はありません。私はある種のOpenGLライブラリを書いています。私のAPIは、ユーザが作成したFBOをメソッドの引数として受け入れる場合でも、同じデフォルトのFBOを受け入れることができれば、よりクリーンになります。しかし、これを支払う代価がCPUへの旅行であり、GPU(私のAPIのユーザーにはほとんど隠されているだろう)に戻ってしまうのであれば、私はその画面を除外することを好む。 – Leszek