stringtranslate.com

MIP-карта

В компьютерной графике MIP -карты (также MIP-карты ) или пирамиды [1] [2] [3] представляют собой заранее рассчитанные оптимизированные последовательности изображений , каждое из которых представляет собой представление предыдущего с прогрессивно более низким разрешением . Высота и ширина каждого изображения или уровня в MIP-карте в два раза меньше, чем у предыдущего уровня. Мип-карты не обязательно должны быть квадратными. Они предназначены для увеличения скорости рендеринга и уменьшения артефактов алиасинга . Mip-изображение высокого разрешения используется для образцов с высокой плотностью, например, для объектов, близких к камере; используются изображения с более низким разрешением, поскольку объект кажется дальше. Это более эффективный способ понижающей фильтрации ( минимизации ) текстуры , чем выборка всех текселей исходной текстуры, которые могут вносить вклад в пиксель экрана ; быстрее получить постоянное количество выборок из текстур, подвергнутых соответствующей фильтрации. Mip-карты широко используются в компьютерных 3D-играх , авиасимуляторах , других системах 3D-изображений для фильтрации текстур , а также в программном обеспечении 2D и 3D ГИС . Их использование известно как мипмаппинг . Буквы MIP в названии являются аббревиатурой латинской фразы multum in parvo , что означает «много в малом». [4]

Поскольку MIP-карты по определению выделяются заранее , для их использования требуется дополнительное пространство для хранения . Они также связаны с вейвлет-сжатием . Mip-текстуры используются в 3D-сценах для уменьшения времени, необходимого для рендеринга сцены. Они также улучшают качество изображения за счет уменьшения сглаживания и муара , возникающих на больших расстояниях просмотра, [5] за счет увеличения памяти на 33% на текстуру.

Обзор

Изображение, показывающее, как MIP-карты уменьшают сглаживание на больших расстояниях.
Изображение, показывающее, как MIP-карты уменьшают сглаживание на больших расстояниях (сглаживание вызывает появление муара на левом изображении).

Мип-карты используются для:

Источник

Мипмэппинг был изобретен Лэнсом Уильямсом в 1983 году и описан в его статье «Пирамидальная параметрика» . [4] Из аннотации: «В этой статье предлагается «пирамидальная параметрическая» геометрия предварительной фильтрации и выборки, которая сводит к минимуму эффекты наложения спектров и обеспечивает непрерывность внутри и между целевыми изображениями». Упомянутую пирамиду можно представить как набор MIP-карт, расположенных друг напротив друга.

Первый патент на Mipmap и генерацию текстур был выдан в 1983 году Джонсоном Яном, Николасом Сабо и Лиш-Янном Ченом из Link Flight Simulation (Singer). Используя их подход, текстуру можно генерировать и накладывать на поверхности (криволинейные и плоские) любой ориентации и делать это в режиме реального времени. Текстурные узоры могут быть смоделированы так, чтобы наводить на мысль о материале реального мира, который они должны были представлять непрерывным образом и без псевдонимов, в конечном итоге обеспечивая уровень детализации и постепенные (незаметные) переходы между уровнями детализации. Генерация текстур стала повторяемой и последовательной от кадра к кадру, сохраняя правильную перспективу и соответствующее затемнение. Поскольку применение текстурирования в реальном времени применялось к ранним CGI-системам трехмерных авиасимуляторов, а текстура была предпосылкой для реалистичной графики, этот патент стал широко цитироваться, и многие из этих методов позже были применены в графических вычислениях и играх по мере расширения приложений по всему миру. годы. [9]

Происхождение термина «мипмап» является инициализмом латинской фразы multum in parvo («много в небольшом пространстве») и карты, созданной по образцу растрового изображения. [4] Термин «пирамиды» до сих пор широко используется в контексте ГИС . В программном обеспечении ГИС пирамиды в основном используются для ускорения времени рендеринга.

Механизм

Пример хранилища изображений MIP-карт: основное изображение слева сопровождается отфильтрованными копиями уменьшенного размера.

Каждое растровое изображение набора MIP-карт является уменьшенной копией основной текстуры , но с определенным пониженным уровнем детализации. Хотя основная текстура по-прежнему будет использоваться, когда представление будет достаточным для ее полной детализации, средство рендеринга переключится на подходящее MIP-изображение (или, по сути, будет интерполировать между двумя ближайшими, если активирована трилинейная фильтрация ), когда текстура будет смотреть на расстоянии или в небольшом размере. Скорость рендеринга увеличивается, поскольку количество пикселей текстуры ( текселей ), обрабатываемых на пиксель дисплея, может быть намного меньше для аналогичных результатов с более простыми MIP-текстурами. Если использовать ограниченное количество образцов текстуры на пиксель дисплея (как в случае с билинейной фильтрацией ), то количество артефактов уменьшается, поскольку MIP-изображения фактически уже сглажены . Уменьшение и увеличение масштаба также становится более эффективным с помощью MIP-карт.

