Better Beds Mod: Minecraft의 렌더링 최적화 및 3D 침대 모델 지원
FPS를 향상시키는 Minecraft용 클라이언트 최적화 모드인 Better Beds에 대한 상세한 기술 리뷰입니다.
FPS를 향상시키는 Minecraft용 클라이언트 최적화 모드인 Better Beds에 대한 상세한 기술 리뷰입니다.
종속성:
로더: 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 오버헤드. 프로세서는 밀리초마다 근처에 있는 각 침대의 좌표를 쿼리하고 그래픽 카드에 별도의 그리기 지침을 보내야 합니다.
오클루전 컬링(Occlusion Culling) 최적화 부족. 바닐라 엔티티 렌더러는 침대가 벽 뒤나 바닥 아래에 있을 때에도 침대를 그려 컴퓨터 자원을 낭비합니다.
성능 저하(FPS 지연). 수십 명의 주민이 있는 큰 마을에 들어가거나 기지에 많은 침대가 배치된 BedWars와 같은 모드의 서버에서 플레이하는 경우, 렌더링 스레드의 CPU 과부하로 인해 프레임 속도가 갑자기 크게 떨어질 수 있습니다.
Better Beds의 최적화 및 메커니즘
Better Beds 모드는 침대용 Block Entity Renderer를 완전히 제거하여 표준 3D 블록으로 변환합니다.
최적화 작동 방식:
청크를 로드하는 동안 게임은 계단이나 울타리와 유사하게 침대 모델을 정적 객체로 읽습니다.
침대 기하학적 구조가 일반 3D 청크 메시(Chunk Mesh)로 결합(베이킹)됩니다.
그래픽 카드는 프레임 단위 계산에 중앙 프로세서를 전혀 참여시키지 않고 단일 패스(하나의 Draw Call)로 침대와 함께 전체 청크를 그립니다.
침대가 다른 불투명한 블록 뒤에 숨겨져 있으면 오클루전 컬링 알고리즘이 자동으로 렌더링을 중지하여 GPU 메모리를 절약합니다.
이 모드는 전적으로 클라이언트 측에서만 작동하므로 게임 로직을 변경하지 않습니다. 침대는 모든 기능을 유지합니다. 침대에서 자거나 리스폰 지점을 덮어쓸 수 있으며 주민들은 작업장이나 수면 장소로 아무 문제 없이 인식합니다. 이 모드는 서버에 설치할 필요가 없으므로 멀티플레이어를 할 때 자유롭게 사용할 수 있습니다.

역사적 배경: 침대가 엔티티가 된 이유
침대를 블록 엔티티로 만들기로 한 Mojang의 결정은 과거에 필수적인 단계였습니다. 1.12 버전까지 Minecraft는 각 블록의 메타데이터에 4비트(최대 16개의 다른 상태)만 할당하는 오래된 블록 ID 시스템을 사용했습니다.
침대의 경우 다음을 인코딩해야 했습니다.
16가지의 다른 양털 색상.
2개의 침대 부분(머리와 발).
4가지 배치 방향(북, 남, 동, 서).
이로 인해 128개의 상태 조합이 발생했으며, 물리적으로 이전 시스템의 한계에 맞출 수 없었습니다. 귀중한 무료 블록 ID 수십 개를 낭비하지 않기 위해 개발자는 침대를 Tile Entity(Block Entity의 전신)로 변환하여 색상과 방향 저장을 별도의 메타데이터로 이동하고 그리기를 CPU 기반 렌더러로 전환했습니다.
1.13 버전("The Flattening")에서 개발자는 ID 시스템을 완전히 다시 작성하여 무제한의 상태를 가진 블록을 만들 수 있도록 했습니다. 그러나 침대 코드는 변경되지 않고 그대로 유지되었습니다. Better Beds는 기본적으로 이 구식 기술 부채를 해결하여 침대를 표준 블록 형식으로 되돌립니다.
커스터마이징 및 리소스 팩 지원
바닐라 침대는 평면 엔티티 모델 위에 늘어난 하나의 큰 텍스처를 사용합니다. 일반 리소스 팩을 사용하여 침대 형태를 변경하는 것(예: 다리를 둥글게 만들거나 부피가 큰 담요 추가)은 Custom Entity Models(CEM) 기능이 있는 OptiFine과 같은 무거운 최적화 도구를 설치하지 않고는 바닐라 게임에서 불가능합니다.
Better Beds는 침대를 모든 그래픽 커스터마이징에 개방적으로 만듭니다. 이제 침대가 일반 블록이므로 models/block/ 폴더에 bed.json 파일이 있는 리소스 팩을 만들거나 다운로드할 수 있습니다.
이를 통해 다음을 수행할 수 있습니다.
자세한 베개, 담요 및 다리가 있는 완벽한 3D 침대 모델을 만듭니다.
애니메이션 텍스처를 사용하거나 (PBR 셰이더를 통해) 어둠 속에서 빛나는 요소를 추가합니다.
표준 직사각형 프레임을 넘어서는 입체적인 디테일을 추가합니다.
기본적으로 이 모드에는 바닐라 침대의 모양을 정확하게 복사하는 내장 JSON 모델이 포함되어 있으므로 타사 리소스 팩을 설치하지 않아도 시각적 차이를 느끼지 못하지만 성능은 향상됩니다.
호환성 및 제한 사항
이 모드는 청크 렌더링 최적화를 위해 동일한 후크를 사용하므로 다른 그래픽 최적화 도구(Sodium, Embeddium, Iris, Lithium)와 호환성이 높습니다.
제한 사항 및 충돌:
Bedspreads. 침대에 현수막 패턴을 적용할 수 있게 해주는 이 인기 있는 모드는 Better Beds와 호환되지 않습니다. 그 이유는 Bedspreads가 침대 위에 현수막을 그리기 위해 바닐라 Block Entity Renderer에 엄격하게 묶여 있기 때문입니다.
커스텀 침대 모드. 다른 모드에서 새로운 유형의 침대를 추가하고 이를 위해 표준 모델 렌더러를 사용하는 경우 해당 새 침대에 대한 JSON 모델이 포함된 별도의 리소스 팩이 필요합니다. 자체 커스텀 BER 렌더러를 통해 침대를 등록하는 모드는 안정적으로 작동하지만 Better Beds에서 제공하는 FPS 향상은 얻을 수 없습니다.
작성자의 의견
Better Beds는 Minecraft의 클라이언트 측을 최적화하는 데 효과적인 기술 솔루션입니다. 구식 침대 렌더링 방법을 정적 JSON 모델로 교체하면 프레임당 CPU 로드가 완전히 제거되어 그래픽 카드가 풍경의 일부로 침대를 그릴 수 있습니다.
무거운 엔티티 모델 변경 모드와 비교하여 Better Beds는 침대 최적화 및 리소스 팩 제작자의 가능성 확장에만 초점을 맞춘 가벼운 대안을 제공합니다. 가장 큰 단점은 바닐라 엔티티 렌더러를 수정하는 모드(예: Bedspreads)와 호환되지 않는다는 점과 일부 타사 모드의 가구 모델을 수동으로 추가해야 한다는 점입니다. 저사양 컴퓨터에서 플레이하거나, 많은 침대가 있는 큰 기지나 마을을 자주 방문하거나, 성능 저하 없이 아름다운 3D 가구 텍스처를 설치하려는 경우 이 모드가 완벽합니다.
설치
일반적인 설치는 약 5 분 정도 걸려요. 과정은 동일하고, Loader 와 그에 맞는 빌드만 달라요.
- 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.











