Better Beds Mod: Оптимизация рендеринга и поддержка 3D-моделей кроватей в Minecraft
Подробный технический обзор оптимизационного клиентского мода Better Beds для Minecraft для повышения FPS.
Подробный технический обзор оптимизационного клиентского мода Better Beds для Minecraft для повышения FPS.
Зависимости:
Загрузчик: 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.











