glReadPixels与glGetTexImage

时间:2016-07-01 08:24:11

标签: opengl

我需要从大纹理(2048x2048)中提取一个小矩形(200x200),并将RGBA像素放入内存中。似乎有两种方法可以做到这一点:

a)使用glGetTexImage并传入接收整个纹理的缓冲区,并从中读取相应的像素

b)创建一个帧缓冲区,使用仅包含所需部分的纹理绘制帧缓冲区,并提取使用glReadPixels生成的像素。

我猜b)速度更快,但我相对新手,我想知道我是否朝着正确的方向前进。 a)更容易编码,所以我想知道可能的速度命中是否可以忽略不计。

史蒂夫

1 个答案:

答案 0 :(得分:6)

鉴于图像数据在纹理中,有几种可能的解决方案。从最希望到最少订购:

只有在非常旧的OpenGL实现下工作时,才需要将纹理渲染到带有三角形的帧缓冲区。