Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Обзор [ править ]

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

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

  • Уровень детализации (LOD) [6] [7]
  • Улучшение качества изображения. Рендеринг из больших текстур, где используются только небольшие несмежные подмножества текселей , может легко создавать муаровые узоры ;
  • Ускорение времени рендеринга за счет уменьшения количества текселей, отбираемых для рендеринга каждого пикселя, или увеличения объема памяти для взятых сэмплов;
  • Снижение нагрузки на графический процессор или процессор .

Происхождение [ править ]

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

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

Механизм [ править ]

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

Каждое растровое изображение набора mipmap является уменьшенной копией основной текстуры , но с определенным пониженным уровнем детализации. Хотя основная текстура все равно будет использоваться, когда представления достаточно для ее детального рендеринга, средство визуализации переключится на подходящее изображение MIP-карты (или фактически интерполирует между двумя ближайшими, если активирована трилинейная фильтрация ), когда текстура при взгляде издалека или при небольшом размере. Скорость рендеринга увеличивается, поскольку количество пикселей текстуры ( текселей ), обрабатываемых на пиксель дисплея, может быть намного меньше для аналогичных результатов с более простыми текстурами MIP-карты. Если используется ограниченное количество образцов текстуры на пиксель дисплея (как в случае с билинейной фильтрацией)) , То артефакты уменьшаются , так как MIPMAP изображения эффективно уже сглаживается . Масштабирование вниз и вверх также становится более эффективным с помощью 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-карты (с трилинейной интерполяцией) будут использоваться. Самый простой способ сгенерировать эти текстуры - последовательное усреднение; однако также могут использоваться более сложные алгоритмы (возможно, основанные на обработке сигналов и преобразованиях Фурье ).

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

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

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

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

Таблицы суммированной площади [ править ]

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

См. Также [ править ]

  • Пространственное сглаживание
  • Анизотропная фильтрация
  • Пирамида (обработка изображений)
  • Иерархическая модуляция - аналогичный прием в вещании
  • Масштабировать пространство

Ссылки [ править ]

  1. ^ «Фильтрация текстур с MIP-картами (Direct3D 9)» . microsoft.com . Microsoft.
  2. ^ «Фильтрация текстур с MIP-картами» . microsoft.com . Microsoft . 8 апреля 2010 г.
  3. ^ "Mipmap Texturing" ( PDF ) . Проверено 10 декабря 2019 года .
  4. ^ a b c Уильямс, Лэнс. «Пирамидальные параметры» (PDF) . Архивировано из оригинального ( PDF ) 14 апреля 2014 года . Проверено 25 сентября 2012 .
  5. ^ «Проблема сглаживания и Mipmapping» . текстуры . 2011-12-13 . Проверено 21 февраля 2019 .
  6. ^ «Несколько уровней детализации» ( PDF ) .
  7. ^ "Структура D3D11_SAMPLER_DESC" . microsoft.com . Microsoft.
  8. ^ Олано, Марк; Мукерджи, Шриджит; Дорби, Ангус. «Анизотропное текстурирование на основе вершин» ( PDF ) .