我目前正在像这样从像素缓冲区对象中绘制图像。
glClear(GL_COLOR_BUFFER_BIT);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, gl_pbo);
glDrawPixels(glDisplayWidth, glDisplayHeight, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0);
glutSwapBuffers();
glutReportErrors();
glutPostRedisplay();
这是我的显示循环。它从像素缓冲对象gl_pbo生成红色图像。 我的问题是,如何更改图像的颜色,比如灰度?
答案 0 :(得分:0)
将PBO内容复制到纹理(相同大小),然后使用片段着色器将纹理绘制到全屏四边形,片段着色器使用输出基于纹理红色通道输入的灰度颜色。