我一直在试图将我的FBO中的数据转移到PBO到纹理以将其渲染为QUAD:
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代码时,它无法正常工作
答案 0 :(得分:-2)
有些事情要尝试: