Skip to content

📦 Block Entity Occlusion Culling (Minecraft 26.2) ​

Block entities (chests, ender chests, signs, banners, skulls, decorated pots, bells, and beacons) submit individual draw calls every frame. In large storage rooms or automated sorting facilities, this produces heavy GPU draw call contention.


📋 Block Entity Culling Infobox ​

PropertyValue
Target PipelineBlockEntityRenderDispatcher.tryExtractRenderState(BlockEntity, float, CrumblingOverlay, boolean)
Enclosure DetectionChecks all 6 neighboring faces: up, down, north, south, east, west
Conservative ModeEnclosed-only check on LOW profile
Aggressive ModeFull raycast sightline verification on MEDIUM, HIGH, SUPER
ResultReturns null RenderState to skip render submit

🔍 Enclosure & Sightline Verification Architecture ​

text
               [UP]
                │
   [WEST] ── [CHEST] ── [EAST]
                │
              [DOWN]

1. 6-Sided Solid Enclosure Fast-Pass ​

java
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
}

2. Line-of-Sight Raycast Check ​

On MEDIUM, HIGH, and SUPER profiles (cullAllBlockEntities = true), Camera Culling projects a ray from camera position to the block entity center $(X + 0.5, Y + 0.5, Z + 0.5)$ to drop occluded render states.


Official documentation & web portal for Dasik Igaijinn mods.