-
Notifications
You must be signed in to change notification settings - Fork 0
26.2 Entity Occlusion Culling
In Minecraft 26.2, client entity rendering extracts render states for all entities inside the camera frustum—even when obscured behind caves, cliffs, or builds. Camera Culling intercepts this check to prevent occluded mobs from consuming CPU geometry processing and GPU draw calls.
| Property | Value |
|---|---|
| Target Pipeline | EntityRenderer.shouldRender(T, Frustum, double, double, double) |
| Default Profile |
SUPER (Extreme) |
| Clip Context |
ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE
|
| Floor Filtering | Ignores Direction.UP hits when hit height |
| Leaves Occlusion | Solid render and BlockTags.LEAVES blocks occlude sightlines |
| Immunity Bubble | Distance squared |
Camera Culling performs multi-point anatomical sampling based on the selected Culling Profile:
[1] Head Top (maxY - 0.05)
\
[2] Eye Position (entity.getEyeY())
\
[3] Upper Torso (minY + height * 0.70)
\
[4] Center of Mass (centerY)
\
[5-8] Elevated Perimeter Flanks (width/depth checks)
-
Sample 1: Top of Entity Head (
maxY - 0.05) — High priority check for tall mobs behind half-walls. -
Sample 2: Anatomical Eye Position (
getEyeY()) — Direct line-of-sight from camera to eyes. -
Sample 3: Upper Torso / Chest (
minY + height * 0.70) — Evaluates upper torso above ground-grazing range. -
Sample 4: Center of Mass (
(minY + maxY) * 0.5) — Midpoint verification. - Sample 5–8: Elevated Perimeter Flanks — Verifies wide mobs (Ravagers, Wardens, Spiders) peeking around corners.
When a player looks downward at a mob on uneven terrain, a standard raycast can strike the ground near the mob's feet:
This eliminates false-positive culling on slopes, hills, and steps.
In 26.2, CullingRaycastHelper passes raw primitive coordinates:
public static boolean hasLineOfSight(Level level, Vec3 from, double toX, double toY, double toZ)This architecture completely eliminates intermediate heap allocations on every frame.
Camera Culling Documentation • Part of the Vanilla Outsider Collection
Author: Dasik (Rifaditya) • Licensed under GNU General Public License v3.0 (GPLv3)
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits ahead of public release builds on CurseForge/Modrinth.
- MC 26.3 Overview
- Entity Occlusion Culling
- Block Entity Culling
- Sign & Hanging Sign Culling
- Particle & Animation Culling
- Mob Crowd Overdraw Defense
- Distance Texture LOD
- Boss & Blacklist Immunity
- Temporal Hysteresis & Math
- Commands & Configuration
- GUI Configuration (YACL)
- Debug Tracing & Diagnostics
- Architecture & Mixins
- Developer Setup & Building
- API & Mod Integration
- MC 26.2 Overview
- Entity Occlusion Culling
- Block Entity Culling
- Sign & Hanging Sign Culling
- Particle & Animation Culling
- Mob Crowd Overdraw Defense
- Distance Texture LOD
- Boss & Blacklist Immunity
- Temporal Hysteresis & Math
- Commands & Configuration
- GUI Configuration (YACL)
- Debug Tracing & Diagnostics
- Architecture & Mixins
- Developer Setup & Building
- API & Mod Integration
- MC 26.1.2 Overview
- Entity Occlusion Culling
- Block Entity Culling
- Sign & Hanging Sign Culling
- Particle & Animation Culling
- Mob Crowd Overdraw Defense
- Distance Texture LOD
- Boss & Blacklist Immunity
- Temporal Hysteresis & Math
- Commands & Configuration
- GUI Configuration (YACL)
- Debug Tracing & Diagnostics
- Architecture & Mixins
- Developer Setup & Building
- API & Mod Integration