ImmediatelyFast
ImmediatelyFast — это модификация Minecraft с открытым исходным кодом, которая повышает производительность рендеринга в немедленном режиме на стороне клиента.
Она разработана как легковесная и совместимая с другими модификациями.
Оптимизации
ImmediatelyFast в целом оптимизирует весь рендеринг в немедленном режиме, используя собственную реализацию буфера, которая группирует вызовы отрисовки и более эффективно передает данные на GPU.
Оптимизированы следующие части кода рендеринга в немедленном режиме:
- Сущности
- Блочные сущности
- Частицы
- Отрисовка текста
- GUI/HUD
- Рендеринг в немедленном режиме других модификаций
Также реализованы целевые оптимизации, при которых изменяется код рендеринга vanilla для ускорения работы.
Следующие части кода рендеринга оптимизированы более эффективной реализацией:
- Отрисовка карт
- Отрисовка HUD
- Отрисовка текста
Производительность
Сравнение производительности в областях, которые модификация оптимизирует особенно эффективно:
Если в таблице указаны другие модификации, это означает, что данная модификация также оптимизирует соответствующую часть игры.
Тестовое оборудование: Ryzen 5 1600, 32 ГБ DDR4, GTX 1060
Показатели FPS получены с помощью внешних инструментов (в данном случае MSI Afterburner) и усреднены за несколько секунд.
Помните, что ImmediatelyFast может повысить FPS только в сценариях, где узким местом является процессор (наиболее вероятно, если у вас не устаревший GPU или вы не используете очень тяжелые шейдеры). Медленные процессоры получат больше преимущества от этой модификации, чем очень быстрые.
Рендеринг сущностей
В целом FPS должен быть примерно в 2 раза выше на загруженных серверах. [Протестировано с использованием IF 1.1.7 на версии 1.19.3]
Тестирование проводилось на сервере Spigot с 1000 коровами в коробке 3x3 в поле зрения.
Отрисовка карт
В целом FPS должен быть примерно в 5 раз выше при наличии множества карт в поле зрения. [Протестировано с использованием IF 1.1.1 на версии 1.19.3]
Тестирование проводилось на сервере Fabric с модификацией Image2Map и примерно 930 картами в поле зрения.
Отрисовка HUD
В целом FPS должен быть примерно на 40% выше почти во всех сценариях. [Протестировано с использованием IF 1.1.7 на версии 1.19.3]
Тестирование проводилось на сервере Spigot с различными элементами HUD в поле зрения (Таблица очков, Оверлей эффектов зелий, Полосы здоровья боссов, Заполненный чат, Дополнительные сердца, Полная панель быстрого доступа).
Отрисовка текста
В целом FPS должен быть примерно в 2 раза выше при наличии множества табличек или голограмм вокруг. [Протестировано с использованием IF 1.1.7 на версии 1.19.3]
Тестирование проводилось на сервере Spigot с 200 табличками (заполненными текстом) в поле зрения.
Рендеринг блочных сущностей
В целом FPS должен быть примерно на 20% выше при наличии множества блочных сущностей вокруг. [Протестировано с использованием IF 1.1.7 на версии 1.19.3]
Тестирование проводилось на сервере Spigot с 400 сундуками в поле зрения.
Совместимость
ImmediatelyFast структурирована так, чтобы минимально влиять на другие модификации. Она должна корректно работать с большинством, если не со всеми, модификациями и сборками модификаций.
Известные несовместимости:
- OptiFabric / OptiFine
- VulkanMod
- Большинство закрытых "клиентов", таких как LunarClient и LabyMod
При возникновении проблем, пожалуйста, сообщайте о них в трекере проблем.
Конфигурация
ImmediatelyFast имеет файл конфигурации, который находится в папке config
вашего экземпляра Minecraft. Большинство параметров следует оставить со значениями по умолчанию, но некоторые можно изменить для повышения производительности или совместимости.
font_atlas_resizing
: Увеличивает размеры текстурного атласа шрифтов. Улучшает производительность при использовании шрифтов высокого разрешения или пользовательских серверных шрифтов.map_atlas_generation
: Помещает текстуры карт в единую текстуру вместо нескольких. Улучшает производительность при наличии множества карт в поле зрения.hud_batching
: Улучшает производительность отрисовки HUD за счет уменьшения количества вызовов отрисовки. При возникновении проблем с элементами HUD попробуйте отключить эту оптимизацию.fast_text_lookup
: Кэширует некоторые данные между отрисовкой символов текста. Незначительно улучшает производительность при отрисовке большого объема текста.avoid_redundant_framebuffer_switching
: Уменьшает количество переключений буферов кадров при рендеринге множества различных объектов в мире (сущностей, частиц, блочных сущностей, …) или HUD для повышения FPS.experimental_disable_error_checking
: Отключает проверку ошибок OpenGL. Может повысить производительность на определенных системах, но при включении может вызвать сложные в отладке проблемы.experimental_disable_resource_pack_conflict_handling
: Управляет тем, должна ли ImmediatelyFast сканировать ресурс-паки на наличие несовместимых модификаций основных шейдеров, чтобы отключить некоторые конфликтующие оптимизации. Можно отключить для принудительного применения оптимизаций, даже если они могут вызвать графические проблемы с определенными ресурс-паками.experimental_sign_text_buffering
: Буферизует текст на табличках вместо его перерисовки каждый кадр. Может вызвать проблемы со шрифтами высокого разрешения или пользовательскими шрифтами.experimental_screen_batching
: Улучшает производительность отрисовки некоторых внутриигровых экранов за счет уменьшения количества вызовов отрисовки.
API для разработчиков
Последнюю версию документации по API можно прочитать здесь.