最初 -サブルーチンには GLSL 4.0+ が必要ですか? では、OpenGL ES 2.0 の GLSL バージョンでは使用できませんか?
マルチパス シェーダーとは何かをよく理解しています。
さて、私の写真は何ですか:
- シェーダーを使用して、何かのグループ (スプライトなど) を FBO に描画します。
- FBO を大画面サイズのクワッドの大きなテクスチャと考えて、別のシェーダを使用します。たとえば、テクスチャ カラーをグレースケールに変換します。
- FBO テクスチャ クワッドをグレースケール カラーで画面に描画します。
それとも、これは他と呼ばれますか?
つまり、マルチパス = 別のシェーダー出力を別のシェーダー入力に使用しますか? では、1 つのオブジェクトを 2 回以上レンダリングしますか? シェーダー出力が別のシェーダー入力に到達する方法は?
例えば
glUseProgram(shader_prog_1);//Just plain sprite draw
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, /*some texture_id*/);
//Setting input for shader_prog_1
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
//Disabling arrays, buffers
glUseProgram(shader_prog_1);//Uses same vertex, but different fragment shader program
//Setting input for shader_prog_2
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
誰でも基本的な方法でこれの簡単な例を提供できますか?