Odpowiedzi:
Zasadą jest, że aby obliczyć następny rozmiar mipmapy, dzielisz przez dwa i zaokrąglasz w dół do najbliższej liczby całkowitej (chyba że zaokrągla ona w dół do 0, w takim przypadku jest to 1). Na przykład obraz 57x43 miałby mipmapy takie jak:
level 0: 57x43
level 1: 28x21
level 2: 14x10
level 3: 7x5
level 4: 3x2
level 5: 1x1
Mapowanie UV, wybór LOD i filtrowanie działają tak samo, jak w przypadku dwóch rozmiarów tekstur.
Generowanie mipsów dobrej jakości dla tekstur bez potęgi dwóch jest nieco trudniejsze, ponieważ we wszystkich przypadkach nie można po prostu uśrednić pola pikseli 2x2 do próbkowania w dół. Jednak filtr pudełkowy 2x2 nie był tak dobry na początek, dlatego zaleca się stosowanie lepszego filtra próbkowania w dół, takiego jak Mitchell-Netravali, niezależnie od wielkości tekstury.
Jednym ze sposobów, aby o tym pomyśleć, jest to, że karty graficzne często implementują tekstury inne niż 2, po prostu wypełniając je, aż uzyskają potęgę 2 w każdym kierunku. To sprawia, że większość rzeczy „po prostu działa”: na przykład kafelkowanie i filtrowanie sprzętu. Jedyne, co należy zmienić, to konwersja współrzędnych tekstury na współrzędne obrazu.
Jeśli tak zaimplementowane, oczywiste jest, jak wykonać mipmapowanie: nic się nie zmienia. Nawet jeśli masz procesor graficzny obsługujący tekstury bez zasilania 2 bez dopełniania, poziomy mipmap skończyłyby się na „dopełnianiu”. np. tekstura 3x3 miałaby teksturę 2x2 jak lod 1.