Better Beds Mod: Optymalizacja renderowania i wsparcie modeli 3D łóżek w Minecraft
Szczegółowy techniczny przegląd moda optymalizacyjnego Better Beds do Minecraft w celu zwiększenia FPS.
Szczegółowy techniczny przegląd moda optymalizacyjnego Better Beds do Minecraft w celu zwiększenia FPS.
Zależności:
Loader: Fabric / NeoForge / Quilt
Wersja Minecraft: 1.16 – 1.21.x
Modyfikacja Better Beds przepisuje mechanizm renderowania łóżek w Minecraft, zastępując ciężki waniliowy silnik renderowania encji bloków standardowym silnikiem statycznych modeli. W standardowej grze łóżka są przetwarzane jako Block Entity Renderer (BER), co zmusza procesor (CPU) do przeliczania ich geometrii w każdej klatce. Better Beds zamienia łóżka w klasyczne bloki z modelami JSON, dzięki czemu ich renderowanie jest całkowicie przenoszone na kartę graficzną (GPU). Zapewnia to znaczny wzrost liczby klatek na sekundę (FPS) w pobliżu wiosek lub w lobby gier wieloosobowych i pozwala na dostosowywanie łóżek za pomocą standardowych paczek zasobów.
Problemy techniczne z waniliowym renderowaniem łóżek
W waniliowym Minecraft łóżka, skrzynie, tabliczki i banery są traktowane jako obiekty specjalne — encje bloków (Block Entities). W przeciwieństwie do zwykłego kamienia czy drewna, które są wypiekane w statyczną siatkę chunku podczas jego ładowania, encje bloków wymagają indywidualnego renderera (Block Entity Renderer).
Problemy, jakie powoduje to podejście w standardowej grze:
Obciążenie CPU. Procesor jest zmuszony w każdej milisekundzie do odpytywania współrzędnych każdego łóżka w pobliżu i wysyłania oddzielnych instrukcji rysowania do karty graficznej.
Brak optymalizacji okluzji. Waniliowy renderer encji rysuje łóżka nawet wtedy, gdy znajdują się one za ścianami lub pod podłogą, marnując zasoby komputera.
Spadki wydajności (FPS lag). Jeśli wejdziesz do dużej wioski z dziesiątkami osadników lub grasz na serwerach w trybach takich jak BedWars, gdzie w bazach znajduje się wiele łóżek, liczba klatek na sekundę może nagle spaść kilkukrotnie z powodu przeciążenia CPU wątkami renderowania.
Optymalizacja i mechanika działania Better Beds
Mod Better Beds całkowicie usuwa Block Entity Renderer dla łóżek, zamieniając je w standardowe bloki 3D.
Jak działa optymalizacja:
Podczas ładowania chunku gra odczytuje model łóżka jako statyczny obiekt, podobnie do schodów czy płotów.
Geometria łóżka jest łączona (wypiekana) w ogólną trójwymiarową siatkę chunku (Chunk Mesh).
Karta graficzna rysuje cały chunk razem z łóżkiem w jednym przejściu (jeden Draw Call), w ogóle nie angażując procesora do obliczeń dla każdej klatki.
Jeśli łóżko jest ukryte za innymi nieprzezroczystymi blokami, algorytmy odrzucania niewidocznych elementów (Occlusion Culling) automatycznie zatrzymują jego renderowanie, oszczędzając pamięć GPU.
Ponieważ modyfikacja działa wyłącznie po stronie klienta, nie zmienia ona logiki gry. Łóżka zachowują wszystkie swoje funkcje: możesz w nich spać, nadpisywać punkt odrodzenia, a osadnicy z wioski bez problemu rozpoznają je jako miejsca pracy lub snu. Modyfikacja nie wymaga instalacji na serwerze, więc możesz z niej swobodnie korzystać podczas gry wieloosobowej.

