MIP-teksturointi ( eng. MIP-mapping ) on teksturointimenetelmä , joka käyttää useita kopioita samasta tekstuurista erilaisilla yksityiskohdilla. Nimi tulee lat. multum in parvo - "paljon vähän".
Kuva näyttää parhaalta, kun pintakuvion yksityiskohdat ovat lähellä näytön resoluutiota . Jos näytön tarkkuus on korkeampi kuin tekstuuriresoluutio (tekstuuri liian pieni/objekti liian lähellä), kuva on epäselvä. Jos tekstuuriresoluutio on liian korkea (tekstuuri on liian suuri / kohde on liian kaukana), saamme satunnaisia pikseleitä - mikä tarkoittaa hienojen yksityiskohtien, moiré- ja välkkymisen katoamista. Liiallinen yksityiskohta on myös huono suorituskyvyn kannalta - se ylikuormittaa videoväylää ja aiheuttaa suuren prosenttiosuuden välimuistista . Osoittautuu, että on parempi olla useita erilaisia yksityiskohtia sisältäviä tekstuureja ja soveltaa esineeseen sitä, joka sopii parhaiten tähän tilanteeseen. Joissakin tapauksissa teksturoinnin nopeuden kasvu voi nousta tuhansia kertoja ja koko kohtauksen näyttämisen nopeus näytöllä - kymmeniä kertoja.
Monet nykyaikaiset PC-pelit antavat käyttäjälle mahdollisuuden säätää teksturoinnin laatua manuaalisesti asetuksissa valitsemalla suorituskyvyn ja laadun välillä. Jos tekstuurin laatu on asetettu "matalaksi", peli käyttää niiden mipmapsia (pieniä kopioita) alkuperäisten pintakuvioiden sijaan.
Luodaan niin sanottu MIP-pyramidi - pintakuvioiden sarja, jonka resoluutio on maksimi ja 1x1. Esimerkiksi: 1x1, 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512 ja 1024x1024. Jokaista näistä pintakuvioista kutsutaan MIP-tasoksi ( eng. MIP level ) tai yksityiskohtatasoksi ( eng. level of detail ).
Kaikilla näillä tekstuureilla on sama kuva. Siten mip-teksturointi lisää videomuistin kulutusta kolmanneksella:
.Tekstuuria levitettäessä lasketaan etäisyys kohteeseen ja tekstuurin numero saadaan kaavalla:
,missä resoluutio on virtuaalikameran resoluutio (pikseleiden määrä, jotka ovat 1 yksikön kokoisessa objektissa, joka sijaitsee 1 yksikön päässä kamerasta), texelsize on tekselin koko 3D-maailman yksiköissä, dist on etäisyys objektiin samoissa yksiköissä, mip bias - luku, jonka avulla voit valita enemmän tai vähemmän yksityiskohtaisen tekstuurin kuin kaava antaa.
Tämä luku pyöristetään ylöspäin kokonaislukuun ja vastaavalla numerolla varustettu pintakuvio (nolla on yksityiskohtaisin, ensimmäinen on kaksi kertaa pienempi jne.) lisätään objektiin.
Videomuistin kulutus kasvaa kolmanneksella (vaikka vastineeksi objektien piirtämisen nopeus näytölle kasvaa). Tyypilliset videomuistin koot 2010-luvun alussa ovat kuitenkin 1-3 Gt. Lisäksi, jos objekti on kaukana, sen yksityiskohtainen tekstuuri voidaan ladata RAM -muistiin .
MIP-kuviointi ei ratkaise pintakuvioiden ongelmaa, jotka ovat terävässä kulmassa katsojaan nähden (kuten tie autosimulaattorissa ). Tällaisissa tekstuureissa resoluutio toisella akselilla on hyvin erilainen kuin toisen akselin resoluutio - ja esimerkiksi kuva on selkeästi epäselvä X-akselilla, kun taas välkkyminen näkyy Y-akselilla, mikä on ominaista ylisuurelle tekstuurille resoluutio. On olemassa useita tapoja ratkaista tämä kerralla (alkaen heikoimmasta laadusta):
Selkeä raja MIP-tasojen välillä on näkyvissä. Tämä ratkaistaan trilineaarisella suodatuksella .
Jos samassa tekstuurissa on eri pintojen paloja, on tehtävä ylityksiä ja aukkoja, jotka ylittävät 1 pikselin "matkustavimmasta" MIP-tasosta. Tämä taso ei välttämättä ole korkein (esimerkiksi Dota 2 :ssa näemme sekä yksityiskohtaisen sankarin valikossa että miniatyyrin pelissä) - siksi nämä aukot määrättiin nimenomaisesti Dota 2 -mallinnusoppaassa.
Laadukkaat renderöijat voivat käyttää osittaista summataulukkoa . Tämä antaa parhaan kuvanlaadun (neljällä taulukolla voi saada keskiarvon minkä tahansa suorakulmion väristä), mutta tarvitset leveämpiä tyyppejä summien tallentamiseen. Näin ollen osasummataulukko ei ole enää kolmasosa, vaan vähintään kaksinkertainen. Osittaissummataulukko ei ratkaise välimuistin puuttumiseen liittyviä ongelmia.