小编shr*_*hao的帖子

在 FrameBuffer 中绘制但只得到黑色

视窗

使用 glew

我正在尝试渲染离屏并将渲染的 img opengl 保存到 png 文件。

我在 stackoverflow 上关注了一个评价很高的答案: How to render offscreen on OpenGL?

但我得到的png文件只是黑屏。

这是我的相关代码:

glutCreateWindow(argv[0]);
if(GLEW_OK!=glewInit())
{
    return -1;
}

initScene();


GLuint fbo, render_buf;
glGenFramebuffers(1,&fbo);
glGenRenderbuffers(1,&render_buf);
glBindRenderbuffer(GL_RENDERBUFFER,render_buf);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGB8, viewport.w, viewport.h);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo);
glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, render_buf);


//Before drawing
glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo);


glClear(GL_COLOR_BUFFER_BIT);               // clear the color buffer
glMatrixMode(GL_MODELVIEW);                 // indicate we are specifying camera transformations
glLoadIdentity();                       // make sure transformation is "zero'd"

//draw...
//glBegin(GL_POINTS) glColor3f, glVertex2f

//glFlush();
glFinish();

/*glutDisplayFunc(myDisplay);
glutPostRedisplay();*/

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
savePNG(outputPNGName,0,0,viewport.w,viewport.h);

//At deinit:
glDeleteFramebuffers(1,&fbo); …
Run Code Online (Sandbox Code Playgroud)

opengl glew framebuffer

0
推荐指数
1
解决办法
4196
查看次数

标签 统计

framebuffer ×1

glew ×1

opengl ×1