2016-10-07 6 views
0

glReadPixelsがカラー添付を読み取らないこの問題が発生しています。私がやろうとしています何glReadPixels of color添付ファイル

は、デフォルト以外のフレームバッファ(以下コード)の第三色の添付ファイルを読む

glFlush(); 
glFinish(); 
//binds my fbo with state GL_FRAMEBUFFER 
RENDER_MANAGER.DeferredBuffer->bind(); 
unsigned char data[4]; 
glPixelStorei(GL_PACK_ALIGNMENT, 1); 
unsigned int check = glGetError(); 
glReadBuffer(GL_COLOR_ATTACHMENT3); 
glReadPixels(e->p->x, e->p->y, 1, 1,GL_RGB, GL_UNSIGNED_BYTE, data); 

何作品:

  • フレームバッファと、すべての色の添付ファイルの作業
  • 3番目のカラーアタッチメントをバックバッファーにレンダリングし、それをスクリーンに表示してテストしました。私はそれが意図

glBindFramebuffer(GL_FRAMEBUFFER、_FBO)として働いてフロントバッファにcolorattachmentをレンダリングした後、I glReadPixels場合

  • /////create depth texture 
    glGenTextures(1, &_colorAttacherment[index]); 
    glBindTexture(GL_TEXTURE_2D, _colorAttacherment[index]); 
    glTexStorage2D(GL_TEXTURE_2D, 1, internalFormat, width, height); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap); 
    ////bind texture to the fbo 
    
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + index, GL_TEXTURE_2D, _colorAttacherment[index], 0); 
    
    glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE); 
    

    私の具体的な問題は、カラー添付を読み取るglReadPixelsを取得していることです。

  • +1

    OpenGLでエラーが発生しましたか? "*もし私がフロントバッファにカラーアタッチメントをレンダリングした後に私がglReadPixelsを使うと、それは意図した通りに動作します*"あなたはアタッチメントかフロントバッファから読み込んでいますか? –

    +0

    私は添付ファイルから読みたいですが、それはありません。私はフロントバッファに添付ファイルをレンダリングし、フロントバッファを読むことができますが、それは問題です。私はチェックしており、OpenGLエラーはありません。 –

    答えて

    0

    ここに適用される場合がありますランダムな思考: GL_RGBはglReadPixelsで使用するすべてのプラットフォームでサポートされていません。 GL_IMPLEMENTATION_COLOR_READ_FORMATがサポートされているかどうかを確認してください。

    +0

    私は同意します、これは本当の可能性です。あなたの答えをより良くするために参考にしてください。このオプションまたは特定のプラットフォームの例に関するドキュメントへの参照は、このことを明確にします。 –