Opengl GPU上的纹理图像处理?
我将某个场景渲染成纹理,然后我需要以某种简单的方式处理该图像。我现在要做的是使用Opengl GPU上的纹理图像处理?,opengl,image-processing,gpu,textures,Opengl,Image Processing,Gpu,Textures,我将某个场景渲染成纹理,然后我需要以某种简单的方式处理该图像。我现在要做的是使用glReadPixels()读取纹理,然后在CPU上进行处理。但是这太慢了,所以我想把处理移到GPU上 我能想到的最简单的设置就是显示一个简单的白色四边形,在正交投影中占据整个视口,然后将图像处理位作为片段着色器写入。这将允许许多处理实例并行运行,并访问处理所需的纹理的任何像素 这是一个可行的行动方案吗?这样做很普遍吗? 有没有更好的方法呢?是的,这是通常的做法 把某物渲染成纹理 绘制一个带有着色器的全屏四边形,该着
glReadPixels()
读取纹理,然后在CPU上进行处理。但是这太慢了,所以我想把处理移到GPU上
我能想到的最简单的设置就是显示一个简单的白色四边形,在正交投影中占据整个视口,然后将图像处理位作为片段着色器写入。这将允许许多处理实例并行运行,并访问处理所需的纹理的任何像素
这是一个可行的行动方案吗?这样做很普遍吗?
有没有更好的方法呢?是的,这是通常的做法
映射不好的处理操作的一个例子是求和面积表,其中每个输出像素取决于输入像素和相邻输出像素的值。不过,在GPU()上也可以进行这些操作。是的,这是进行图像处理的正常方式。如果要为每个像素设置颜色,则四边形的颜色实际上并不重要。根据应用程序的不同,您可能需要小心像素采样问题(即确保从源纹理上的正确像素采样,而不是从两个像素中间采样)