› 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. 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. 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.