Топ питань
Часова шкала
Чат
Перспективи

MIP-текстурування

З Вікіпедії, вільної енциклопедії

MIP-текстурування
Remove ads

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

Thumb
Головна текстура і її зменшені копії

Призначення

Зображення найкраще виглядає, коли деталізація текстури близька до роздільності екрана. Якщо вона дуже низька (текстура занадто маленька/об'єкт дуже близько), виходить розмите зображення. Якщо ж роздільність текстури дуже висока (текстура занадто велика/об'єкт дуже далеко), отримуємо випадкові пікселі — а значить, втрату дрібних деталей, мерехтіння і великий відсоток промахів в кеш. Виходить, що краще мати декілька текстур різної деталізації і накладати на об'єкт ту, яка найбільш підходить в даній ситуації.

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 видно мерехтіння, властиві завищеній роздільності текстури. Є відразу кілька способів вирішення цього (починаючи з найменш якісного):

  1. Встановити в відеодрайвер найбільш комфортне значення mip bias — числа, яке відповідає за вибір номера текстури в піраміді. Якщо воно від'ємне, відеоплата бере детальніші текстури, якщо додатне — менш детальні.
  2. Часто ігри самі встановлюють відповідний mip bias для різних типів об'єктів. Наприклад, в Live for Speed mip bias встановлюється користувачем окремо для автомобілів, перешкод і дороги.
  3. Скористатися анізотропною фільтрацією — методом текстурування, який спрямований саме на вирішення цієї проблеми.

Нарешті, видно чітка межа між MIP-рівнями. Це вирішується трилінійною фільтрацією.

Див. також

Посилання

  • Михайло Хабре (29 травня 2002). Створення детальних текстур c допомогою mip-map рівнів у Direct3D8. GameDev. ru. Архів оригіналу за 19 березня 2012. Процитовано 12 липня 2009.
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads