我需要尽可能多地加载大量图像,然后将它们作为动画播放。因此,我想最小化每个图像的大小。
我的问题是,如果我加载一个jpeg图像文件,我的机器会以bmp格式存储它吗?目前,我正在使用OpenGL加载bmp图像(每个大约3.5 MB)。 600个bmp文件已经超出了我的记忆。我怎么能加载更多,比如2千。
答案 0 :(得分:0)
您可以考虑以更加动画友好的格式存储图像。想到视频。
如果您只需要一次图像 - 在显示后立即从内存中丢弃它们。
使用DXT打包图像。如果质量略有下降,则可获得x4 / x8压缩比。
检查OpenGL设置,是否使用自动生成的mipmap,是否需要它们?
答案 1 :(得分:0)
我的问题是,如果我加载了一个jpeg图像文件,我的机器会以bmp格式存储吗?
您的机器会将其作为原始像素保存在内存中,除非您使用的是压缩纹理格式,但与JPEG非常不同。
文件格式对硬件和OpenGL毫无意义。
如何加载更多,比如2千。
你不应该。如果您正在播放动画,请在显示时加载图像,然后将其删除。对于OpenGL,您应该使用glTexSubImage2D
来替换纹理对象的内容。