DDS纹理加载

时间:2009-02-23 10:18:19

标签: c++ opengl textures directdraw

如何将dds纹理文件加载到OpenGL 2dtexture或立方体贴图纹理中?

3 个答案:

答案 0 :(得分:4)

我相信你使用glCompressedTexImage2DARB方法及其朋友。

This PDF似乎包含一些可能对您有所帮助的有希望的信息。

答案 1 :(得分:3)

根据您的需要,DevIL库可以使用DDS文件内容来提供OpenGL。

答案 2 :(得分:0)

如果DDS包含压缩纹理,则使用glCompressedTexImage2DARB(),如果它包含未压缩数据,则应用通常的glTexImage2D过程。对于每个mipmap级别,如果DDS文件包含mipmaps,则对于每个立方体贴图,如果它是立方体贴图,则为一次。

有关如何阅读DDS文件中的标题和数据,请在MSDN或DirectX SDK中查找文档。这是一个相当标准的容器格式,没有太多惊喜。

请注意,DDS使用左上角图像原点,而OpenGL则采用左下角原点作为图像数据。这意味着您可能需要在加载DDS图像后垂直翻转它。如果它们在DXT1 / 3/5中,您可以在不解压缩的情况下执行此操作,但这是一个稍微繁琐的过程,涉及对每个4x4的内容进行位操作压缩块。

相关问题