Better Beds Mod: Optimerer rendering og 3D-sengemodeller i Minecraft
Detaljert teknisk gjennomgang av klientoptimeringsmoden Better Beds for Minecraft for å øke FPS.
Detaljert teknisk gjennomgang av klientoptimeringsmoden Better Beds for Minecraft for å øke FPS.
Avhengigheter:
Laster: Fabric / NeoForge / Quilt
Minecraft-versjon: 1.16 – 1.21.x
Better Beds-modifikasjonen skriver om mekanismen for sengerendering i Minecraft, og erstatter den tunge vanilla block entity renderer med standardmotoren for statiske modeller. I vanilla-spillet behandles senger som en Block Entity Renderer (BER), noe som tvinger prosessoren (CPU) til å omberegne geometrien deres for hvert bilde. Better Beds konverterer senger til klassiske blokker med JSON-modeller, noe som gjør at renderingen i sin helhet overføres til skjermkortet (GPU). Dette gir en betydelig økning i bildefrekvensen (FPS) nær landsbyer eller i flerspiller-lobbyer, og lar deg tilpasse senger gjennom standard ressurspakker.
Tekniske problemer med vanilla sengerendering
I vanilla Minecraft håndteres senger, kister, skilt og bannere som spesielle objekter — Block Entities. I motsetning til vanlig stein eller tre, som bakes inn i den statiske chunk-meshen under lasting, krever blokkentiteter en individuell renderer (Block Entity Renderer).
Problemer som denne tilnærmingen forårsaker i vanilla-spillet:
CPU-overbelastning. Prosessoren tvinges hvert millisekund til å spørre om koordinatene til hver seng i nærheten, og sende separate tegneinstruksjoner til skjermkortet.
Mangel på Occlusion Culling-optimalisering. Vanilla entity renderer tegner senger selv når de er bak vegger eller under gulvet, noe som kaster bort datamaskinens ressurser.
Ytelsesfall (FPS-lag). Hvis du går inn i en stor landsby med dusinvis av landsbyboere, eller spiller på servere i moduser som BedWars hvor mange senger er plassert i baser, kan bildefrekvensen plutselig synke drastisk på grunn av CPU-overbelastning fra renderingstråder.
Optimalisering og mekanikk i Better Beds
Better Beds-moden fjerner Block Entity Renderer for senger fullstendig og gjør dem om til standard 3D-blokker.
Hvordan optimaliseringen fungerer:
Under lasting av en chunk leser spillet sengemodellen som et statisk objekt, i likhet med trapper eller gjerder.
Sengegeometrien kombineres (bakes) inn i den generelle 3D chunk-meshen (Chunk Mesh).
Skjermkortet tegner hele chunken sammen med sengen i én gjennomgang (ett Draw Call), uten å involvere den sentrale prosessoren for beregninger per bilde i det hele tatt.
Hvis sengen er skjult bak andre ugjennomsiktige blokker, vil occlusion culling-algoritmer automatisk stoppe renderingen av den, noe som sparer GPU-minne.
Siden modifikasjonen utelukkende fungerer på klientsiden, endrer den ikke spillogikken. Senger beholder alle funksjonene sine: du kan sove i dem, tilbakestille spawn-punktet ditt, og landsbyboerne gjenkjenner dem uten problemer som arbeids- eller soveplasser. Moden krever ikke installasjon på serveren, så du kan fritt bruke den mens du spiller flerspiller.

