如果DDS包含压缩纹理,则使用glCompressedTexImage2DARB(),如果它包含未压缩的数据,则应用通常的glTexImage2D过程。如果DDS文件包含mipmaps,则每个mipmap级别执行一次,如果是cubemap,则每个面执行一次。关于如何读取DDS文件中的头和数据,请在MSDN或DirectX SDK上查找相关文档。这是一个相当标准的容器格式,没有太多意外。请注意,DDS使用左上角图像原点,而OpenGL假定图像数据具有左下角原点。这意味着在加载后,您可能需要垂直翻转DDS图像。如果它们在DXT1/3/5中,则可以在不解压缩它们的情况下完成此操作,但这是一个稍微棘手的过程,涉及到对每个4x4压缩块的内容进行位操作。