我使用MFC和OpenGL在C++中创建了一个简单的2D图像查看器.该图像查看器允许用户打开图像,放大/缩小,平移,以及以不同颜色层(青色,黄色,品红色,黑色)查看图像.该程序非常适合合理大小的图像.但是我正在对一些非常大的图像进行压力测试,而且我很容易耗尽内存.我有一个这样的图像是16,700x15,700.我的程序会耗尽内存,甚至可以绘制任何东西,因为我动态创建UCHAR[]一个大小为height x width x 4.我将它乘以4,因为当我将此数组提供给每个RGBA值时,有一个字节glTexImage2D(GLTEXTURE_2D, 0, GL_RGB8, width, height, 0, GL_RGBA, GLUNSIGNED_BYTE, (GLvoid*)myArray)
我做了一些搜索并阅读了一些关于将图像分割成瓷砖的信息,而不是单个四边形上的一个大纹理.这是我应该做的事吗?这对我的记忆有什么帮助?或者我应该做些什么更好的事情?