0

fbo をテクスチャにレンダリングすると、テクスチャが完全に表示されます。ただし、GL_COMPRESSED_RGBA を使用して次の関数を使用してテクスチャを実行すると、関数によって返される te​​xtureresult がスクランブルされます。最新バージョンのLWJGLを使用しています。

public static int burnToTexture(int textureId) {
    // Create fbo for texture

    fboId = glGenFramebuffersEXT();     
    fboTextureId = glGenTextures();                                         

    glBindTexture(GL_TEXTURE_2D, 0);
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboId);                    

    glBindTexture(GL_TEXTURE_2D, fboTextureId);                             
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);                   
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);               
    glTexImage2D(GL_TEXTURE_2D, 0,  GL_COMPRESSED_RGBA, SAVE_WIDTH, SAVE_HEIGHT, 0,GL_RGBA, GL_INT, (java.nio.ByteBuffer) null);
    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_2D, fboTextureId, 0); 

    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
    // Render texture to fbo
    glPushAttrib(GL_ALL_ATTRIB_BITS);

    glBindTexture(GL_TEXTURE_2D, 0);
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboId);    

    glMatrixMode (GL_MODELVIEW);
    glLoadIdentity ();
    glViewport(0,0,SAVE_WIDTH,SAVE_HEIGHT);
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D(0, SAVE_WIDTH, 0, SAVE_HEIGHT);
    glLoadIdentity();
    glDisable(GL_DEPTH_TEST);
    glClearColor(1.0f, 1.0f, 0.0f, 0.0f);
    glClear (GL_COLOR_BUFFER_BIT);
    glEnable(GL_TEXTURE_2D);
    glActiveTextureARB(GL_TEXTURE0_ARB);

    glBindTexture(GL_TEXTURE_2D, textureId);
    glBegin (GL_QUADS);
    glTexCoord2f(0.0f, 0.0f);
    glVertex2i (-1, -1);
    glTexCoord2f(1.0f, 0.0f);
    glVertex2i (1, -1);
    glTexCoord2f(1.0f, 1.0f);
    glVertex2i (1, 1);
    glTexCoord2f(0.0f, 1.0f);
    glVertex2i (-1, 1);
    glEnd();        

    glDisable(GL_TEXTURE_2D);

    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);

    glPopAttrib();

    // Destroy fbo
    glDeleteFramebuffersEXT(fboId);

    return fboTextureId;
}
4

1 に答える 1

2

圧縮されたイメージ形式カラー レンダリングできません。また、その名前が示すように、カラー レンダリングできない形式を使用するテクスチャにはレンダリングできません。

于 2013-01-08T23:26:31.817 に答える