› Teksture
Uobičajeno da se teksture koriste iz objekata koji su spremljeni u odvojenim datotekama. No svejedno, postoje datotečni formati koji omogućuju ugrađivanje tekstura izravno u datoteku modela. Takve teksture se učitavaju unutar aiTexture strukture.
Postoje dva slučaja:
- 1. Tekstura nije komprimirana. Njezini podaci o boji se direktno učitavaju u strukturu aiTexture kao niz od aiTexture::mWidth * aiTexture::mHeight aiTexel struktura. Svaki aiTexel predstavlja pixel (ili "texel") slike teksture. Podaci o boji su spremljeni u unsigned RGBA8888 formatu, kojeg jednostavno koriste OpenGL i Direct3D. Navedeni format se koristi zato jer je dobro poznat, jednostavan za korištenje, te ga podržavaju gotovo sva sučelja za razvoj grafičkih aplikacija.
- 2. Ovo se pravilo primjenjuje ako je uvjet aiTexture:mHeight == 0 zadovoljen. Tada se tekstura sprema u komprimiranom formatu, poput DDS-a ili PNG-a. Izraz "komprimiran" ne znači da podaci o teksturi moraju biti komprimirani, no tekstura je pronađena u modelu kao da je spremljena u posebnoj datoteci na hard disku. Potrebni su različiti dekoderi (poput libjpeg, libpng, D3DX, DevIL) za učitavanje takvih tekstura. aiTexture::mWidth specificira veličinu teksturnih podataka u bajtovima, aiTexture::pcData je pokazivač na podatke o slici, a aiTexture::achFormatHint je ili NULL, ili sadrži uobičajene datotečne ekstenzije formata ugrađene teksture. Ova vrijednost je postavljena samo ako je Assimp u mogućnosti utvrditi datotečni format.
Teksture su organizirane u stogove, a svaki stog se razmatra zasebno. Koristi se konačna vrijednost boje određenog stoga teksture za jednadžbu sjenančanja. Primjerice, izračunata vrijednost boje difuznog stoga teksture (aiTextureType_DIFFUSE) se množi sa količinom dolaznog difuznog svjetla, kako bi se izračunala konačna difuzna boja piksela.