DDS纹理加载

3

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

3个回答

4
我相信您使用了glCompressedTexImage2DARB方法及其相关的方法。 这份PDF文档似乎包含了一些有用的信息,可能对您有帮助。

3

根据您的需求,DevIL 库可以处理 DDS 文件内容并提供给 OpenGL。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接