我一直试图将数据从FBO传输到PBO到纹理,并将其呈现为四角体:
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, colorAttachment0, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthAttachment);给我的PBO:
glGenBuffers(1, &bufferObj);
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, bufferObj);
glBufferData(GL_PIXEL_UNPACK_BUFFER, 800 * 800 * 4, NULL, GL_DYNAMIC_DRAW);但是我试着像这样传输它:(*问题就是 *)。我猜
glReadBuffer(GL_COLOR_ATTACHMENT0);
glBindBuffer(GL_PIXEL_PACK_BUFFER, bufferObj);
glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
glReadBuffer(GL_NONE);我有从CUDA输出PBO的代码。将其转换为纹理,并将其正确显示,我也可以通过将其纹理呈现为四角体来呈现FBO。
问题是FBO与PBO之间的传输似乎是正确的,因为当我替换呈现FBO->PBO代码时,它不能正常工作。
发布于 2014-07-30 22:48:26
有些事情需要尝试:
https://stackoverflow.com/questions/25046101
复制相似问题