如何绕过GL_MAX_TEXTURE_SIZE进行图像处理

时间:2012-10-18 17:41:25

标签: opengl-es glsl post-processing

我正在开发一个依赖OpenGL ES 2.0的图像处理程序,因此它可以部署在大量设备上。在许多情况下,人们将使用小图像,这不会绕过纹理限制,但是对于每个方向上数千像素的较大图像,它可能无法在多个设备上呈现。

我的第一个想法是将图像分割成较小的正方形并分别渲染每个适用于简单程序的图像,但对于需要根据相邻像素值(如卷积或扭曲效果)渲染的任务,这不会足够了。

Photoshop如何通过在其应用程序中添加OpenGL支持来保持其300,000 x 300,000维度的功能?

对大于GL_MAX_TEXTURE_SIZE的图像执行后处理任务的最有效方法是什么?

在发送它们进行处理之前,仅渲染到可视区域并重新缩放图像以进行缩放?但这需要我重新处理图像,以便进行简单的放大/缩小和平移图像。我用这种方法看到的唯一问题是没有办法将图像导出为完整质量的图像,所以这种方法很有效,直到用户试图保存他们的工作。

1 个答案:

答案 0 :(得分:-2)

问题是opengl是用于实时渲染而不适合图像处理,最好的选择是使用CPU程序及其所有好处(C / C ++,线程,没有纹理限制,......)只考虑opengl在“帮助”CPU的情况下(如NVIDIA CUDA)。