Если текстура имеет базовый размер 256 на 256 пикселей, то связанный набор MIP-карт может содержать серию из 8 изображений, каждое из которых составляет четверть общей площади предыдущего: 128×128 пикселей, 64×64, 32×32. , 16×16, 8×8, 4×4, 2×2, 1×1 (один пиксель). Если, например, сцена отображает эту текстуру в пространстве размером 40×40 пикселей, то либо увеличенная версия 32×32 (без трилинейной интерполяции ), либо интерполяция 64×64 и 32×32. будут использоваться MIP-карты (с трилинейной интерполяцией). Самый простой способ создания таких текстур — последовательное усреднение; однако можно использовать и более сложные алгоритмы (возможно, основанные на обработке сигналов и преобразованиях Фурье ).

Отображение каждого цветового канала каждого уровня мип-карты RGB в виде отдельной плоскости (слева) демонстрирует, что вся мип-карта образует квадрат, площадь которого в 4 раза превышает площадь. Поскольку каждая плоскость требует 1/3 памяти, MIP- карты требуют 4/3 памяти ; т. е. на 13 ≈ 33% больше.

Увеличение объема памяти, необходимого для всех этих MIP-карт, составляет треть исходной текстуры, поскольку сумма площадей 1/4 + 1/16 + 1/64 + 1/256 + ⋯ сходится к 1/3. В случае изображения RGB с тремя каналами, хранящимися в отдельных плоскостях, общее MIP-карта может быть визуализирована как аккуратно вписанная в квадратную область, в два раза превышающую размеры исходного изображения с каждой стороны (вдвое больше с каждой стороны — четыре умножить на исходную площадь — одна плоскость исходного размера для каждого из красного, зеленого и синего цветов в три раза превышает исходную площадь, а поскольку меньшие текстуры занимают 1/3 исходной, 1/3 из трёх равна одной, поэтому они займет то же общее пространство, что и одна из исходных красных, зеленых или синих плоскостей). Это послужило источником вдохновения для тега multum in parvo .

Анизотропная фильтрация

Когда текстура просматривается под крутым углом, фильтрация не должна быть однородной в каждом направлении (она должна быть анизотропной , а не изотропной ), и требуется компромиссное разрешение. Если используется более высокое разрешение, когерентность кэша снижается, а сглаживание увеличивается в одном направлении, но изображение становится более четким. Если используется более низкое разрешение, согласованность кэша улучшается, но изображение получается слишком размытым. Это будет компромисс между уровнем детализации MIP (LOD) для сглаживания и размытия. Однако анизотропная фильтрация пытается решить этот компромисс, отбирая неизотропную текстуру для каждого пикселя, а не просто регулируя MIP LOD. Эта неизотропная выборка текстур требует либо более сложной схемы хранения, либо суммирования большего количества выборок текстур на более высоких частотах. [10]

Таблицы суммированных площадей

Таблицы суммированных площадей позволяют экономить память и обеспечивать большее разрешение. Однако они снова нарушают согласованность кэша и требуют более широких типов для хранения частичных сумм, которые превышают размер слова базовой текстуры. Таким образом, современное графическое оборудование их не поддерживает.

Смотрите также

Рекомендации

  1. ^ «Фильтрация текстур с помощью MIP-карт (Direct3D 9)» . microsoft.com . Майкрософт.
  2. ^ «Фильтрация текстур с помощью MIP-карт». microsoft.com . Майкрософт . 8 апреля 2010 г.
  3. ^ «Текстурирование MIP-карт» (PDF) . Проверено 10 декабря 2019 г.
  4. ^ abc Уильямс, Лэнс. «Пирамидная параметрика» (PDF) . Архивировано из оригинала (PDF) 14 апреля 2014 г. Проверено 25 сентября 2012 г.
  5. ^ «Проблема сглаживания и MIP-маппинг» . текстура в графике . 13 декабря 2011 г. Проверено 21 февраля 2019 г.
  6. ^ «Несколько уровней детализации» ( PDF ) .
  7. ^ "Структура D3D11_SAMPLER_DESC" . microsoft.com . Майкрософт.
  8. ^ «Деконструкция эффекта воды в Super Mario Sunshine» . Проверено 25 февраля 2023 г.
  9. ^ Джонсон К. Ян, Николас С. Сабо, Лиш-Янн Чен. «Генерация текстур» (PDF) .{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  10. ^ Олано, Марк; Мукерджи, Шриджит]]; Дорби, Ангус. «Анизотропное текстурирование на основе вершин» (PDF) .