Better Beds Mod: Оптимізація рендерингу та підтримка 3D-моделей ліжок у Minecraft
Залежності:
Завантажувач: Fabric / NeoForge / Quilt
Версія Minecraft: 1.16 – 1.21.x
Модифікація Better Beds переписує механізм відмальовування ліжок у Minecraft, замінюючи важкий ванільний рендерер сутностей блоків на стандартний рушій статичних моделей. У стандартній грі ліжка обробляються як Block Entity Renderer (BER), що змушує центральний процесор (CPU) перераховувати їхню геометрію на кожному кадрі. Better Beds перетворює ліжка на класичні блоки із JSON-моделями, завдяки чому їхній рендеринг повністю переноситься на відеокарту (GPU). Це забезпечує значне зростання частоти кадрів (FPS) поблизу сіл або в лобі мережевих ігор та дозволяє кастомізувати ліжка через стандартні ресурспаки.
Технічні проблеми ванільного рендерингу ліжок
У ванільному Minecraft ліжка, скрині, таблички та банери обробляються як особливі об'єкти — сутності блоків (Block Entities). На відміну від звичайного каменю чи дерева, які запікаються у статичну сітку чанку під час його завантаження, сутності блоків потребують індивідуального рендерера (Block Entity Renderer).
Проблеми, які викликає такий підхід у ванільній грі:
Навантаження на CPU. Центральний процесор змушений кожну мілісекунду опитувати координати кожного ліжка поблизу та надсилати окремі інструкції для малювання на відеокарту.
Відсутність оптимізації через оклюзію. Ванільний рендерер сутностей промальовує ліжка навіть тоді, коли вони знаходяться за стінами чи під підлогою, марно витрачаючи ресурси комп'ютера.
Падіння продуктивності (FPS lag). Якщо ти заходиш у велике село з десятками жителів або граєш на серверах у режими на кшталт BedWars, де на базах встановлено багато ліжок, частота кадрів може раптово знизитися у кілька разів через перевантаження CPU потоками рендерингу.
Оптимізація та механіка роботи Better Beds
Модифікація Better Beds повністю видаляє Block Entity Renderer для ліжок, перетворюючи їх на стандартні тривимірні блоки.
Принцип роботи оптимізації:
Під час завантаження чанку гра зчитує модель ліжка як статичний об'єкт, аналогічно до сходинок чи парканів.
Геометрія ліжка об'єднується (запікається) у загальну тривимірну сітку чанку (Chunk Mesh).
Відеокарта малює весь чанк разом із ліжком за один прохід (один Draw Call), взагалі не залучаючи центральний процесор для щокадрових обчислень.
Якщо ліжко приховане за іншими непрозорими блоками, алгоритми відсікання геометрії (Occlusion Culling) автоматично припиняють його рендеринг, заощаджуючи пам'ять відеокарти.
Оскільки модифікація працює виключно на стороні клієнта, вона не змінює ігрову логіку. Ліжка зберігають усі свої функції: ти можеш спати на них, перезаписувати точку спавну, а жителі села без проблем розпізнають їх як робочі чи спальні місця. Модифікація не потребує встановлення на сервер, тому ти можеш вільно використовувати її під час гри в мультиплеєрі.

Історичний контекст: чому ліжка стали сутностями
Рішення Mojang зробити ліжка сутностями блоків було вимушеним кроком у минулому. До версії 1.12 включно у Minecraft використовувалася стара система ідентифікаторів блоків, яка виділяла під метадані кожного блоку всього 4 біти (максимум 16 різних станів).
Для ліжка необхідно було закодувати:
16 різних кольорів вовни.
2 частини ліжка (узголів'я та підніжжя).
4 напрямки розміщення (північ, південь, схід, захід).
Це давало 128 комбінацій станів, що фізично не вміщалося в обмеження старої системи. Щоб не витрачати десятки дорогоцінних вільних ID блоків, розробники перетворили ліжко на Tile Entity (попередник Block Entity), винісши збереження кольорів та напрямку в окремі метадані, а малювання — на процесорний рендерер.
У версії 1.13 ("The Flattening") розробники повністю переписали систему ID, дозволивши створювати блоки з безмежною кількістю станів. Проте код ліжок залишився незмінним. Better Beds фактично виконує це застаріле технічне завдання, повертаючи ліжка до стандартного формату блоків.
Кастомізація та підтримка ресурспаків
Ванільні ліжка використовують єдину велику текстуру, натягнуту на плоску модель сутності. Змінити геометрію ліжка (наприклад, зробити ніжки круглими або додати об'ємну ковдру) за допомогою звичайних ресурспаків у ванільній грі неможливо без встановлення важких оптимізаторів на кшталт OptiFine з функцією кастомних моделей сутностей (CEM).
Better Beds робить ліжка відкритими для будь-якої графічної кастомізації. Оскільки ліжко тепер є звичайним блоком, ти можеш створити або завантажити ресурспак із файлом bed.json у папці models/block/.
Це дозволяє:
Створювати повноцінні тривимірні моделі ліжок із деталізованими подушками, ковдрами та ніжками.
Використовувати анімовані текстури або додавати елементи, що світяться в темряві (за допомогою PBR-шейдерів).
Додавати об'ємні деталі, які виходять за межі стандартного прямокутного каркаса.
За замовчуванням модифікація містить вбудовані JSON-моделі, які точно копіюють ванільний вигляд ліжок, тому без встановлення сторонніх ресурспаків ти не помітиш різниці у візуалі, але отримаєш приріст продуктивності.
Сумісність та обмеження
Модифікація має високий рівень сумісності з іншими оптимізаторами графіки (Sodium, Embeddium, Iris, Lithium), оскільки використовує ті самі хуки для оптимізації рендерингу чанків.
Обмеження та конфлікти:
Bedspreads. Це популярний мод, який дозволяє наносити візерунки банерів на ліжка, є несумісним із Better Beds. Причина полягає в тому, що Bedspreads жорстко прив'язаний до ванільного Block Entity Renderer для малювання банера поверх ліжка.
Моди на кастомні ліжка. Якщо інший мод додає нові типи ліжок і використовує для цього стандартний рендерер моделей, тобі знадобиться окремий ресурспак із JSON-моделями для цих нових ліжок. Моди, які реєструють ліжка через власні кастомні BER-рендерери, працюватимуть стабільно, але не отримають приросту FPS від Better Beds.
Думка автора
Better Beds — це ефективне технічне рішення для оптимізації клієнтської частини Minecraft. Заміна застарілого методу рендерингу ліжок на статичні JSON-моделі повністю усуває щокадрове навантаження на процесор, дозволяючи відеокарті малювати ліжка як частину ландшафту.
У порівнянні з важкими модами на зміну моделей сутностей, Better Beds пропонує легку альтернативу, яка фокусується виключно на оптимізації ліжок та розширенні можливостей для творців ресурспаків. Головним мінусом є несумісність із модами, що модифікують ванільний рендерер сутностей (наприклад, Bedspreads), а також необхідність ручного додавання моделей для меблів із деяких сторонніх модів. Модифікація ідеально підійде тобі, якщо ти граєш на слабкому комп'ютері, часто відвідуєш великі бази чи села із багатьма ліжками, або хочеш встановити красиві тривимірні текстури меблів без втрати продуктивності.
Встановлення
Типове встановлення займає близько 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.











