Opengl 如何读取着色器后的像素?

Opengl 如何读取着色器后的像素?,opengl,glsl,Opengl,Glsl,所以在我的程序中,我使用GLSL着色器绘制2D矩形。 矩形中填充了纹理。我必须使用着色器来进行一些计算等。 现在,我的问题是如何在着色器之后访问场景的像素值(矩形w/纹理)? 基本上,在它经过顶点然后是片段着色器之后,它在场景中绘制了一些东西,我想以无符号字符*或像素之类的数据访问这些场景 确保使用FBO或PBuffer作为渲染目标以避免数据损坏。glReadPixels 确保使用FBO或PBUFER作为渲染目标,以避免数据损坏。谢谢!所以,请快速提问……那么帧缓冲区是用来保存当前场景像素数据的

所以在我的程序中,我使用GLSL着色器绘制2D矩形。 矩形中填充了纹理。我必须使用着色器来进行一些计算等。 现在,我的问题是如何在着色器之后访问场景的像素值(矩形w/纹理)?
基本上,在它经过顶点然后是片段着色器之后,它在场景中绘制了一些东西,我想以无符号字符*或像素之类的数据访问这些场景


确保使用FBO或PBuffer作为渲染目标以避免数据损坏。

glReadPixels


确保使用FBO或PBUFER作为渲染目标,以避免数据损坏。

谢谢!所以,请快速提问……那么帧缓冲区是用来保存当前场景像素数据的吗?FBO是屏幕外的帧缓冲区,谷歌的“帧缓冲区对象”。如果渲染到常规窗口,则回读内容可能会以各种方式损坏(这是由于操作系统不会处理用户可能看不到的任何窗口像素的方式造成的)。谢谢!所以,请快速提问……那么帧缓冲区是用来保存当前场景像素数据的吗?FBO是屏幕外的帧缓冲区,谷歌的“帧缓冲区对象”。如果渲染到常规窗口,则回读内容可能会以各种方式损坏(这是由于操作系统不会处理用户可能看不到的任何窗口像素的方式)。