0

私はiPhone4、iOS6.0.1で作業しています。メインFBOとは異なるサイズのオフスクリーンFBOを作成しています。これを行うには、次のコードを使用します。ここで、cxFBOとcyFBOはメインFBOの2倍のサイズです。

glGenRenderbuffers(1, &_colorRenderBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderBuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, cxFBO, cyFBO);

glGenFramebuffers(1, &_frameBufferID);
glBindFramebuffer(GL_FRAMEBUFFER, _frameBufferID);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _colorRenderBuffer);

glGenTextures(1, &_fboTextureID);
glBindTexture(GL_TEXTURE_2D, _fboTextureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, cxFBO, cyFBO, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, _fboTextureID, 0);

を呼び出した後、私はそれに描画していglBindFramebuffer(GL_FRAMEBUFFER, _frameBufferID)ます。シェーダーを使用して描画ルーチン全体を投稿したくありません。私は特別なことは何もしていないと思いますが、それが重要だと思われる場合は、簡単な例を投稿します。問題は、テクスチャの4分の1だけが頂点で満たされ、残りの4分の3はによって設定された色であるということglClearColor()です。

私は何が間違っているのですか?私は特にフォーマットについて少し混乱していますGL_RGBA。私はむしろ使用する必要がありますGL_RGBA_OESか?どこにでも?

4

1 に答える 1

0

問題は、glViewPort()を呼び出すのを忘れたことです。あなたがそれについて考えるならば、一種の明白です;-)

于 2012-12-09T19:58:48.393 に答える