如何将 dds 纹理文件加载到 OpenGL 2dtexture 或立方体贴图纹理中?
Tom J Nowell
问问题
7857 次
3 回答
4
我相信你使用 glCompressedTexImage2DARB 方法和它的朋友。
此 PDF似乎包含一些可能对您有帮助的有希望的信息。
于 2009-02-23T10:25:54.193 回答
3
根据您的需要,DevIL库可以负责为 OpenGL 提供 DDS 文件内容。
于 2009-02-26T07:17:59.190 回答
0
如果 DDS 包含压缩纹理,则使用 glCompressedTexImage2DARB(),如果它包含未压缩数据,则应用通常的 glTexImage2D 过程。如果 DDS 文件包含 mipmap,则为每个 mipmap 级别一次,如果它是一个立方体贴图,则为每个立方体贴图面一次。
有关如何读取 DDS 文件中的标头和数据的信息,请在 MSDN 或 DirectX SDK 中查找它的文档。这是一种相当标准的容器格式,没有太多惊喜。
请注意,DDS 使用左上角图像原点,而 OpenGL 假定图像数据的左下角原点。这意味着您可能希望在加载 DDS 图像后对其进行垂直翻转。如果它们在 DXT1/3/5 中,您可以在不解压缩它们的情况下执行此操作,但这是一个稍微复杂的过程,涉及对每个 4x4 的内容进行位操作压缩块。
于 2009-02-23T13:31:45.837 回答