OpenGL-将多个图像加载到纹理

时间:2018-09-29 02:10:52

标签: opengl opengl-2.0

我有一个OpenGL 2.1应用程序,用户可以在其中加载多个可以在宽度和高度上变化的图像作为纹理,以便在屏幕上相应的四边形对象上进行渲染。

我最初是在渲染图像之前立即预加载所有图像,但是当用户决定以数百为单位加载(在极少数情况下为数千)时,就会出现问题,这会导致RAM的利用率很高。我还将在将位图容器转换为纹理后立即取消分配,仅供参考。另外,我尝试根据要渲染到的相应四边形的大小来减小图像的大小。但这似乎只是在解决这个问题,因为用户可能会加载更多图像并加载更多四边形对象。因此更多的RAM。

没有限制它们可以上传多少图像,我对如何正确管理纹理一无所知。我还阅读了一种使用像素缓冲区对象的技术:将图像数据传输到缓冲区->在一个可重复使用的纹理上渲染,重复处理。但是我对如何从那里继续感到有些困惑,因为似乎有人假设所有图像在更新纹理之前必须具有相同的大小。还存在性能损失的可能性,例如在将图像作为纹理上传到OpenGL的过程中,帧速率急剧下降。不过,我非常愿意证明这一点是错误的。

任何人都可以阐明这个问题或为我指明正确的方向吗?

0 个答案:

没有答案