dds テクスチャ ファイルを OpenGL 2dtexture またはキューブ マップ テクスチャにロードするにはどうすればよいですか?
3 に答える
glCompressedTexImage2DARB メソッドとその仲間を使用していると思います。
この PDFには、役立つ可能性のある有望な情報が含まれているようです。
必要に応じて、DevILライブラリは OpenGL に DDS ファイル コンテンツを供給する処理を行うことができます。
DDS に圧縮されたテクスチャが含まれている場合は、glCompressedTexImage2DARB() を使用します。圧縮されていないデータが含まれている場合は、通常の glTexImage2D 手順が適用されます。DDS ファイルにミップマップが含まれている場合はミップマップ レベルごとに 1 回、キューブマップの場合はキューブマップ フェースごとに 1 回。
DDS ファイルのヘッダーとデータを読み取る方法については、MSDN または DirectX SDK でドキュメントを参照してください。これはかなり標準的なコンテナ形式であり、驚くようなことはあまりありません。
DDS は左上の画像の原点を使用するのに対し、OpenGL は画像データの左下の原点を想定していることに注意してください。これは、DDS 画像を読み込んだ後に垂直方向に反転させたい場合があることを意味します。DXT1/3/5 の場合は、解凍せずにこれを行うことができますが、各 4x4 の内容のビット操作を伴う、やや面倒なプロセスです。圧縮ブロック。