Historisk kontekst: Hvorfor senger ble entiteter
Mojangs beslutning om å gjøre senger til blokkentiteter var et nødvendig skritt i fortiden. Frem til og med versjon 1.12 brukte Minecraft et gammelt blokk-ID-system som kun tildelte 4 bits for hver blokks metadata (maksimalt 16 forskjellige tilstander).
For en seng var det nødvendig å kode:
16 forskjellige ullfarger.
2 sengedeler (hode- og fotende).
4 plasseringsretninger (nord, sør, øst, vest).
Dette ga 128 tilstandskombinasjoner, som fysisk ikke fikk plass innenfor det gamle systemets begrensninger. For å unngå å kaste bort dusinvis av dyrebare ledige blokk-ID-er, transformerte utviklerne sengen til en Tile Entity (forløperen til Block Entity), og flyttet lagringen av farger og retning til separate metadata, mens tegningen ble flyttet til den CPU-baserte renderen.
I versjon 1.13 ("The Flattening") skrev utviklerne om ID-systemet fullstendig, noe som tillot opprettelse av blokker med et ubegrenset antall tilstander. Sengekoden forble imidlertid uendret. Better Beds løser faktisk denne foreldede tekniske gjelden ved å bringe senger tilbake til det vanlige blokkformatet.
Tilpasning og støtte for ressurspakker
Vanilla-senger bruker en enkelt stor tekstur som strekkes over en flat entitetsmodell. Å endre sengens geometri (for eksempel å gjøre bena runde eller legge til et voluminøst teppe) ved å bruke vanlige ressurspakker i vanilla-spillet er umulig uten å installere tunge optimaliseringsverktøy som OptiFine med dens Custom Entity Models (CEM)-funksjon.
Better Beds gjør senger åpne for enhver grafisk tilpasning. Siden sengen nå er en normal blokk, kan du opprette eller laste ned en ressurspakke med en bed.json-fil i mappen models/block/.
Dette lar deg:
Lage komplette 3D-sengemodeller med detaljerte puter, tepper og ben.
Bruke animerte teksturer eller legge til elementer som lyser i mørket (via PBR-shadere).
Legge til volumetriske detaljer som går utover den standard rektangulære rammen.
Som standard inkluderer modifikasjonen innebygde JSON-modeller som kopierer vanilla-utseendet til senger nøyaktig, så uten å installere ressurspakker fra tredjeparter vil du ikke merke noen visuell forskjell, men du vil få en ytelsesøkning.
Kompatibilitet og begrensninger
Modifikasjonen har et høyt nivå av kompatibilitet med andre grafikkoptimaliseringsverktøy (Sodium, Embeddium, Iris, Lithium), siden den bruker de samme hookene for chunk-rendering-optimalisering.
Begrensninger og konflikter:
Bedspreads. Denne populære moden, som lar deg påføre bannermønstre på senger, er inkompatibel med Better Beds. Årsaken er at Bedspreads er strengt bundet til vanilla Block Entity Renderer for å tegne banneret over sengen.
Modifikasjoner for egendefinerte senger. Hvis en annen mod legger til nye sengetyper og bruker standard modell-renderer for dette, vil du trenge en separat ressurspakke med JSON-modeller for disse nye sengene. Mods som registrerer senger via egne tilpassede BER-renderere, vil fungere stabilt, men vil ikke få FPS-økningen fra Better Beds.
Forfatterens mening
Better Beds er en effektiv teknisk løsning for optimalisering av klientsiden av Minecraft. Å erstatte den foreldede render-metoden for senger med statiske JSON-modeller eliminerer fullstendig CPU-belastningen per bilde, slik at skjermkortet kan tegne senger som en del av landskapet.
Sammenlignet med tunge mods for å endre entitetsmodeller, tilbyr Better Beds et lett alternativ som utelukkende fokuserer på å optimalisere senger og utvide mulighetene for skapere av ressurspakker. Den største ulempen er inkompatibiliteten med mods som endrer vanilla entity renderer (som Bedspreads), i tillegg til behovet for å manuelt legge til modeller for møbler fra noen tredjeparts mods. Modifikasjonen er perfekt for deg hvis du spiller på en svak datamaskin, ofte besøker store baser eller landsbyer med mange senger, eller ønsker å installere vakre 3D-møbelteksturer uten å miste ytelse.
Installasjon
En typisk installasjon tar omtrent 5 minutter. Flyten er den samme; bare Loader og den matchende builden er forskjellige.
- 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.











