Топ питань
Часова шкала
Чат
Перспективи
MIP-текстурування
З Вікіпедії, вільної енциклопедії
Remove ads
MIP-текстурування (англ. MIP mapping) — метод текстурування, що використовує кілька копій однієї текстури з різною деталізацією. Назва походить від лат. multum in parvo — «багато в одному».

Призначення
Зображення найкраще виглядає, коли деталізація текстури близька до роздільності екрана. Якщо вона дуже низька (текстура занадто маленька/об'єкт дуже близько), виходить розмите зображення. Якщо ж роздільність текстури дуже висока (текстура занадто велика/об'єкт дуже далеко), отримуємо випадкові пікселі — а значить, втрату дрібних деталей, мерехтіння і великий відсоток промахів в кеш. Виходить, що краще мати декілька текстур різної деталізації і накладати на об'єкт ту, яка найбільш підходить в даній ситуації.
Remove ads
Принцип дії
Узагальнити
Перспектива
Створюється так звана MIP-піраміда — послідовність текстур з розділенням від максимального до 1 × 1. Наприклад: 1 × 1, 2 × 2, 4 × 4, 8 × 8, 16 × 16, 32 × 32, 64 × 64, 128 × 128, 256 × 256, 512 × 512 і 1024 × 1024. Кожна з цих текстур називається MIP-рівнем (англ. MIP level) або рівнем деталізації (англ. level of detail).
На всіх цих структурах знаходиться одне і те ж зображення. Таким чином, MIP-текстурування збільшує витрату відеопам'яті на третину: .
При накладенні текстур обчислюється відстань до об'єкта, відповідно знаходиться номер текстури як , де resolution — роздільність віртуальної камери (кількість пікселів, яке буде в об'єкті розміром в 1 од., розташованому в 1 од. від камери), texelsize — розмір текселя в одиницях тривимірного світу, dist — відстань до об'єкта в тих же одиницях, mip bias — число, що дозволяє вибирати більш-менш детальну текстуру, ніж дає формула. Ця цифра округляється до цілого, і текстура з відповідним номером (нульова — найдетальніша, перша — вдвічі менша і т. д.) накладається на об'єкт.
Remove ads
Недоліки, способи вирішення
Узагальнити
Перспектива
Витрата відеопам'яті збільшується на третину. Втім, відеопам'ять зараз досить дешева. До того ж, якщо об'єкт далеко, його детальну текстуру можна вивантажити в оперативну пам'ять.
MIP-текстурування не вирішує проблему текстур, що знаходяться під гострим кутом до глядача (наприклад, дорога в автосимуляторі). У таких текстур роздільність за однією з осей дуже відрізняється від роздільності за іншою — і, наприклад, по осі X зображення явно розмите, в той час як по осі Y видно мерехтіння, властиві завищеній роздільності текстури. Є відразу кілька способів вирішення цього (починаючи з найменш якісного):
- Встановити в відеодрайвер найбільш комфортне значення mip bias — числа, яке відповідає за вибір номера текстури в піраміді. Якщо воно від'ємне, відеоплата бере детальніші текстури, якщо додатне — менш детальні.
- Часто ігри самі встановлюють відповідний mip bias для різних типів об'єктів. Наприклад, в Live for Speed mip bias встановлюється користувачем окремо для автомобілів, перешкод і дороги.
- Скористатися анізотропною фільтрацією — методом текстурування, який спрямований саме на вирішення цієї проблеми.
Нарешті, видно чітка межа між MIP-рівнями. Це вирішується трилінійною фільтрацією.
Див. також
Посилання
- Михайло Хабре (29 травня 2002). Створення детальних текстур c допомогою mip-map рівнів у Direct3D8. GameDev. ru. Архів оригіналу за 19 березня 2012. Процитовано 12 липня 2009.
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads