![](/img/trans.png)
[英]OpenGL ES 2.0 : paint in FBO + Texture = gray blending in texture
[英]OpenGL ES 2.0 Vertex Shader Texture Reads not possible from FBO?
我目前正在使用OpenGL ES 2.0的GPGPU项目上。 我有一个渲染管道,该管道使用帧缓冲对象(FBO)作为目标,即,每个渲染过程的结果都保存在附加到FBO的纹理中。 到目前为止,这在使用片段着色器时有效。 例如,我必须遵循以下渲染管道:
Preprocessing (downscaling, grayscale conversion)
-> Adaptive Thresholding Pass 1 -> Adapt. Thresh. Pass 2
-> Copy back to CPU
但是,我想通过在预处理步骤之后添加灰度直方图计算来扩展此流程。 据我所知,在OpenGL ES 2.0中,这仅适用于顶点着色器中的纹理读取[1]。 我可以确认我的着色器可以在不同的程序中工作,其中输入是“真实”图像,而不是附加到FBO的渲染纹理。 因此,我认为如果来自FBO,则无法在顶点着色器中读取纹理数据。 任何人都可以确认这个假设,还是我错过了什么? 我在实验中使用的是Nexus 10。
[1]:它的工作原理基本上是从顶点着色器中的纹理读取每个像素值,然后从中计算直方图bin,然后使用alpha混合将其“添加”到片段着色器中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.