уменьшить mip текстурирование до 0 майнкрафт
Как повысить ФПС в Майнкрафт и убрать лаги, оптимизировать игру
В этом гайде я подробно расскажу как повысить ФПС в Майнкрафте, оптимизировать игру, убрать или уменьшить количество лагов, сделать игру более быстрой и комфортной, хотите увеличить FPS в майнкрафт 1.16, 1.15.2, 1.14.4, 1.12.2, 1.7.10 и прочих версиях?
Все советы были проверены человеком, который разбирается в компьютерах, поэтому, если у вас прямые руки, то всё получится!
Ваша игра без модов и текстурпаков:
Если у вас низкий ФПС в обычной игре, без модов, шейдеров, датапаков и текстурпаков, то советую выполнить следующие советы:
Увеличение производительности ПК:
Настройте параметры электропитания, в основном для ноутбука:
Обновите Java и драйвера:
Закройте все лишнее:
Используйте другой лаунчер:
Настройки графики игры:
Установка и настройка Optifine:
Вы можете установить оптифайн, он оптимизирует игру и добавит намного больше графических настроек.
Ваша игра с модами:
Для начала проверьте все параметры описанные в «игра без модов».
На ФПС с модами влияет очень много факторов, количество и КАЧЕСТВО модов.
Скачайте и установите Optifine:
Увеличьте количество выделяемой оперативной памяти:
Чем больше модов, тем больше оперативной памяти необходимо игре, если стандартная игра без проблем работает на 512 Mb, то сборки могут потреблять от 2 Gb до 6 и даже 8 Gb.
Установите моды для оптимизации:
В больших сборках очень важна оптимизация, и существует несколько модов:
Вы можете перейти в категорию: Моды для повышения ФПС, возможно уже появились новые моды:
Удаляйте лишние моды:
Убавляйте количество модов, возможно ваш ПК не способен на такое количество, либо определенные моды конфликтуют и вызывают повышенную нагрузку.
Ищите проблемный мод:
Если вы уверены, что низкий фпс вызван проблемным модом, а не слабым компьютером, то ищите проблемный мод.
Зачастую моды могут вызывать лаги потому что конфликтуют друг с другом либо «криво написаны».
Вариантов тут не так много, я советую поступить так:
1) Отделить все моды от ядер и библиотек.
2) Из модов убрать половину файлов и запустить игру, если лагов нет, то вернуть обратно и убрать вторую половину, если лаги есть, значит моды в второй половине файлов, далее работаем с половиной модов в которых есть лаги.
3) Снова убираем половину и проверяем, и так далее пока не останется 2-3 мода, это уже легко.
Если вы нашли проблемный мод, вы можете удалить его, либо попробовать обновить до более новой версии, либо наоборот зайти в архив или к автору мода и поискать более старую версию мода, возможно это поможет и автор уже исправил проблемы.
Попробуйте запустить мод отдельно от других, может быть он конфликтует с другим и без него все хорошо, тогда по знакомой методике ищем второй мод, само собой первый проблемный всегда оставляем в папке с модами.
Ваша игра с текстурпаками или датапаками:
Если лаги появились после установки текстурпака или датапака, то всего скорее дело в них.
Датапак лучше удалить, они глючные и не стабильные.
Ваша игра с шейдерами:
Если ты установил шейдеры и игра стала лагать, то это предсказуемо и вариантов у тебя не очень много.
Что такое уровень mip текстурирования в minecraft
Трилинейная фильтрация — Трилинейная фильтрация усовершенствованный вариант билинейной фильтрации. MIP текстурирование, повышая чёткость изображения и процент попаданий в кэш на дальних расстояниях, имеет серьёзный недостаток: ясно видны границы раздела между MIP… … Википедия
RenderWare — Игровой движок (Список) Логотип игрового движка … Википедия
Glacier engine — Игровой движок (Список) Разработчик IO Interactive Аппаратная платформа ПК Xbox Xbox 360 PlayStation 2 PlayStation 3 GameCube Wii Поддержи … Википедия
Тексел (графика) — У этого термина существуют и другие значения, см. Тексел. Тексел (сокращение от англ. Texture element) минимальная единица текстуры трёхмерного объекта. Пиксел текстуры. Обычно создание объекта в 3D графике оканчивается облечением его в… … Википедия
Мегатекстура — (англ. MegaTexture) это графическая технология, разработанная Джоном Кармаком, техническим директором >Википедия
Портал:Игры — Начинающим · Сообщество · Порталы · Награды · Проекты · Запросы · Оценивание География · История · Общество · Персоналии · Религия · Спорт · Техника · Наука · Искусство · Философия … Википедия
Mip текстурирование
В разделе Прочие на вопрос Для чего нужна анизотропная фильтрация и уровень MIP-текстурирование в майнкрафт? заданный автором Андрей осташко лучший ответ это Анизотропная фильтрация — этот параметр позволяет драйверам OpenGL использовать анизотропную фильтрацию для повышения качества изображения.
Отключена
Включена — позволяет приложениям OpenGL использовать анизотропную фильтрацию для повышения качества изображения. Включение этой функции приведет к повышению качества за счет потери производительности.
Новые темы на Minecraft Форуме | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что делать, если майнкрафт лагает? ((( | степан | Вопросы от новичков о Minecraft | 6 | 2019-06-23 13:24 |
чит для майнкрафта (1.8.x 1.12.2 1.13) | veter111 | Читы и баги в Minecraft | 0 | 2019-06-18 01:08 |
Дюп приватный. Лично мной придуман. | OskarLaiF | Рынок Minecraft | 1 | 2019-06-12 20:07 |
Чёрный экран в лаунчере майнкрафта (при входе, лиц. | dranik | Вопросы от новичков о Minecraft | 6 | 2019-06-18 18:32 |
язык программирования Minecraft | Yura | Вопросы от новичков о Minecraft | 6 | 2019-06-18 18:36 |
Minecraft или fortnite? Что лучше | МаксимСпасск | Вопросы от новичков о Minecraft | 4 | 2019-06-18 18:38 |
Эту статью нужно срочно переписать! |
В главном окне настроек можно нажать кнопку Настройки графики для открытия одноимённого меню. Жирным обозначено значение по умолчанию.
Опция | Описание | Возможные варианты |
---|---|---|
Графика | Детальная включает дополнительные графические эффекты: прозрачность листвы и частицы дождя. Быстрая отключает данные эффекты для увеличения производительности. |
Детальная/Быстрая |
Дальность прорисовки | Дальность, на которой Minecraft загружает чанки. | 2 (16) — 32 чанков |
Мягкое освещение | Сглаживает освещение. Уровень света на блоках уменьшается плавно. Эта настройка не влияет на окружающий мир. | Выкл/Мин/Макс |
Ограничение частоты кадров | Лимит FPS (кадров в секунду). | 10 (120) — 250 и бесконечно |
3D анаглиф | Позволяет игроку использовать 3D-очки. | Вкл/Выкл |
Покачивание камеры | Включает покачивание камеры, когда игрок идёт или бежит. | Вкл/Выкл |
Интерфейс | Контролирует размер интерфейса и иконок здоровья, голода и т.д. Авто — устанавливается подходящий к данному размеру окна размер. Большой — устанавливается большой размер при игре в большом разрешении. Маленький — интерфейс всегда маленький. |
Авто/Маленький/Среднее/Большой |
Яркость | Контролирует яркость. Не влияет на игровой мир. | +0�% — +100�% |
Облака | Включает или отключает облака. Быстрые — облака плоские, как это было раньше в настройках Быстрая. Детальные — облака полные, раньше на Детальная. |
Выкл/Быстрые/Детальные |
Частицы | Частицы, которые происходят в игре. | Все/Все/Выкл |
Полный экран | Отвечает за полноэкранный режим. | Вкл/Выкл |
Вертикальная синхронизация | Ограничивает количество кадров в секунду до максимально поддерживаемого монитором. | Вкл/Выкл |
Mip-текстурирование | Сглаживание текстур в далеке. Данная настройка только для мощных компьютеров. | Выкл/1/2/3/4 |
Alternate Blocks | Текстуры некоторых блоков случайно переворачиваются, если это возможно. | Вкл/Выкл |
Использование VBO | Включает или выключает механизм выбраковки скрытых объектов (требуется видеокарта, поддерживающая OpenGL 2.0 или выше). Включение этой опции увеличивает производительность на компьютерах с мощной видеокартой, потому что игра не рендерит объекты, скрытые от глаз игрока другими непрозрачными объектами. Тем не менее, объекты за границами области зрения в любом случае не будут отрисованы. | Вкл/Выкл |
Тени от сущностей | Настройка включает тени от игроков, мобов и лежащих на земле предметов. | Вкл/Выкл |
Опция | Описание |
---|---|
Сенсорный режим | Использовать для сенсорных устройств, поддерживающих ПК. |
Инверсия мыши | Инвертировать вертикальные движения мыши (движение вперёд будет поворачивать камеру вниз). |
Чувствительность | Контролирует чувствительность игры к движениям мыши. От 0% (нет реакции на мышь) до 200% (очень сильная реакция на движения мыши). |
Вкладка | Опция | Значение по умолчанию |
---|---|---|
Движение | Бег | LCtrl |
Вперёд | W | |
Назад | S | |
Влево | A | |
Вправо | D | |
Приседание | ⇧ Shift | |
Прыжок | Space | |
Игровой процесс | Атаковать/Разрушить | ЛКМ |
Использовать/Поставить блок | ПКМ | |
Выбор блока | СКМ | |
Выбросить предмет/блок | Q | |
GUI | Инвентарь | E |
Игровое меню (Нельзя изменить значение) | ESC | |
Разное | Выделение игроков (в режиме Наблюдение) | — |
Гладкая камера | — | |
Переключить перспективу | F5 | |
Снимок экрана | F2 | |
Сетевая игра | Ввести команду | / |
Чат | T | |
Список игроков | Tab ⇆ | |
Трансляция | Вкл./откл. микрофон | — |
Запуск/откл. трасляции | F6 | |
Пауза/возобновить трансляцию | F7 | |
Показывать рекламу в трансляции | — |
Громкость звуковых эффектов в игре (звуки мобов, дождя и т. д.).
MIP-MAP Filtering в процессе выполнения приложения
При разработке игр, программисты отвечающие за графику, всегда пытаются достичь наибольшей реалистичности создаваемых ими объектов. Самый простой способ — применить технологию наложения текстуры на объект (texture mapping). Значительно усиливая реалистичность восприятия создаваемой сцены, этот способ, в то же время, вызывает целый ряд новых проблем. Наиболее заметной проблемой при наложении текстур, является проблема визуальных искажений изображения возникающая из-за цифровой дискретизации всех используемых в компьютере изображений (aliasing artifacts). Эти искажения становятся особенно заметными тогда, когда наблюдаемый полигон с наложенной текстурой находится на некотором расстоянии от точки наблюдения. Если вы начнете быстро передвигаться внутри своего виртуального мира, то данные искажения будут проявляться в виде мерцания и появления паразитных бликов на поверхности текстуры. Или, в случае если вы находитесь в неподвижном состоянии, вы заметите искажения в виде паразитных муаров и узоров на поверхности полигона, который вы только что «обтянули» текстурой. Это хорошо заметно на Рисунке 1, когда по мере увеличения дистанции от точки наблюдения, мы замечаем значительные искажения строгих геометрических фигур на текстуре.
Технология MIP-mapping (MIP текстурирование) сглаживает отрицательные визуальные проявления данной проблемы и делает искажения менее заметными. Акроним MIP происходит от латинского «multum in parvo«, означающего «множество в малом» или «много вещей на одном пятачке». Для общего образования отметим, что по информации из OpenGL RedBook термин «mipmap» был предложен для использования Ланцем Вильямсом (Lance Williams) в 1983 году, когда на SIGGRAPH’83 он рассказал идею этой новой техники в своем докладе «Pyramidal Parametrics». Правда, Lance Williams использовал несколько инуюрасшифровку термина, а именно: «multim im parvo«, так что не удивляйтесь, если встретите и такую транскрипцию. По другой версии исследователи из Нью-йоркского технологического института впервые применили данный термин в 1979 году, для того, что бы описать технологию преобразования и сжатия множества пикселей в одну малую, специальным образом сформированную текстуру или карту, известную как MIP-map.
Для того, что бы увидеть насколько улучшается визуальная чистота изображения, достаточно поглядеть на Рисунок 2, который показывает эффект от применения MIP-mapping c билинейной фильтрацией (bilinear filtering).
Для того, что бы понять, что же вызвало проблемы, показанные на
Рис.1, вы должны заглянуть внутрь процесса наложения текстуры на объекты и понять каким образом процесс дискретизации текстур влияет на конечное изображение, выводимое на экран монитора. Посмотрите на Рисунок 3а, на котором синусоида дискретизируется внешним сигналом со значительно большей частотой. Видно, что мы можем получить достаточно точную копию исходной синусоиды, если восстановить значения амплитуды каждого из сэмплов при частоте внешнего сигнала. Однако, если частота внешнего сигнала (частота дискретизации) будет равна удвоенной частоте синусоиды (Рис. 3b), то возможны моменты (при равенстве фаз, например), когда моменты дискретизации будут совпадать с моментами прохождения исходной синусоиды через нуль, в результате чего данный сэмпл будет неинформативен. Применение частоты дискретизации меньше удвоенной частоты исходного сигнала (Рис. 3с) приведет к тому, что сигнал, восстановленный из значений полученных сэмплов, будет синусоидой с частотой меньшей, чем у исходного сигнала. Исходя из изложенного, мы можем предположить, что частота дискретизации должна быть, по крайней мере, в два раза больше частоты дискретизируемого сигнала. Данное соотношение известно под названием предел Найквиста (В России, данное соотношение носит название теоремы Котельникова. Прим. переводчика).
И все же, откуда происходит это, кажущееся магическим число, равное значению удвоенной частоты сигнала необходимого для дискретизации? Для того, что бы получить ответ, мы должны заглянуть чуть глубже и рассмотреть ряд Фурье.
Знакомство с рядом Фурье
Полное изложение вопросов теории Фурье, может запросто занять несколько отдельных книг, поэтому для тех из вас, читатели, кто не особо утруждался на лекциях по ТЭРЦ (теории электро-радио цепей) в институте, я могу предложить почитать книгу Брейсуэлла, ссылка на которую дана в конце статьи. Что же касается самой статьи, то в ней будет изложено очень сжатое введение в теорию преобразований Фурье, но этого должно быть достаточно для того, что бы понять из чего вытекает значение предела Найквиста (Котельникова).
Рисунок 4а показывает вид функции h(t)=sinc 2 x и ее представление рядом Фурье H(f). Для удобства будем считать, что H(f) это ряд Фурье (или частотный ряд), а h(t) временной ряд. (Если вас интересует, почему я выбрал в качестве функции именно sinc 2 x, просто потому, что она имеет наиболее простое графическое представление в частотном ряду). Для того, что бы перейти от временного ряда к частотному в теории Фурье применяется следующее преобразование:
Результат преобразования h(t) последовательности импульсов представленных функцией s(t) показан на Рисунке 4с. Во временном ряду преобразования напоминают перемножение h(t) и s(t), тогда как в частотном ряду (ряду Фурье) результатом является конволюция H(f) и S(f).
Конволюция двух любых функций f(x) и g(x) представляется формулой:
Если попытки подстановки в формулу 4 результатов функций h(t) и s(t) преобразованных по Фурье вызывают у вас головную боль и желание пропустить эту «мыльную» статью (стр.72 Ноябрьского выпуска Game Developer), то все же задержитесь на секунду — все не так сложно, как кажется. Конволюция единичного импульса в момент времени t=t0 измененного по h(t) это ничто иное, как значение h(t) смещенное на позицию времени t=t0.
Применим Формулу 5 для нахождения конволюции H(f) и S(f).
Как видим, эта формула показывает нам, что результат конволюции это функция H(f) с образами разнесенными на величину интервала 1/Ts, как раз то, что мы видим на Рис. 4с. Спектр функции sinc 2 x не является бесконечным, т. е. имеет вполне определенные ограничения частоте до fmax. Мы так же знаем, что частота это величина обратная периоду. Отсюда, единственное требование, которое мы должны удовлетворить, что бы избежать искажений, это не допустить перекрывающихся областей в частотном ряду, т. е. обеспечить соотношение fs>2fmax, где fs=1/Ts. Это то, откуда и взялся предел Найквиста (Котельникова). Как можно заметить из Рис. 4d, если частота дискретизации будет ниже 2fmax, то рядом лежащие спектральные области перехлестнутся, и частотные составляющие данных областей будут безвозвратно утеряны в результирующем сигнале. Однако, вместо того, что бы исчезнуть полностью, эти высокочастотные гармоники, появляются на низких частотах в виде паразитных гармоник, отзвуков на исходные гармоники (aliases). Вот, откуда появился термин — aliasing. Для того, что бы избежать этих отзвуков, необходимо либо сузить полосу, занимаемую сигналом, подлежащим дискретизации до величины меньшей 2fs, либо установить частоту дискретизации в два раза выше максимально возможной частоты дискретизируемого сигнала 2fmax.
Основы MIP-mapping (MIP текстурирования)
Давайте посмотрим, как MIP-mapping позволяет уменьшить искажения вызываемые дискретизацией изображения (aliasing artifacts) на примере изображения. Помните, наложение текстур на объекты в сцене применяется исключительно для придания большей реалистичности создаваемым объектам. Однако, все мелкие детали изображения в текстуре это всегда наиболее высокочастотные компоненты, и они же и являются источником aliasing problems. Так, как реально мы не можем изменить частоту дискретизации (1/DU и 1/DV в визуализирующей части нашего игрового движка), то мы вынуждены будем отфильтровать (filtering) наши текстуры таким образом, чтобы убрать высокочастотные составляющие нашего изображения.
* Примечание переводчика: при использовании двумерных текстур в трехмерном пространстве, возникает необходимость использования двумерной координатной системы текстуры внутри существующей трехмерной координатной системы X, Y, Z. Для того, что бы разделить между собой эти координаты, разработчики ввели дополнительные обозначения двумерных координат U и V для текстур. Также был введен параметр W для того, чтобы расширить пространство Евклида (X, Y, Z) до неевклидова гомогенного (X, Y, Z, W). При эжтом, если W>0, то (X, Y, Z, W) совпадает с (X/W, Y/W, Z/W). Так что, если вам необходимо произвести манипуляции над текстурой уже размещенной в вашей 3D сцене, то вы должны будете использовать каординаты U, V.
Величины DU и DV, упоминаемые выше по тексту, это минимальные единичные приращения текстуры, которые мы можем использовать для вычислений. Обычно эти величины определяются размерностью пикселя, именно он является минимальной дискретизирующей величиной. Отсюда 1/DU и 1/DV будут величинами, определяющими частоту дискретизации изображения текстуры.
Хотя и считается возможным отфильтровать каждый индивидуальный тексель непосредственно в процессе исполнения программы, но этот способ не применяется ввиду сложности его реализации. Более оптимальным считается вариант использования MIP текстур (MIP-map), которые состоят из серии заранее отфильтрованных и отмасштабированных текстур. Фильтрация текстур может быть произведена непосредственно в период начального запуска программы или произведена самим программистом еще в период разработки программы. Другой способ реализации MIP-mapping, это применение графических акселераторов, например, NVIDIA RIVA 128, которые произведут генерацию необходимых MIP-текстур для вашей сцены в момент, когда исходные текстуры загружаются в видео память. Рис. 5 иллюстрирует пирамидальную структуру MIP карты (текстуры), сформированную в результате MIP-mapping для исходной текстуры размерностью в 64х64 пикселя. Как можно видеть, уровень детализации (LOD) уменьшается по мере увеличения MIP уровня (MIP level). Как только текстура была преобразована в
MIP-map, все, что вам необходимо сделать в период выполнения программы для достижения базового per-polygon MIP-mapping — это выбрать корректный MIP уровень для конкретной текстуры и передать его для визуализации в акселератор или модуль программы отвечающей за визуализацию в случае software rendering.
Генерация MIP текстур
Существует несколько способов генерации MIP текстур. Один из них — просто подготовить их заранее, используя графические пакеты типа Adobe PhotoShop. Другой способ — генерация MIP текстур на «лету», т.е. в процессе выполнения программы. Заранее подготовленные MIP текстуры означают дополнительные 30% дискового пространства для текстур в базовой поставке инсталляции игры, но позволяют применять более гибкие методы управления их созданием и позволяют добавлять различные эффекты и дополнительные детали различным MIP уровням. Независимо от того, какой из способов реализации MIP-mapping вы выбрали, MIP текстуры потребуют дополнительные 30% RAM для своего размещения, что значительно увеличивает минимальные требования к количеству оперативной и/или видеопамяти на компьютере.
Давайте начнем с создания MIP карты для 8-битной текстуры.
Создание MIP текстуры — в действительности достаточно простой процесс, и хотя существует множество графических фильтров, которые могут быть использованы в этом процесс, чаще всего стандартный набор фильтров к графическому пакету удовлетворить все потребности.
Рассмотрим процесс генерации MIP текстур на «лету». Первый MIP
уровень представляет собой неизмененную исходную текстуру, скопированную в структуру MIP карты. Смотри Listing 1 (С целью экономии печатного пространства все кодовые листинги доступны для загрузки в виде одного архива: nov98.zip (584 Кб).
Создание остальных MIP уровней текстуры это шаг за шагом повторяющийся процесс. Каждый последующий (более высокий) уровень создается на базе предыдущего уровня, имеющего больший масштаб. Каждый созданный уровень располагается в памяти последовательно с предыдущим. Так же в структуре MIP карты хранится стартовый указатель (pointer) на нужный MIP уровень, так что игровой движок с легкостью может извлечь для использования уровень с соответствующим LOD.
Первым шагом в определении цвета нового пикселя будет вычисление усредненой цветности прямоугольника из четырех близлещащих пикселей на предыдущем MIP уровне. См. Listing 2. Так как, в нашем случае мы работаем с текстурой содержащей палитру цветов, то после того как мы определили значение нового пикселя, нам необходимо найти наиболее соответствующий ему цвет из палитры. Этот процесс показан в Listing 3. Процесс поиска нужного цвета из палитры прост, но может потребовать значительных временных затрат, так как нам необходимо обработать таким образом все пиксели в каждом из MIP уровней. К счастью, данная процедура требуется только один раз, на этапе инициализации MIP текстуры, значит, это не будет критичным. Однако, если вы пожелаете использовать другие эффекты в процессе рендеринга (визуализации), например билинейная и трилинейная фильтрация, то процесс поиска нужного цвета может стать очень медленным.
В этом случае, нам необходимо отказаться от применения текстур содержащих палитру в заголовке, и перейти к использованию 16 или 24-битных текстур. Ввиду того, что большинство применяемых графических карт поддерживают 16 битные текстуры, то мы рассмотрим в данном разделе именно 16 битную текстуру. Технология создания MIP текстуры для 16 битного изображения, очень близка к той, которую мы применяли для 8 бит, см. Listing 4. Так как 16 битные текстуры не содержат палитру, усредненные значения цветности для нового пикселя берутся непосредственно из предыдущего MIP уровня. Одна из проблем, которая возникает в результате неоднократно усреднения цветовых величин для каждого из LOD, это то, что каждая последующая текстура будет темнее предыдущей, находящейся на один MIP уровень ниже. Можно компенсировать это некоторым увеличением значений цветовых составляющих пикселя на каждом из новых MIP уровней. Хотя это компенсация обычно не столь необходима ввиду того, что потеря в интенсивности чаще всего не столь значительна, что бы она бросалась в глаза.
Наложение MIP текстур в процессе выполнения приложения
Рисунок 6 (ниже) показывает некоторые из проблем, с которыми вы можете столкнуться, выбирая корректный LOD (уровень детализации) в процессе выполнения программы. На рисунке, прямоугольная текстура, наложенная на треугольник в плоскости самой текстуры, преобразуется в четырехсторонний многоугольник, находящийся в плоскости экрана. Перспективная проекция текстуры вызывает соответствующие преобразования прямоугольных индивидуальных текселей в многоугольники различных размеров. В нашем случае, когда полигон развернут в плоскости экрана, определение корректного LOD, который необходимо применить на полигон, является первостепенной задачей, т.к. именно от него будет зависеть хорошее конечное качество изображения. Если выбранный уровень детализации (LOD) слишком велик (размерность текстуры велика), искажения дискретизации (aliasing) будут видны в «полной своей красе». Если LOD будет недостаточным, то конечное изображение будет слишком размытым. Например, уровень детализации, выбранный для текстуры использованной на Рис. 7 (ниже) слишком мал, поэтому мы можем наблюдать большие грубые тексели в увеличенном окне вынесенном влево. Существует множество различных методов для выбора корректного LOD, каждый из которых имеет свои плюсы и минусы. Существуют два наиболее известных метода, которые мы рассмотрим ниже. Первый, основан на выборе уровня детализации в зависимости от местоположения текстуры в плоскости экрана (Area based); второй, использует для выбора LOD проекции u и v векторов.
Следует обратить внимание еще на один момент, дело в том, что вам, возможно, потребуется различное количество текселей для того, что бы прорисовать разные пиксели на экране. Как результат, вам необходимо будет просчитать LOD для каждого из пикселей. Эти вычисления могут быть очень медленными, и именно поэтому большинство программных методов визуализации (software renderers) и некоторые из устаревших видеоакселераторов, производят вычисления LOD основываясь на технологии per-polygon и/или per-triangle. Однако, несомненным плюсом per-polygon технологии в MIP-mapping, особенно при программной визуализации, является то, что для полигонов расположенных на удалении (более мелких) вы применяете более мелкие версии текстур из MIP карты, что значительно снижает требования к количеству кэш-памяти процессора в период интенсивных операций с текстурами. В то же время, по-пиксельный вариант выбора LOD позволяет вам реализовать целый ряд дополнительных преобразований в процессе MIP-mapping, включая такие как: точечная дискретизация; билинейная фильтрация на одном уровне детализации; трилинейная фильтрация между двумя ближайшими LOD.
Per-polygon MIP-mapping
Выбор корректного LOD в per-polygon MIP-mapping считается наиболее выгодным с точки зрения количества вычислений необходимых для его реализации, так как выборка производится однократно для целого полигона. Здесь, однако, есть два недостатка:
Первый — два соприкасающихся полигона могут быть отвизуализированы с применением разных уровней детализации. Визуально это проявляется в виде потери неразрывности восприятия нанесенной на объект текстуры (такие искажения носят название MIP banding). Рис.8 демонстрирует проявление незначительного MIP banding явившегося результатом per-triangle MIP-mapping.
Второй — визуальный недостаток проявляется в резких и неожиданных сменах качества прорисовки на объектах, в те моменты времени, когда происходит замена LOD на текстуре при перемещении точки наблюдения или перемещении полигона, относительно точки наблюдения.
Выбор LOD в зависимости от местоположения текстуры на экране (Area-based LOD selection)
Area based LOD selection реализует по-полигонную технику MIP-mapping. Используя этот метод, вы регулируете LOD путем изменения степени сжатия, которая будет применена к текстуре нужной текстуре. Для того, чтобы определить необходимую степень сжатия, вам нужно определить местоположение полигона в плоскости экрана, а так же определить ту часть текстуры (в проекции текстуры) которая будет покрывать выбранный полигон. Используя пример из Listing 5, вы можете определить соотношение текселей к пикселю и далее выбрать соответствующий уровень детализации для применения. (С целью экономии печатного пространства все кодовые листинги доступны для загрузки в виде одного архива: nov98.zip (584 Кб).
U и V размеры более высокого MIP уровня в MIP текстуре равны половине предыдущего MIP уровня, таким образом площадь каждого из уровней, представляющего соответствующий LOD, будет равна одной четвертой от
площади предыдущего. Соответственно, при выборе необходимого LOD мы будем перемещаться на одну ступень вверх по пирамиде MIP текстуры каждый раз, когда соотношение количества текселей на пиксель (texel-to-pixel ratio) изменится четырехкратно. Например, если texel-to-pixel ratio равно 3:1, то мы выбираем MIP уровень 0; если texel-to-pixel ratio равно 7:1, то выбираем уровень 1 и т.д. Как только произошла смена LOD мы можем передать указатель на соответствующий MIP уровень нашему модулю отвечающему за визуализацию, который в свою очередь и произведет визуализацию текстуры с указанным LOD. Здесь необходимо отметить, что каким бы способом мы не проводили MIP-mapping, одна проблема нас будет преследовать всегда. Эта проблема связана с любым преобразованием использующим проекции полигонов с наложенными текстурами и выражается в проявлении паразитного aliasing в те моменты, когда используемый полигон достаточно тонок. Корни этой проблемы прячутся в анизотопности алгоритмов компрессии текстур (анизотропность заключатся в том, что степени сжатия вдоль координатных осей U и V- всегда различна!)
Per-pixel MIP-mapping
По-пиксельное MIP текстурирование позволяет реализовать более утонченное управление уровнем применяемой детализации, чем по-полигонное, оно так же допускает применение дополнительных преобразований над текстурами, хотя все это за дополнительную «плату». Все по-пиксельные методы требуют хранения полной MIP текстуры в RAM, а дополнение внутренних циклов в процедурах программы отвечающих за наложение текстур, может привести к значительному падению производительности игрового движка. К счастью, большинство из сущестующих в настоящее время 3D акселераторов аппаратно поддерживают MIP-mapping c билинейной фильтрацией (а некоторые чипы без ущерба могут осуществлять и трилинейную), поэтому мы рассмотрим, что же собственно необходимо для того, что бы реализовать по-пиксельное MIP текстурирование. Хотя и здесь, при выборе уровня детализации, мы можем применить Area based метод, мы все же пойдем по более аккуратному и сложному пути и просчитаем LOD для каждого из пикселей, в отличие от однократного просчитывания LOD на весь полигон.
Выбор LOD на основе краевого сжатия (Edge compression-based LOD selection)
Значения ux, uy, vx,vy определяются четырьмя частными производными. См. Рис.9. Т.к. мы уже знаем, как вычислять значения u и v для любого пикселя на экране, мы можем применить наши знания для вычисления частных производных. Зная текущие градиенты u/z, v/z и 1/z в системе × и y, а так же зная начальные значения u/z, v/z, 1/z в плоскости экрана, мы можем определить значения u и v по формулам 8 и 9. Нотацию, принятую в формулах 8 — 19 вы можете определить из серии статей Криса Хекера (Chris Hecker) по проекционному текстурированию, которые могут быть найдены на его WEB сайте. (См. раздел «Особые благодарности» в конце статьи).
Используя полученные выше результаты, мы можем определить частные производные в соответствии с формулами 10 — 13.