glDrawPixel GL_RGBA像素缓冲对象

时间:2015-02-26 02:31:52

标签: opengl

我目前正在像这样从像素缓冲区对象中绘制图像。

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生成红色图像。 我的问题是,如何更改图像的颜色,比如灰度?

1 个答案:

答案 0 :(得分:0)

将PBO内容复制到纹理(相同大小),然后使用片段着色器将纹理绘制到全屏四边形,片段着色器使用输出基于纹理红色通道输入的灰度颜色。