我将一些透明贴花渲染到一个单独的帧缓冲区中。现在我正在尝试将此缓冲区与后台缓冲区(活动目标)混合。
我假设我必须在片段着色器中加载fbo的颜色缓冲区作为纹理,并将纹理颜色输出到活动目标。 如何告诉显卡对每个像素执行此操作?
答案 0 :(得分:3)
绘制覆盖整个屏幕的四个或两个三角形。
答案 1 :(得分:2)
全屏矩形/四边形的代码 这是旧方法 - 来自OpenGL 1.1,但有效:)对于新的OpenGL 3. *你必须使用VBO / Arrays
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glBegin(GL_QUADS);
glTexCoord2f( 0,0 );
glVertex3d( -1.0,-1.0, 0 );
glTexCoord2f( 1,0 );
glVertex3d( 1.0,-1.0, 0 );
glTexCoord2f( 1,1 );
glVertex3d( 1.0, 1.0, 0 );
glTexCoord2f( 0,1 );
glVertex3d( -1.0, 1.0, 0 );
glEnd();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
当然你必须在
之前设置纹理