Entity Culling — мод для оптимізації промальовування невидимих об'єктів у Minecraft
Entity Culling — мод для оптимізації промальовування невидимих об'єктів у Minecraft
Версія Minecraft, на якій протестовано і написано статтю: 1.21.10
Діапазон підтримуваних версій: 1.7.10 – 26.2
Entity Culling — клієнтський мод для Minecraft, який прибирає з промальовування блоки-сутності й сутності, приховані за рельєфом і будівлями. У ванільній грі клієнт витрачає ресурси на скрині, маяки, мобів та інші об'єкти навіть тоді, коли вони повністю заслонені стінами чи перекриттями й фізично не потрапляють у кадр. Мод визначає реальну видимість кожного такого об'єкта і пропускає його, якщо лінія огляду перекрита. У результаті зникають зайві виклики промальовування, а частина навантаження знімається з відеокарти у щільно забудованих локаціях.
Як працює відсікання прихованих об'єктів
Основа мода — асинхронне трасування променів (path-tracing). Задіюються вільні потоки процесора: паралельно з основним ігровим потоком прораховується, чи існує пряма лінія огляду від камери до кожного об'єкта. Розрахунок іде в реальному часі й не блокує основний потік, тому під час руху видимість оновлюється безперервно.
Ванільне відсікання й перевірка в Sodium працюють на рівні чанків: об'єкт промальовується, якщо завантажено чанк, у якому він стоїть. Тут підхід точніший — береться саме лінія огляду. Об'єкт, що стоїть у видимому чанку, але заслонений горою, стіною бази чи перекриттям, буде пропущений. Під відсікання потрапляють блоки-сутності (скрині, маяки, бочки) і звичайні сутності — моби та інші рухомі об'єкти.

Демонстрація частоти кадрів через F3 із увімкненим модом

Демонстрація частоти кадрів через F3 із вимкненим модом
Де помітна різниця
Виграш залежить від того, скільки об'єктів у сцені заслонено від камери. Найбільший ефект — у великих базах, на технічних складах із сотнями скринь, у підземних комплексах і на серверах із насиченою забудовою, де в радіусі промальовування багато блоків-сутностей і мобів стоять за стінами. У відкритому полі без забудови приріст мінімальний, бо приховувати майже нічого.
Оптимізація тактів сутностей
Окремо від промальовування мод може обмежувати обробку тактів (tick) для сутностей, яких зараз не видно. Поки сутність прихована, клієнт оновлює лише найнеобхідніше, і навантаження від великої кількості невидимих мобів спадає. Перемикач вмикається в налаштуваннях і за замовчуванням активний.
Оптимізація стосується лише клієнтського боку. Серверну симуляцію мод не зачіпає: моби так само з'являються, рухаються й випадають предмети, а ферми працюють без змін.
Клієнтські сутності: окремі моди (зокрема магічні) використовують суто клієнтські сутності для анімацій та ефектів. Якщо такі сутності відсікаються або не отримують тактів, їхня анімація може поводитися некоректно. Подібні об'єкти вносять у відповідний білий список у налаштуваннях.
Висновок
Entity Culling розвантажує промальовування й частину обробки об'єктів, яких гравець фізично не бачить, виносячи розрахунок видимості на окремі потоки процесора. На відміну від вбудованого відсікання сутностей у Sodium, орієнтованого на видимі чанки, тут враховується саме лінія огляду, тому пропускається більше прихованих об'єктів. Головне обмеження — окремі блоки-сутності та клієнтські ефекти з частини модів можуть зникати або блимати, доки їх не виключити з відсікання вручну. Найбільше від мода виграють гравці у виживанні з масштабним будівництвом, на технічних збірках і у важких модпаках, де в полі зору постійно тримається багато прихованих об'єктів.
Встановлення
Типове встановлення займає близько 5 хвилин. Порядок однаковий; відрізняються лише лоадер і відповідна збірка.
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











