Better Beds Mod: Optimeret rendering og 3D-sengemodeller i Minecraft
Detaljeret teknisk gennemgang af klientoptimerings-mod'en Better Beds til Minecraft for at øge FPS.
Detaljeret teknisk gennemgang af klientoptimerings-mod'en Better Beds til Minecraft for at øge FPS.
Afhængigheder:
Loader: Fabric / NeoForge / Quilt
Minecraft Version: 1.16 – 1.21.x
Modifikationen Better Beds omskriver mekanismen for rendering af senge i Minecraft ved at erstatte den tunge vanilla block entity renderer med standardmotoren for statiske modeller. I standardspillet behandles senge som en Block Entity Renderer (BER), hvilket tvinger processoren (CPU) til at genberegne deres geometri i hvert billede. Better Beds konverterer senge til klassiske blokke med JSON-modeller, hvorved deres rendering fuldstændig overføres til grafikkortet (GPU). Dette giver en betydelig stigning i framerate (FPS) nær landsbyer eller i multiplayer-lobbyer og giver mulighed for at tilpasse senge via standard ressourcepakker.
Tekniske problemer med vanilla sengerendering
I vanilla Minecraft håndteres senge, kister, skilte og bannere som specielle objekter — Block Entities. I modsætning til almindelig sten eller træ, som bages ind i den statiske chunk-mesh under dens indlæsning, kræver block entities en individuel renderer (Block Entity Renderer).
Problemer forårsaget af denne tilgang i standardspillet:
CPU-overbelastning. Processoren er tvunget til hvert millisekund at forespørge koordinaterne for hver seng i nærheden og sende separate tegneinstruktioner til grafikkortet.
Manglende Occlusion Culling optimering. Vanilla entity renderer tegner senge selv når de er bag vægge eller under gulvet, hvilket spilder din computers ressourcer.
Ydelsesfald (FPS-lag). Hvis du går ind i en stor landsby med snesevis af landsbyboere eller spiller på servere i tilstande som BedWars, hvor der er placeret mange senge i baserne, kan frameraten pludselig falde drastisk på grund af CPU-overbelastning fra renderingstråde.
Optimering og mekanik i Better Beds
Better Beds mod'en fjerner fuldstændigt Block Entity Renderer for senge og gør dem til standard 3D-blokke.
Hvordan optimeringen virker:
Under indlæsning af en chunk læser spillet sengemodellen som et statisk objekt, på samme måde som trapper eller hegn.
Sengegeometrien kombineres (bages) i den generelle 3D chunk-mesh (Chunk Mesh).
Grafikkortet tegner hele chunken sammen med sengen i én gennemgang (et Draw Call) uden overhovedet at involvere den centrale processor i beregninger per frame.
Hvis sengen er skjult bag andre uigennemsigtige blokke, stopper occlusion culling-algoritmer automatisk dens rendering og sparer dermed GPU-hukommelse.
Da modifikationen udelukkende fungerer på klientsiden, ændrer den ikke spillogikken. Senge bevarer alle deres funktioner: Du kan sove i dem, nulstille dit spawn-punkt, og landsbyboerne genkender dem uden problemer som arbejds- eller sovepladser. Mod'en kræver ikke installation på serveren, så du kan frit bruge den under multiplayer-spil.

