Mipmapping
![]() | Ten artykuł od 2010-02 wymaga zweryfikowania podanych informacji. Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
Mipmapping – technika teksturowania bitmapami wykorzystywana w grafice trójwymiarowej, która pozwala uniknąć artefaktów i tym samym uzyskać lepszą jakość obrazów. Przyspiesza ona również sam proces teksturowania. Mipmapping został opracowany przez Lance’a Williamsa w 1983 roku.
Mipmapping jest implementowany sprzętowo w kartach graficznych od początku XXI w.
Opis metody
Mipmapping wykorzystuje serię MIP map (mipmap), tj. tekstur o różnych rozmiarach, które są wynikiem skalowania tekstury podstawowej (oryginalnej). Jeśli tekstura ta ma rozmiar będący potęgą dwójki to zostanie wygenerowanych mipmap o rozmiarach itd., aż do tekstury o rozmiarach 1×1 piksel. Np. jeśli to poszczególne mipmapy mają rozmiary: 256×256 (oryginalna tekstura), 128×128, 64×64, 32×32, 16×16, 8×8, 4×4, 2×2 i 1×1.
![](http://upload.wikimedia.org/wikipedia/commons/5/5c/MipMap_Example_STS101.jpg)
Skalowanie może być wykonane w prosty sposób poprzez uśrednianie pikseli albo jedną z bardziej zaawansowanych technik filtrowania. Kolejne mipmapy wstępnie są pozbawione zakłóceń.
Następnie do teksturowania obiektu trójwymiarowego używa się tej tekstury, której rozdzielczość jest wystarczająca do reprezentowania obiektu obserwowanego z pewnej odległości i to właśnie od odległości zależy, która mipmapa zostanie wybrana. Im obiekt znajduje się dalej od obserwatora, tym mniejszą zajmuje powierzchnię i tym mniejsza tekstura jest wymagana. Przykładowo, jeśli obiekt ma wymiary ok. 10×13 pikseli, to do jego teksturowania wystarczy tekstura o rozmiarze 16×16, jeśli obiekt ma ok. 54×40, to wystarcza tekstura 64×64 itd. W obu przykładach nie ma sensu odwoływać się do tekstury o najwyższej rozdzielczości (np. 256×256), bo i tak znaczna część jej pikseli nigdy nie będzie widoczna.
W przypadku filtrowania dwuliniowego wybierana jest jedna mipmapa, a w przypadku filtrowania trójliniowego używane są dwie najbliższe mipmapy i dokonywana jest ich interpolacja.
![](http://upload.wikimedia.org/wikipedia/commons/8/8a/Mipmapping_example.png)
Zalety mipmappingu
- wstępne usuwanie zakłóceń skalowanych tekstur, co ma istotne znaczenie w grafice czasu rzeczywistego (gry komputerowe, symulatory lotu)
- zwiększenie prędkości teksturowania, ponieważ przetwarzana jest znacznie mniejsza liczba pikseli tekstury.
Wady
- zwiększenie wymagań pamięciowych o ⅓.
Zobacz też
- filtrowanie anizotropowe
- filtrowanie trójliniowe