如何在着色器之后读取像素?
Posted
技术标签:
【中文标题】如何在着色器之后读取像素?【英文标题】:How to read pixel after the shader? 【发布时间】:2011-11-14 09:46:02 【问题描述】:所以在我的程序中,我使用 GLSL 着色器绘制 2D 矩形。 矩形填充有纹理。我必须使用着色器才能进行一些计算等。 现在,我的问题是如何在着色器之后访问场景的像素值(带纹理的矩形)? 基本上,在它通过顶点然后片段着色器之后,它会在场景中绘制一些东西,我想将这些场景作为 unsigned char* 或像素之类的数据访问
【问题讨论】:
【参考方案1】:glReadPixels
http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml
确保使用 FBO 或 PBuffer 作为渲染目标以避免数据损坏。
【讨论】:
谢谢!所以只是一个快速的问题......所以帧缓冲区是保存当前场景的像素数据的那个? FBO 是屏幕外帧缓冲区,谷歌“帧缓冲区对象”。如果您渲染到常规窗口,回读的内容可能会以各种方式损坏(这是由于操作系统不会处理用户可能看不到的窗口的任何像素的方式)。以上是关于如何在着色器之后读取像素?的主要内容,如果未能解决你的问题,请参考以下文章