Historisk kontekst: Hvorfor senge blev entiteter
Mojangs beslutning om at gøre senge til block entities var et nødvendigt skridt tidligere. Op til version 1.12 inklusiv brugte Minecraft et gammelt blok-ID-system, der kun tildelte 4 bits til hver bloks metadata (højst 16 forskellige tilstande).
For en seng var det nødvendigt at kode:
16 forskellige uldfarver.
2 sengedele (hoved- og fodende).
4 placeringsretninger (nord, syd, øst, vest).
Dette gav 128 tilstandskombinationer, som fysisk ikke kunne passe inden for det gamle systems begrænsninger. For ikke at spilde snesevis af dyrebare ledige blok-ID'er transformerede udviklerne sengen til en Tile Entity (forgængeren til Block Entity) og flyttede lagringen af farver og retning til separate metadata, mens tegningen blev flyttet til den CPU-baserede renderer.
I version 1.13 ("The Flattening") omskrev udviklerne ID-systemet fuldstændigt, hvilket tillod oprettelse af blokke med et ubegrænset antal tilstande. Imidlertid forblev sengekoden uændret. Better Beds løser faktisk denne forældede tekniske gæld ved at bringe senge tilbage til det normale blokformat.
Tilpasning og understøttelse af ressourcepakker
Vanilla senge bruger en enkelt stor tekstur, der er strakt ud over en flad entitetsmodel. Ændring af sengegeometrien (for eksempel at gøre benene runde eller tilføje et voluminøst tæppe) ved hjælp af almindelige ressourcepakker i standardspillet er umulig uden at installere tunge optimeringsværktøjer som OptiFine med funktionen Custom Entity Models (CEM).
Better Beds gør senge åbne for enhver grafisk tilpasning. Da sengen nu er en normal blok, kan du oprette eller downloade en ressourcepakke med en bed.json-fil i mappen models/block/.
Dette giver dig mulighed for at:
Oprette fuldt 3D-sengemodeller med detaljerede puder, tæpper og ben.
Bruge animerede teksturer eller tilføje elementer, der lyser i mørke (via PBR-shadere).
Tilføje volumetriske detaljer, der går ud over den standard rektangulære ramme.
Som standard inkluderer modifikationen indbyggede JSON-modeller, der nøjagtigt kopierer vanilla-udseendet af senge. Derfor vil du uden installation af tredjeparts ressourcepakker ikke mærke nogen visuel forskel, men du vil få et ydelsesboost.
Kompatibilitet og begrænsninger
Modifikationen har en høj grad af kompatibilitet med andre grafikoptimeringsværktøjer (Sodium, Embeddium, Iris, Lithium), da den bruger de samme hooks til optimering af chunk-rendering.
Begrænsninger og konflikter:
Bedspreads. Denne populære mod, der giver mulighed for at anvende bannermønstre på senge, er inkompatibel med Better Beds. Årsagen er, at Bedspreads er strengt bundet til vanilla Block Entity Renderer for at tegne banneret over sengen.
Mods til brugerdefinerede senge. Hvis en anden mod tilføjer nye sengetyper og bruger standardmodel-renderen til dette, får du brug for en separat ressourcepakke med JSON-modeller til disse nye senge. Mods, der registrerer senge via deres egne brugerdefinerede BER-renderere, vil fungere stabilt, men vil ikke få FPS-boostet fra Better Beds.
Forfatterens mening
Better Beds er en effektiv teknisk løsning til optimering af klientsiden af Minecraft. Udskiftning af den forældede sengerenderingsmetode med statiske JSON-modeller fjerner fuldstændig CPU-belastningen per frame, så grafikkortet kan tegne senge som en del af landskabet.
Sammenlignet med tunge mods til ændring af entitetsmodeller tilbyder Better Beds et letvægtsalternativ, der udelukkende fokuserer på at optimere senge og udvide mulighederne for skabere af ressourcepakker. Den største ulempe er dens inkompatibilitet med mods, der modificerer vanilla entity renderer (som f.eks. Bedspreads), samt behovet for manuelt at tilføje modeller for møbler fra nogle tredjeparts mods. Denne modifikation er perfekt for dig, hvis du spiller på en svag computer, ofte besøger store baser eller landsbyer med mange senge, eller hvis du ønsker at installere smukke 3D-møbelteksturer uden at miste ydeevne.
Installation
En typisk installation tager omkring 5 minutter. Forløbet er det samme; kun Loader og den matchende build er forskellige.
- 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.