Kontekst historyczny: dlaczego łóżka stały się encjami
Decyzja Mojang o uczynieniu łóżek encjami bloków była w przeszłości krokiem koniecznym. Aż do wersji 1.12 włącznie, Minecraft korzystał ze starego systemu identyfikatorów bloków, który przydzielał zaledwie 4 bity na metadane każdego bloku (maksymalnie 16 różnych stanów).
Dla łóżka konieczne było zakodowanie:
16 różnych kolorów wełny.
2 części łóżka (wezgłowie i nogi).
4 kierunki ułożenia (północ, południe, wschód, zachód).
Dało to 128 kombinacji stanów, które fizycznie nie mieściły się w ograniczeniach starego systemu. Aby nie marnować dziesiątek cennych darmowych identyfikatorów bloków, programiści zamienili łóżko w Tile Entity (poprzednik Block Entity), przenosząc zapisywanie kolorów i kierunku do oddzielnych metadanych, a rysowanie na renderer procesora.
W wersji 1.13 ("The Flattening") programiści całkowicie przepisali system identyfikatorów, umożliwiając tworzenie bloków z nieskończoną liczbą stanów. Kod łóżka pozostał jednak niezmieniony. Better Beds w rzeczywistości rozwiązuje ten przestarzały dług technologiczny, przywracając łóżka do standardowego formatu bloków.
Dostosowywanie i obsługa paczek zasobów
Waniliowe łóżka wykorzystują pojedynczą, dużą teksturę naciągniętą na płaski model encji. Zmiana geometrii łóżka (na przykład zaokrąglenie nóg lub dodanie obszernego koca) przy użyciu zwykłych paczek zasobów w standardowej grze jest niemożliwa bez zainstalowania ciężkich optymalizatorów, takich jak OptiFine z funkcją niestandardowych modeli encji (CEM).
Better Beds sprawia, że łóżka są otwarte na wszelkie modyfikacje graficzne. Ponieważ łóżko jest teraz zwykłym blokiem, możesz utworzyć lub pobrać paczkę zasobów z plikiem bed.json w folderze models/block/.
Pozwala to na:
Tworzenie pełnoprawnych trójwymiarowych modeli łóżek ze szczegółowymi poduszkami, kocami i nogami.
Korzystanie z animowanych tekstur lub dodawanie elementów świecących w ciemności (za pomocą shaderów PBR).
Dodawanie szczegółów wolumetrycznych wykraczających poza standardową prostokątną ramę.
Domyślnie modyfikacja zawiera wbudowane modele JSON, które dokładnie kopiują waniliowy wygląd łóżek, więc bez instalowania zewnętrznych paczek zasobów nie zauważysz różnicy w wyglądzie, ale zyskasz wzrost wydajności.
Kompatybilność i ograniczenia
Modyfikacja ma wysoki poziom kompatybilności z innymi optymalizatorami grafiki (Sodium, Embeddium, Iris, Lithium), ponieważ wykorzystuje te same hooki do optymalizacji renderowania chunków.
Ograniczenia i konflikty:
Bedspreads. Ten popularny mod, który pozwala na nakładanie wzorów banerów na łóżka, jest niekompatybilny z Better Beds. Powodem jest to, że Bedspreads jest ściśle powiązany z waniliowym Block Entity Renderer w celu renderowania banera na łóżku.
Mody na niestandardowe łóżka. Jeśli inny mod dodaje nowe typy łóżek i używa do tego standardowego renderera modeli, będziesz potrzebować oddzielnej paczki zasobów z modelami JSON dla tych nowych łóżek. Mody, które rejestrują łóżka poprzez własne niestandardowe renderery BER, będą działać stabilnie, ale nie otrzymają wzrostu FPS od Better Beds.
Opinia autora
Better Beds to skuteczne rozwiązanie techniczne optymalizujące część kliencką gry Minecraft. Zastąpienie przestarzałej metody renderowania łóżek statycznymi modelami JSON całkowicie eliminuje obciążenie procesora w każdej klatce, pozwalając karcie graficznej rysować łóżka jako część terenu.
W porównaniu do ciężkich modów zmieniających modele encji, Better Beds oferuje lekką alternatywę, która skupia się wyłącznie na optymalizacji łóżek i poszerzeniu możliwości dla twórców paczek zasobów. Głównym minusem jest brak kompatybilności z modami modyfikującymi waniliowy renderer encji (np. Bedspreads), a także konieczność ręcznego dodawania modeli mebli z niektórych zewnętrznych modów. Modyfikacja będzie dla Ciebie idealna, jeśli grasz na słabym komputerze, często odwiedzasz duże bazy lub wioski z wieloma łóżkami lub chcesz zainstalować piękne trójwymiarowe tekstury mebli bez utraty wydajności.
Instalacja
Typowa instalacja zajmuje około 5 minut. Procedura jest taka sama; różni się tylko loader i odpowiedni build.
- 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.











