Domanda

Come faccio a caricare un file dds texture in un OpenGL 2dtexture o una mappa cubo consistenza?

È stato utile?

Soluzione

Credo che si utilizza il metodo glCompressedTexImage2DARB e dei suoi amici.

Questo PDF sembra contenere alcune informazioni promettente che può essere utile per te.

Altri suggerimenti

A seconda delle esigenze, il Diavolo biblioteca può prendersi cura di OpenGL alimentazione con un contenuto di file DDS.

Se la DDS contiene una texture compressa quindi utilizzare glCompressedTexImage2DARB (), se contiene dati non compressi si applica la consueta procedura glTexImage2D. Una volta per ogni livello mipmap se il file DDS contiene mipmaps, e una volta per ogni faccia cubemap se un cubemap.

Per come fare per leggere l'intestazione e dati in un file DDS cercare la documentazione su MSDN o nel DirectX SDK. Si tratta di un formato contenitore abbastanza standard, non ci sono troppe sorprese.

Si tenga presente che DDS utilizza un'origine alto a sinistra dell'immagine, mentre OpenGL assume origine in basso a sinistra per i dati di immagine. Questo probabilmente significa che si vuole capovolgere verticalmente l'immagine DDS dopo il caricamento in. È possibile farlo senza decomprimerli se sono in DXT1 / 3/5, ma è un processo un po 'laborioso che comporta la manipolazione po' il contenuto di ogni 4x4 blocco compressione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top