2009-02-23 108 views

回答

4

我相信你使用glCompressedTexImage2DARB方法和它的朋友。

This PDF似乎包含一些有前途的信息,可能會對您有所幫助。

0

如果DDS包含壓縮紋理,則使用glCompressedTexImage2DARB(),如果它包含通常的glTexImage2D過程所應用的未壓縮數據。如果DDS文件包含mipmap,則爲每個mipmap級別添加一次,如果是立方圖,則爲每個cubemap添加一次。

有關如何閱讀DDS文件中的標題和數據,請在MSDN或DirectX SDK中查找它的文檔。這是一個相當標準的容器格式,沒有太多驚喜。

請注意,DDS使用左上角圖像原點,而OpenGL假定圖像數據爲左下角原點。這意味着您可能需要在加載後垂直翻轉DDS圖像。如果它們位於DXT1/3/5中,您可以在不進行解壓縮的情況下執行此操作,但這是一個稍微煩瑣的過程,需要對每個4x4內容進行位操作壓縮塊。

3

根據您的需要,DevIL庫可以照顧爲OpenGL提供DDS文件內容。