В компьютерной графике, MIP-карты (также MIP-карты ) или пирамиды являются предварительно рассчитанными, оптимизированными последовательностями изображений, каждый из которых является представлением разрешения с прогрессивно более низким разрешением предыдущего. Высота и ширина каждого изображения или уровня в MIP-карте в степени на два меньше, чем предыдущий уровень. Mip-карты не обязательно должны быть квадратными. Они предназначены для увеличения скорости рендеринга и уменьшения артефактов сглаживания. Изображение MIP-карты с высоким разрешением используется для образцов с высокой плотностью, например для объектов, близких к камере; изображения с более низким разрешением используются, поскольку объект кажется дальше. Это более эффективный способ понижающей фильтрации (минимизация ) текстуры , чем выборка всех текселей в исходной текстуре, которые будут вносить вклад в экран пиксель ; быстрее взять постоянное количество образцов из текстур, прошедших соответствующую фильтрацию. Mip-карты широко используются в 3D компьютерных играх, авиасимуляторах, других системах трехмерного изображения для фильтрации текстур и 2D, а также в программном обеспечении 3D ГИС. Их использование известно как mipmapping . Буквы MIP в названии являются аббревиатурой латыни фразы multum in parvo, означающей «много в малом».
Так как MIP-карты по определению предварительно размещаются, для их использования требуется дополнительное дисковое пространство. Они также относятся к вейвлет-сжатию. Текстуры MIP-карты используются в 3D-сценах, чтобы уменьшить время, необходимое для визуализации сцены. Они также улучшают качество изображения за счет уменьшения наложения и муаровых узоров, возникающих на больших расстояниях просмотра, за счет 33% большего объема памяти для каждой текстуры.
MIP-карты используются для:
Mipmapping был изобретен Лэнсом Уильямсом в 1983 г. и описан в его статье «Пирамидальная параметрика. Из аннотации: «Эта статья продвигает« пирамидальную параметрическую »геометрию предварительной фильтрации и выборки, которая минимизирует эффекты наложения спектров и обеспечивает непрерывность внутри и между целевыми изображениями». Указанную пирамиду можно представить как набор MIP-карт, расположенных друг напротив друга.
Термин "mipmap" произошел от латинского выражения "multum in parvo" ("много в небольшом пространстве") и "карта", смоделированного на основе растрового изображения. Термин пирамиды все еще широко используется в контексте ГИС. В программном обеспечении ГИС пирамиды в основном используются для ускорения времени рендеринга.
Каждое растровое изображение набора mipmap является уменьшенной копией основного текстура, но с некоторым пониженным уровнем детализации. Хотя основная текстура все равно будет использоваться, когда представления достаточно для ее детальной визуализации, средство визуализации переключится на подходящее изображение 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-карты (с трилинейной интерполяцией) будут использоваться. Самый простой способ сгенерировать эти текстуры - последовательное усреднение; однако также могут использоваться более сложные алгоритмы (возможно, основанные на обработке сигналов и преобразовании Фурье ).
Отображение каждого цветового канала каждого уровня MIP-карты RGB в виде отдельной плоскости (слева) демонстрирует, что вся MIP-карта в целом образует квадрат, в 4 раза превышающий площадь. Поскольку для каждой плоскости требуется ⁄ 3 памяти, для MIP-карт требуется ⁄ 3 памяти; то есть ⁄ 3 ≈ 33% больше.Увеличение объема памяти, требуемого для всех этих MIP-карт, составляет треть исходной текстуры, потому что сумма областей 1/4 + 1/16 + 1/64 + 1/256 + ⋯ сходится к 1/3. В случае изображения RGB с тремя каналами, хранящимися в виде отдельных плоскостей, общая MIP-карта может быть визуализирована как аккуратно вписывающаяся в квадратную область, в два раза превышающую размеры исходного изображения с каждой стороны (в два раза больше с каждой стороны - четыре умножить на исходную область - одна плоскость исходного размера для каждого из красного, зеленого и синего в три раза превышает исходную площадь, а затем, поскольку меньшие текстуры занимают 1/3 оригинала, 1/3 из трех составляет единицу, поэтому они займет такое же общее пространство, что и одна из исходных красных, зеленых или синих плоскостей). Это вдохновение для тега multum в parvo.
Когда текстура просматривается под крутым углом, фильтрация не должна быть равномерной в каждом направлении (она должна быть анизотропной, а не изотропной ), и требуется компромиссное решение. Если используется более высокое разрешение, когерентность кэша снижается, а сглаживание увеличивается в одном направлении, но изображение имеет тенденцию быть более четким. Если используется более низкое разрешение, когерентность кеша улучшается, но изображение становится слишком размытым. Это будет компромисс между уровнем детализации (LOD) MIP и сглаживанием по сравнению с размытостью. Однако анизотропная фильтрация пытается разрешить этот компромисс, выбирая неизотропную текстуру для каждого пикселя, а не просто регулируя LOD MIP. Эта неизотропная выборка текстуры требует либо более сложной схемы хранения, либо суммирования большего количества выборок текстур на более высоких частотах.
Таблицы суммированных областей могут экономить память и обеспечивать большее разрешение. Однако они снова ухудшают согласованность кеша и требуют более широких типов для хранения частичных сумм, которые больше, чем размер слова базовой текстуры. Таким образом, современное графическое оборудование их не поддерживает.