MIP-карта
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2009 г. ) |
В компьютерной графике — мип-карты (также MIP-карты ) или пирамиды. [1] [2] [3] представляют собой заранее рассчитанные оптимизированные последовательности изображений , каждое из которых представляет собой прогрессивно более низким разрешением представление предыдущего с . Высота и ширина каждого изображения или уровня в MIP-карте в два раза меньше, чем у предыдущего уровня. Мип-карты не обязательно должны быть квадратными. Они предназначены для увеличения скорости рендеринга и уменьшения артефактов алиасинга . Mip-изображение высокого разрешения используется для образцов с высокой плотностью, например, для объектов, близких к камере; используются изображения с более низким разрешением, поскольку объект кажется дальше. Это более эффективный способ уменьшения масштаба текстуры , чем выборка всех текселей исходной текстуры, которые могут вносить вклад в пиксель экрана ; быстрее взять постоянное количество выборок из текстур, подвергнутых соответствующей понижающей фильтрации. Mip-карты широко используются в компьютерных 3D-играх , авиасимуляторах , других системах 3D-изображения для фильтрации текстур , а также в программном обеспечении 2D и 3D ГИС . Их использование известно как мипмаппинг . Буквы МИП в названии являются аббревиатурой латинского Фраза multum in parvo означает «много в малом». [4]
Поскольку MIP-карты по определению выделяются заранее дополнительное пространство для хранения , для их использования требуется . Они также связаны с вейвлет-сжатием . Mipmap-текстуры используются в 3D-сценах для уменьшения времени, необходимого для рендеринга сцены. Они также улучшают качество изображения за счет уменьшения искажений и муара , возникающих на больших расстояниях просмотра. [5] ценой увеличения памяти на 33% на текстуру.
Обзор
[ редактировать ]Мип-карты используются для:
- Уровень детализации (LOD) [6] [7]
- Улучшение качества изображения. Рендеринг больших текстур, в котором только небольшие несмежные подмножества текселей используются , может легко создавать муаровые узоры ;
- Ускорение времени рендеринга либо за счет уменьшения количества текселей, отбираемых для рендеринга каждого пикселя, либо за счет увеличения локальности взятых сэмплов в памяти;
- Снижение нагрузки на графический процессор или процессор .
- Отражения на поверхности воды [8]
Источник
[ редактировать ]Мипмаппинг был изобретен Лэнсом Уильямсом в 1983 году и описан в его статье «Пирамидальная параметрика» . [4] Из аннотации: «В этой статье предлагается «пирамидальная параметрическая» геометрия предварительной фильтрации и выборки, которая сводит к минимуму эффекты наложения спектров и обеспечивает непрерывность внутри и между целевыми изображениями». Упомянутую пирамиду можно представить как набор MIP-карт, расположенных друг напротив друга.
Первый патент на Mipmap и генерацию текстур был выдан в 1983 году Джонсоном Яном, Николасом Сабо и Лиш-Янном Ченом из Link Flight Simulation (Singer). Используя их подход, текстуру можно генерировать и накладывать на поверхности (криволинейные и плоские) любой ориентации и делать это в режиме реального времени. Текстурные узоры могут быть смоделированы так, чтобы напоминать реальный материал, который они должны были представлять, непрерывным образом и без псевдонимов, в конечном итоге обеспечивая уровень детализации и постепенные (незаметные) переходы между уровнями детализации. Генерация текстур стала повторяемой и последовательной от кадра к кадру, сохраняя правильную перспективу и соответствующее затемнение. Поскольку применение текстурирования в реальном времени применялось к ранним CGI-системам трехмерных авиасимуляторов, а текстура была предпосылкой для реалистичной графики, этот патент стал широко цитироваться, и многие из этих методов позже были применены в графических вычислениях и играх по мере расширения приложений по всему миру. годы. [9]
Происхождение термина «мипмап» является инициализмом латинской фразы multum in parvo («много в небольшом пространстве») и карты, смоделированной на растровом изображении. [4] Термин «пирамиды» до сих пор широко используется в контексте ГИС . В программном обеспечении ГИС пирамиды в основном используются для ускорения времени рендеринга.
Механизм
[ редактировать ]Каждое растровое изображение набора 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-карты (с трилинейной интерполяцией). Самый простой способ создания таких текстур — последовательное усреднение; однако более сложные алгоритмы (возможно, основанные на обработке сигналов и преобразованиях Фурье можно использовать и ).
Увеличение объема памяти, необходимого для всех этих 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]
Таблицы суммируемых площадей
[ редактировать ]Таблицы суммированных площадей позволяют экономить память и обеспечивать большее разрешение. Однако они снова нарушают согласованность кэша и требуют более широких типов для хранения частичных сумм, которые превышают размер слова базовой текстуры. Таким образом, современное графическое оборудование их не поддерживает.
См. также
[ редактировать ]- Анизотропная фильтрация
- Иерархическая модуляция - аналогичный метод в радиовещании.
- Пирамида (обработка изображений)
- Масштабировать пространство
- Пространственное сглаживание
Ссылки
[ редактировать ]- ^ «Фильтрация текстур с помощью MIP-карт (Direct3D 9)» . microsoft.com . Майкрософт.
- ^ «Фильтрация текстур с помощью MIP-карт» . microsoft.com . Майкрософт . 8 апреля 2010 г.
- ^ «Текстурирование Mip-карт» (PDF) . Проверено 10 декабря 2019 г.
- ^ Jump up to: а б с Уильямс, Лэнс. «Пирамидная параметрика» (PDF) . Архивировано из оригинала (PDF) 14 апреля 2014 г. Проверено 25 сентября 2012 г.
- ^ «Проблема сглаживания и MIP-маппинг» . текстура в графике . 13 декабря 2011 г. Проверено 21 февраля 2019 г.
- ^ «Несколько уровней детализации» ( PDF ) .
- ^ «Структура D3D11_SAMPLER_DESC» . microsoft.com . Майкрософт.
- ^ «Деконструкция эффекта воды в Super Mario Sunshine» . Проверено 25 февраля 2023 г.
- ^ Джонсон К. Ян, Николас С. Сабо, Лиш-Янн Чен. «Генерация текстур» (PDF) .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Олано, Марк; Мукерджи, Шриджит]]; Дорби, Ангус. «Анизотропное текстурирование на основе вершин» (PDF) .