Opengl 访问FBO中的字节

Opengl 访问FBO中的字节,opengl,texture2d,fbo,Opengl,Texture2d,Fbo,我已经向FBO渲染了一个纹理,希望现在可以在显示它之前对该纹理应用效果。我无法确定如何访问FBO阵列来更改它。有什么想法吗?感谢您抽出时间您能详细说明添加效果的含义吗?fbo的基本思想是将所有内容渲染到该fbo,然后将该fbo应用到纹理。如果您想知道如何将帧缓冲区绑定到纹理,只需为glTexImage2D创建并设置一个具有空数据集的纹理。然后,使用绑定的framebuffer对象调用glFramebufferTexture2D,并将纹理作为参数之一传入。要渲染到帧缓冲区,请调用glBindFra

我已经向FBO渲染了一个纹理,希望现在可以在显示它之前对该纹理应用效果。我无法确定如何访问FBO阵列来更改它。有什么想法吗?感谢您抽出时间

您能详细说明添加效果的含义吗?fbo的基本思想是将所有内容渲染到该fbo,然后将该fbo应用到纹理。如果您想知道如何将帧缓冲区绑定到纹理,只需为
glTexImage2D
创建并设置一个具有空数据集的纹理。然后,使用绑定的framebuffer对象调用
glFramebufferTexture2D
,并将纹理作为参数之一传入。要渲染到帧缓冲区,请调用
glBindFramebuffer
。要绑定帧缓冲区纹理,只需像任何其他纹理一样调用
glBindTexture

可以详细说明吗?着色器对您来说还不够?FBO不是数组。它只是各种渲染目标的状态容器,渲染目标本身也不是数组,数据布局比2D数组复杂得多(尤其是优化的)。@Derhas你是说发送到显示设备(监视器)的最终图像不仅仅是2D数组?那么它看起来像什么?@Zebrafish:renderbuffers和纹理的内部布局完全是特定于供应商的。供应商通常实施帧缓冲区压缩以减少内存带宽使用。纹理布局通常是平铺的,并利用空间拟合曲线()来改善缓存的局部性。我正在渲染一个场景,其中包括水和树木/植物的反射等。一些植物的细节非常低(低多边形)。我想对反射应用涟漪效果,但由于顶点数较低,效果看起来很难看。我希望通过首先渲染到fbo,我可以访问单个像素,这将允许我应用更好的涟漪效果(通过操纵最终渲染的纹理而不是顶点)。