On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Мипмэппинг

Мипмэппинг (MIP-mapping) использует несколько версий одной текстуры с разной
степенью детализации (LOD - level-of-detail), причем следующая версия меньше
предыдущей в 4 раза  (например 128x128, 64x64, 32x32 и т.д.).  Такие  версии
называются мип-уровнями, а все версии одной текстуры - мип-каскадом.

Цели мипмэппинга:
1) Уменьшение времени обработки - для объектов на далеком расстоянии обраба-
тывать текстуру с низким разрешением гораздо легче.
2) Избавление от шума и муара - добавление мип-уровней  с низким уровнем де-
тализации.

Существует  несколько  видов мипмэппинга, но все они используют 1 либо 2 со-
седних мип-уровня.  При мипмэппинге,  каждый используемый  мип-уровень  либо
увеличивается, либо уменьшается (соотвествие 1:1 статистически редко).  Уве-
личение и уменьшение называются соответственно магнификацией (magnification)
и минификацией (minification).  И минификация, и магнификация имеет свои не-
достатки.  Минификация  приводит к underfilteringу  (выражающемуся в муаре и
шуме),  магнификацизации  или  заблюриванию).  Чем  меньше  искажается  мип-
уровень, тем лучше выглядит текстура в конечном итоге.

Основные виды мипмэппинга:

1) Простой мипмэппинг (nearest mipmapping)  без билинейной фильтрации сейчас
не используется.

2) Простой мипмэппинг с билинейной фильтрацией.  Самый применяемый метод се-
годня.  Похож на предыдущий метод, но между текселами выполняется интерполя-
ция. При приближении или удалении объекта от наблюдателя выбирается подходя-
щий  мип-уровень.  При приближении  к наблюдателю  выбирается  мип-уровень с
бОльшей степенью детализации, при удалении - с меньшей.  Что же будет с мип-
уровнем в конкретный момент - будет  выполняться  минификация или магнифика-
ция?  Это зависит от конкретной реализации и от параметра,  называемого LOD-
bias. Если в рендеринге доминирует минификация, то на сцене присутствуют шум
и муар.  Если доминирует магнификация, то текстуры кажутся более размазанны-
ми, но муара/шума нет. Простому мипмэппингу присущ артефакт,  выражающийся в
резких переходах на текстурированной поверхности (так называемые полосы мип-
мэппинга). Это происходит при смене степени детализации, если мип-каскад на-
рисован некачественно.

3) Трилинейная фильтрация (tri-linear filtering). Hаиболее аккуратный способ
вычисления цвета пиксела. Трилинейная фильтрация более сложна, нежели преды-
дущие методы. В отличие от простого мипмэппинга, в котором просто выбирается
подходящий уровени детализации,  здесь  проводится  интерполяция между двумя
соседними мип-уровнями.  Благодаря  этому  полосы мипмэппинга не образуются.
При вычислении цвета пиксела используется 8 текселов (4 при билинейной филь-
трации) и требует 7 операций смешения (3 при билинейной фильтрации). Исполь-
зование трилинейной фильтрации дает гораздо более высокое качество изображе-
ния для движущихся объектов.

Адаптивная фильтрация  частично решает проблему  overfilteringа/underfilter-
ingа.  Программа  выбирает  как  обрабатывать мип-уровни, отдельно верхний и
нижний.  Hапример  интерполировать  нижний мип-уровень, и не интерполировать
верхний мип-уровень,  а затем интерполировать  полученные текстуры между со-
бой, как при трилинейной фильтрации.

Мипмэппинг предполагает, что разработчик сам создает мип-каскад. Однако мно-
гие игры имеют лишь текстуры с одним разрешением.  Для решения этой проблемы
была придумана техника авто-мипмэппинга. Драйвер 3D-ускорителя сам вычисляет
несколько мип-уровней, используя основную текстуру (она становится мип-уров-
нем с максимальной детализацией). Техника авто-мипмэппинга используется так-
же для увеличения числа мип-уровней,  если  игра использует недостаточное их
количество  (например многие игры используют всего 3 мип-уровня для экономии
текстурной памяти).

Мипмэппинг дает высокое качество  для полигонов,  преимущественно обращенных
на наблюдателя  (т.е. расположенных параллельно плоскости экрана),  так  как
такие полигоны состоят из квадратных пикселов.  Однако наклоненные полигонов
состоят из неквадратных пикселов,  и к проблеме размера пикселов добавляется
проблема формы пикселов.  При стандартном подходе фильтр, который хорошо ра-
ботает с квадратными пикселами, дает сильный алиасинг на неквадратных. Реше-
нием этой проблемы является анизотропная фильтрация,  которая является более
сложным фильтром, чем трилинейная фильтрация.  Анизотропная фильтрация рабо-
тает с пикселами как с эллипсами и для получения одного пиксела обрабатывает
большое количество текселов (до 32).
Назад       Содержание       Вперёд