Opengl es 可以在同一纹理的不同级别之间使用glBlitFramebuffer吗?

Opengl es 可以在同一纹理的不同级别之间使用glBlitFramebuffer吗?,opengl-es,framebuffer,mipmaps,Opengl Es,Framebuffer,Mipmaps,假设我有一个纹理,我需要mipmap,但是我想让mipmap硬件加速。我决定最好的路线是这样的: int read = glGenFramebuffers(); int draw = glGenFramebuffers(); int wh = 256; int glObject = glGenTextures(); glBindTexture(GL_TEXTURE_2D, glObject); glTexImage2D(GL_TEXTURE_2D

假设我有一个纹理,我需要mipmap,但是我想让mipmap硬件加速。我决定最好的路线是这样的:

    int read = glGenFramebuffers();
    int draw = glGenFramebuffers();
    int wh = 256;
    int glObject = glGenTextures();
    glBindTexture(GL_TEXTURE_2D, glObject);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, wh, wh, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);

    for(int i = 0; i < mipLevels; ++i) {
        glBindFramebuffer(GL_FRAMEBUFFER, read);
        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, glObject, i);
            
        glTexImage2D(GL_TEXTURE_2D, i + 1, GL_RGBA8, wh / 2, wh / 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, (ByeBuffer)null);
        glBindFramebuffer(GL_FRAMEBUFFER, draw);
        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, glObject, i + 1);
            
        glBindFramebuffer(GL_READ_FRAMEBUFFER, read);
        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, draw);
        glBlitFramebuffer(0, 0, wh, wh, 0, 0, wh / 2, wh / 2,  GL_COLOR_BUFFER_BIT, GL_LINEAR);
            
        wh /= 2;
    }
int read=glGenFramebuffers();
int draw=glGenFramebuffers();
int-wh=256;
int glObject=glGenTextures();
glBindTexture(GL_TEXTURE_2D,全局对象);
GLTEXAGE2D(GL_纹理_2D,0,GL_RGBA8,wh,wh,0,GL_RGBA,GL_无符号_字节,数据);
对于(int i=0;i

调用glCheckFramebufferStatus时,这两个帧缓冲区都会在此代码块中返回不完整的_附件。我做错了什么?我是否正确分配了空白的MIPMAP级别?< /P> < P>答案:当我应该使用<代码> GeltStuleDiga2/代码>时,我在使用“代码> GLTEXIGME2D2/代码>来分配空白MIP级别,以在这些情况下分配空白级别。以下是指向
glTexStorage2D
手册页面的链接,以了解更多详细信息: