美文网首页libGdx专题
opengl FrameBuffer的使用

opengl FrameBuffer的使用

作者: 大旺旺的弟弟小旺旺 | 来源:发表于2022-10-22 09:52 被阅读0次

    1.创建framebuffer

    GLES20.glGenFramebuffers(1,framebuffer,0);
    

    2.创建纹理

    //初始化纹理,一个绑定fbo
    GLES20.glGenTextures(textur.length, textur, 0);        GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textur[0]);        GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGB,
                    1000, 1000,
                    0, GLES20.GL_RGB,
                    GLES20.GL_UNSIGNED_BYTE, null);
            GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
            GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
            GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
            GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
    
    

    3.绑定纹理

     GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,textur[0]);
    

    4.绑定framebuffer

     GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, framebuffer[0]);
    

    5.framebuffer绑定纹理

    GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0,
                    GLES20.GL_TEXTURE_2D, textur[0], 0);
            
    

    6.绘制,与其他的绘制一样

     super.render();
    

    7.解绑framebuffer

         GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
    

    8.解绑纹理

     GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,0);
    

    9.绘制framebuffer中的东西,抛开前面,现在绘制纹理,上面创建的texture

    相关文章

      网友评论

        本文标题:opengl FrameBuffer的使用

        本文链接:https://www.haomeiwen.com/subject/qmvvzrtx.html