Blog · blog

Как запускать шейдеры, не теряя FPS

Шейдеры всегда обходятся в потери кадров, но Iris plus Sodium и несколько настроек возвращают большую их часть. Вот что стоит урезать в первую очередь, когда шейдеры уже установлены.

TRtrolPublished 5 min read

Почему шейдеры так сильно влияют на FPS

Пак шейдеров заменяет модель освещения Minecraft на ту, которая рассчитывает тени, отражения и лучи света для каждого пикселя, каждый кадр. Стандартное освещение по сравнению с этим практически бесплатное. Эта стоимость — не ошибка. Это реальная работа, которая создает визуальный эффект, поэтому исправление никогда не будет заключаться в том, чтобы «сделать шейдеры бесплатными», а скорее в том, чтобы «расходовать бюджет кадра на те части визуального эффекта, которые стоят того, и отсекать те, которые не стоят».

Это предполагает, что у вас уже работают шейдеры через Iris поверх Sodium, стандартной конфигурации Fabric. Если вы еще не установили эту пару, полное руководство по установке шейдеров в Minecraft описывает процесс шаг за шагом. Все, что указано ниже, относится к действиям, которые следует предпринять, когда шейдеры уже включены, а частота кадров ниже желаемой.

Настройки, которые действительно влияют на результат

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

Расстояние прорисовки теней и разрешение

Самая значительная статья расходов практически в каждом наборе. Тени масштабируются в зависимости от дальности их отрисовки и чёткости расчётов. Устраните их в первую очередь.

Объемное освещение и туман

Лучшие кадры получаются с лучами света и объёмным туманом, но это дорого в расчёте на кадр. Уменьшение или отключение этих эффектов часто незаметно в обычном игровом процессе.

Отражения

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

Дальность прорисовки

Каждый дополнительный фрагмент — это больше геометрии, которую шейдер должен осветить. Шейдеры увеличивают стоимость отрисовки дальности видимости, поэтому уменьшение этого параметра здесь помогает больше, чем где-либо ещё в игре.

Подберите уровень набора шейдеров к вашей видеокарте, прежде чем настраивать

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

Если у вас видеокарта...Начните сЗатем оптимизируйте
Интегрированная или устаревшаяЛёгкий набор шейдеров в минимальном профилеСначала тени и объёмные эффекты
Среднего уровняЛёгкий-средний набор шейдеровДальность прорисовки теней, отражения
Мощная дискретная картаСредний-тяжёлыйДальность прорисовки, если хотите добиться большего
  1. Подтвердите, что Iris и Sodium оба активны

    Откройте настройки видео и убедитесь, что выбран шейдер-пак и работает рендерер Sodium. Именно эта комбинация является основой, от которой зависит всё остальное.

  2. Следите за графиком времени кадра F3, а не за числом FPS

    Цифра в углу скрывает пики. График времени кадра внизу экрана F3 точно показывает, где происходит затрата ресурсов, что позволяет определить, проблема в тенях, дальности прорисовки или в чём-то ещё.

  3. Сначала обработайте тени

    Постепенно уменьшайте дальность прорисовки теней и их разрешение. Это единственное изменение, которое в большинстве случаев даёт больше FPS, чем любая другая настройка.

  4. Сократить объёмность и отражения

    Уменьшите или отключите объемное освещение, объемный туман и отражения. Это следующие по величине затраты и те, которые в обычном игровом процессе вряд ли будут замечены.

  5. Отодвиньте дальность прорисовки на пару чанков

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

Запас по высоте, чтобы меньше обрезать

Настройки выше восстанавливают кадры непосредственно из шейдера, но более эффективное решение — иметь больший бюджет кадров, прежде чем шейдеры вообще вступают в игру. Sodium уже выполняет эту задачу для рендеринга. Совмещение его с Lithium для игровой логики даёт более высокий общий порог, так что шейдер затрагивает больший бюджет, а не ограниченный. Лучшие моды для повышения производительности Minecraft полностью охватывают этот базовый набор.

Если вы используете поддерживаемый клиент, такой как Terminus, Iris и Sodium, шейдерпак просто упадет в существующую папку shaderpacks с уже настроенной производительностью.

Когда настройка параметров недостаточно

Если вы уменьшили тени, объёмное освещение, отражения и дальность прорисовки, а частота кадров всё равно остаётся низкой, то, скорее всего, сама текстурпак слишком тяжёлая для вашей видеокарты при любых настройках. Это не проблема конфигурации, за которой стоит продолжать гоняться. Переход на более низкий уровень, описанный в списке уровней шейдеров для Minecraft, даст вам лучший результат быстрее, чем ещё один час в меню настроек.

Часто задаваемые вопросы

Получить Terminus

Iris and Sodium baked into the profile, headroom included.