如何在openGL中使用纹理压缩?

如何在openGL中使用纹理压缩?,opengl,image-processing,image-manipulation,Opengl,Image Processing,Image Manipulation,我正在使用openGL制作一个图像查看器,我遇到了需要加载非常大(>50MB)的图像才能查看的情况。我将图像加载为纹理,并将其显示到一个GL_四边形中,该四边形对于较小的图像非常有效,但在较大的图像上加载失败,我得到一个空白矩形。到目前为止,我已经实现了一个非常丑陋的黑客程序,它使用另一个程序将图像转换为更小、更低分辨率的版本,可以加载,但我正在寻找一个更优雅的解决方案。我发现openGL有一个新的功能,但我无法让它工作。当我打电话时 glTexImage2D(GL_TEXTURE_2D, 0,

我正在使用openGL制作一个图像查看器,我遇到了需要加载非常大(>50MB)的图像才能查看的情况。我将图像加载为纹理,并将其显示到一个GL_四边形中,该四边形对于较小的图像非常有效,但在较大的图像上加载失败,我得到一个空白矩形。到目前为止,我已经实现了一个非常丑陋的黑客程序,它使用另一个程序将图像转换为更小、更低分辨率的版本,可以加载,但我正在寻找一个更优雅的解决方案。我发现openGL有一个新的功能,但我无法让它工作。当我打电话时

glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_ARB, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits());
我得到编译器错误“GL_COMPRESSED_RGBA_ARB undeclared”。我做错了什么?有我不见的图书馆吗?更一般地说,这是解决我问题的可行办法吗


我正在Windows Vista机器上使用Qt Creator,它带有NVIDIA Quadro FX 1700图形卡。

首先,我要问这些大图像的分辨率是多少?其次,要使用像GL_COMPRESSED_RGBA_ARB这样的定义,您需要下载并使用像GLEW这样的东西,它在GL api中比标准MS Dev安装更现代化。

在我自己的GFX卡上,opengl纹理的最大分辨率是8192x8192,如果您的图像大于50MB,这可能是一个非常高的分辨率。。。
检查,它描述了如何找到最大纹理大小。

图像的每一面介于10000到30000像素之间。是的,您的卡的驱动程序很可能无法处理该分辨率,因此您最好将它们分割为较小的图像。