2016-07-11 23 views
0

GL_TEXTURE_RECTANGLE_ARB로 제한되며 밉 매핑을 지원하지 않는 IOSurface 기반 텍스처가 있습니다. 이 텍스처를 GL_TEXTURE_2D에 바인딩 된 다른 텍스처로 복사 한 다음 대신에 밉 매핑을 수행하려고합니다. 하지만 내 질감을 복사하는 데 문제가 있습니다. 나는 그것을 다른 GL_TEXTURE_RECTANGLE_ARB에 복사하는 것만으로도 작동시킬 수 없다. 두 번째 glFramebufferTexture2D() 일치하지 않는 당신의 설명을한 대상에서 다른 대상으로 OpenGL 텍스처 복사

var arbTexture = GLuint() 
    glGenTextures(1, &arbTexture) 

    /* Do some stuff to fill arbTexture with image data */ 

    glEnable(GLenum(GL_TEXTURE_RECTANGLE_ARB)) 
    glBindTexture(GLenum(GL_TEXTURE_RECTANGLE_ARB), arbTexture) 
    // At this point, if I return here, my arbTexture draws just fine 

    // Trying to copy to another texture (fbo and texture generated previously): 
    glBindFramebuffer(GLenum(GL_FRAMEBUFFER), fbo); 
    glFramebufferTexture2D(GLenum(GL_READ_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT0), GLenum(GL_TEXTURE_RECTANGLE_ARB), arbTexture, 0) 
    glFramebufferTexture2D(GLenum(GL_DRAW_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT1), GLenum(GL_TEXTURE_RECTANGLE_ARB), texture, 0) 
    glDrawBuffer(GLenum(GL_COLOR_ATTACHMENT1)) 
    glBlitFramebuffer(0, 0, GLsizei(width), GLsizei(height), 0, 0, GLsizei(width), GLsizei(height), GLbitfield(GL_COLOR_BUFFER_BIT) 
     , GLenum(GL_NEAREST)) 
    glBindTexture(GLenum(GL_TEXTURE_RECTANGLE_ARB), texture) 
    // At this point, the texture is all black 

답변

0

인수 : 여기 내 코드입니다

glFramebufferTexture2D(
    GLenum(GL_DRAW_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT1), 
    GLenum(GL_TEXTURE_RECTANGLE_ARB), texture, 0) 

두 번째 텍스처가 GL_TEXTURE_2D이라고 말을하는지부터가,이 일치해야 textarget 호출 인수.

glFramebufferTexture2D(
    GLenum(GL_DRAW_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT1), 
    GLenum(GL_TEXTURE_2D), texture, 0) 

BTW, GL_TEXTURE_RECTANGLE 나중에는 OpenGL 3.1 표준이며, 그래서 ARB 양식을 사용할 필요가 없을 것 : 그것은해야합니다.

+0

내 최종 목표는 GL_TEXTURE_2D이지만 작동하지 않습니다. 그래서 나는 다른 GL_TEXTURE_RECTANGLE_ARB에 단순히 복사하는 것으로 돌아가고 있으며 그 중 하나는 작동하지 않습니다. 그래서 저는 잃어 버렸습니다. 원래 대상은 GL_TEXTURE_RECTANGLE_ARB이어야합니다. 텍스처가이 방법으로 만 표현 될 수있는 IOSurface에 있기 때문입니다. – Oskar