Skip to content

26.3 Block Entity Culling

Dasik edited this page Aug 20, 2026 · 1 revision

πŸ“¦ Block Entity Occlusion Culling (Minecraft 26.3)

Block entities (chests, ender chests, signs, banners, skulls, decorated pots, bells, and beacons) are dynamic rendering elements. Because they bypass vanilla chunk mesh compiling, they submit individual draw calls every frame. In storage rooms or automated sorting facilities with hundreds of chests, this produces significant GPU bottlenecks.


πŸ“‹ Block Entity Culling Infobox

Property Value
Target Pipeline BlockEntityRenderDispatcher.tryExtractRenderState(...)
Enclosure Detection Checks all 6 neighboring faces: up, down, north, south, east, west
Conservative Mode Enclosed-only check on LOW profile
Aggressive Mode Full raycast sightline verification on MEDIUM, HIGH, SUPER
Result Returns null RenderState to skip render submit

πŸ” Enclosure & Sightline Verification Architecture

               [UP]
                β”‚
   [WEST] ── [CHEST] ── [EAST]
                β”‚
              [DOWN]

1. 6-Sided Solid Enclosure Fast-Pass

Before running any raycast math, Camera Culling queries the neighboring block states:

BlockState up = level.getBlockState(pos.above());
BlockState down = level.getBlockState(pos.below());
BlockState north = level.getBlockState(pos.north());
BlockState south = level.getBlockState(pos.south());
BlockState east = level.getBlockState(pos.east());
BlockState west = level.getBlockState(pos.west());

if (up.isSolidRender() && down.isSolidRender() && north.isSolidRender()
    && south.isSolidRender() && east.isSolidRender() && west.isSolidRender()) {
    return true; // 100% Occluded β€” skip rendering
}

Chests embedded behind walls or enclosed in solid basement foundations are unrendered with near-zero CPU calculation ($< 0.0001\mu\text{s}$).

2. Line-of-Sight Raycast Check

On MEDIUM, HIGH, and SUPER profiles (cullAllBlockEntities = true), Camera Culling projects a ray from the player's camera position to the block entity center $(X + 0.5, Y + 0.5, Z + 0.5)$:

  • If the raycast strikes an occluding solid block prior to reaching the target block entity, the render state is dropped.
  • If a clear sightline exists, the block entity is rendered with full visual fidelity.

πŸ”— Related Pages

Clone this wiki locally