LCull
Проклятая, но производительная логика Frustum для сцен с интенсивным отсечением
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 1,6 тыс.
- Подписчиков на Modrinth
- 4
- версий
- 36
- Обновлён
- 29 сентября 202629 сент.
- Опубликован
- в 2026
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
Открытый мод с проклятой, но производительной логикой Frustum для тяжёлых сцен с отсечением. Больше FPS, но есть побочные эффекты.
Преимущества
Отсечение сущностей за пределами экрана:
- Помогает в разных тяжёлых сценах, что повышает FPS. (например, в CounterMine 2)
- Ускоряет работу в 2 раза с модами Entity Culling, Sodium/Embeddium, потому что они тут профи, ага.
Недостатки
Бесполезен для других сцен:
- Мало сущностей
- Сущности за стенами.
- Модовые мобы (вероятно)
- Повышает нагрузку на CPU.
Бенчмарки
Стандартная версия 1.21.11 Fabric
До: Без модов
После: С LCull

1.21.11 Fabric с модами: Sodium, Entity Culling, Fabric API
До: Без LCull
После: С LCull

Зачем я сделал этот мод?
Minecraft держит каждую загруженную сущность в цикле отрисовки, даже когда она за спиной или далеко за пределами экрана, так что GPU и CPU платят полную цену за то, чего вы никогда не увидите. В сценах с кучей сущностей — вроде RPG-серверов с модами, хабов мини-игр или карт CounterMine С ЦЕЛЫХ 10К СУЩНОСТЕЙ (или просто с большим количеством Display-сущностей) — эти накладные расходы превращаются в настоящий налог на частоту кадров. Sodium и Entity Culling уже отлично справляются с блоками и сущностями, но я хотел небольшой, узконаправленный путь через frustum, заточенный конкретно под тысячи сущностей на экране одновременно, и чистое место для экспериментов с конвейером рендеринга. LCull вырос из идей Lomka (моей более ранней работы, доказавшей, что отсечение по тикам и обновлениям сильно помогает) и сузил задачу до одной: перестать рисовать сущности, которых нет во view frustum.
Как работают проверки Frustum в LCull?
Каждый кадр игра и так строит Frustum для активной камеры. LCull спрашивает у этого frustum, попадает ли axis-aligned bounding box сущности внутрь видимого объёма — тот же тест по шести плоскостям, что рендерер использует для чанков, только вычисляемый в безветочной форме, которая определяет знаки для углов один раз за кадр, а не для каждой сущности. Когда весь бокс снаружи, сущность пропускается при рендеринге и вообще не доходит до draw call.
Две вещи не дают результату мерцать. Запас безопасности вокруг бокса растёт со скоростью сущности — 1 блок для неподвижной сущности, до 2.5 для быстрой — так что ничего не выскакивает на ходу; а снаряд не может освободить себя от проверки за счёт высокой скорости, потому что запас ограничен. LCull также сохраняет ванильные исключения нетронутыми: всё, что рендерер помечает как never-cullable (удочки, ender dragon, молнии, отображение ников), передаётся прямо ванилле, а моб на поводке остаётся видимым, пока виден тот, кто держит его верёвку. Оба решения намеренно оставляют немного на столе, вместо того чтобы выбросить что-то, что игрок может увидеть.
В чём проблема Minecraft и LCull?
Minecraft применяет свой фрустум к чанкам и блочным сущностям, но цикл отрисовки каждой сущности всё равно перебирает и отправляет на отрисовку всё, что загружено, — именно поэтому мобы за экраном стоят столько же, сколько и мобы в кадре. LCull убирает эти затраты на сущности за экраном, но не может убрать сущности, скрытые за стенами, потому что для этого нужна отсечка по перекрытию и граф видимости — задача куда сложнее, чем проверка фрустума. Мод также бесполезен, когда сущностей мало, или в одиночной игре, где узкое место — симуляция, а не отрисовка. Поскольку отсечка решается в потоке отрисовки, сущности могут исчезать в тот же миг, как выходят из поля зрения; это осознанный размен ради прироста FPS, и он обменивает немного дополнительной нагрузки на CPU ради проверки фрустума. Есть и узкий край совместимости: мод, который считает, что каждая сущность «отрисовывается» каждый кадр, может вести себя странно, — поэтому LCull остаётся опциональной, настраиваемой правкой, а не молчаливой заменой.
Ссылки
Частые вопросы
Как установить LCull?
Установите Fabric под свою версию Minecraft, скачайте LCull под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть LCull?
У LCull есть сборки для Minecraft 1.20.1, 1.21–1.21.1, 1.21.4, 1.21.6–26.3 ….
Нужен ли LCull на сервере?
Ставится только в игру; на сервер ставить не нужно