我正在尝试编写一个将使用GLSL进行图像处理的OpenGL / GLSL应用。我已经做了一些研究,得出的结论是正确的方法是渲染到帧缓冲区对象,然后从gpu检索图像。不幸的是,我无法弄清楚如何设置平截头体并渲染四边形,以使其正确填充。有谁知道如何做到这一点?
最佳答案
您需要使用正交投影矩阵进行渲染。
glPushMatrix(GL_WORLDVIEW);
glLoadIdentity();
glPushMatrix(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, width, height, 0, 0, 1);
glBegin(GL_QUADS);
glVertex2i(0, 0);
glVertex2i(width, 0);
glVertex2i(width, height);
glVertex2i(0, height);
glEnd();
glPopMatrix();
glMatrixMode(GL_WORLDVIEW);
glPopMatrix();
宽度和高度是FBO的尺寸。当然,如果您不需要通过在像素位置绘制四边形来解决FBO的特殊部分,它们可能都是两者之一。