Néhány apró észrevétel az OpenGL-ben elérhető (textúra) mipmap generálási lehetőségekkel kapcsolatban.
Talán vannak akik emlékeznek a gluBuild2DMipmaps nevű glu függvényre. Szerencsére ma már nagyon ritka, hogy ilyen módon (szoftveresen) szükséges előállítani a mipmap szinteket mivel a mai GPU-k hardveresen képesek ezt megoldani. Ennek azonban két módja lehetséges, amelyekre érdemes odafigyelni.
GL_GENERATE_MIPMAP
Ez a régebbi módszer, amely még a SGI nevéhez fűződik. Használata:
glTexParameteri (GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
glGenerateMipmap
Ez az FBO extension-nel együtt született a registry tanulsága szerint. Elődjétől eltérően ez már függvény és más a működési elve is. Használata:
glGenerateMipmap (GL_TEXTURE_2D);
A működése elve miatt fontos, hogy akkor kell meghívni, amikor a mipmap szinteket le akarjuk gyártani. Mindenképp szükséges a glTexImage.. után (mivel ekkor foglalja le a helyet is a textúra számára)!
Felhasználásukban is különbségek mutatkoznak. Míg az előbbit "statikus" textúrákhoz az utóbbit mindkettőhöz, de leginkább a dinamikus és főleg a render-to-texture textúrákhoz ajánlják - bizonyos források szerint a GL_GENERATE_MIPMAP esetén minden egyes rajzolási hívás után legyártásra kerülnek a mipmap szintek míg a glGenerateMipmap esetén csak akkor amikor szeretnénk. Ezt úgy tehetjük meg, hogy glBindTexture után meghívjuk a glGenerateMipmap-t.
A példákban GL_TEXTURE_2D szerepelt azonban a generálás működik GL_TEXTURE_3D és "GL_TEXTURE_CUBE_MAP" esetén is.
Szerk:
A kettő kvázi kizárja egymást; az első a magasabb GL verziókban deprecated.