-
Notifications
You must be signed in to change notification settings - Fork 0
26.3 Debug Logging and Diagnostics
Dasik edited this page Aug 20, 2026
·
1 revision
Camera Culling includes an in-game diagnostic logging and real-time state transition tracing engine to enable players and modpack developers to monitor exactly when and why entities are rendered or culled.
| Property | Value |
|---|---|
| Command Toggle | `/cameraculling debug [true |
| GUI Toggle | "Real-Time Debug Logging" in Engine & Diagnostics category |
| Default State |
false (Zero string allocations on hot render paths) |
| Chat Output | Color-coded Β§6[CC-Debug] state transition notifications |
| Log Output | SLF4J logger output under [CameraCulling Debug] tag |
When debug mode is enabled, CullingDiagnosticsHelper captures every state transition (Visible
[CC-Debug] Β§c[CULLED] Β§eminecraft:cow #412Β§7 (dist: Β§f18.4mΒ§7) -> Β§bBlock Occlusion
[CC-Debug] Β§a[VISIBLE] Β§eminecraft:zombie #891Β§7 (dist: Β§f12.1mΒ§7) -> Β§bSightline (Eyes)
[CC-Debug] Β§a[VISIBLE] Β§eminecraft:wolf #204Β§7 (dist: Β§f6.2mΒ§7) -> Β§bBlacklist Immunity
[CC-Debug] Β§a[VISIBLE] Β§eminecraft:warden #102Β§7 (dist: Β§f34.8mΒ§7) -> Β§bBoss Immunity
-
Sightline (Head Top)β Visible via head top raycast sample. -
Sightline (Eyes)β Visible via anatomical eye sample. -
Sightline (Upper Torso)β Visible via upper chest sample. -
Sightline (Center)β Visible via midpoint sample. -
Sightline (Flank)β Visible via perimeter flank sample. -
Proximity Safety Bubbleβ Within min distance margin. -
Boss Immunityβ Protected by boss HP threshold or keyword. -
Blacklist Immunityβ Whitelisted in client or server blacklist. -
Player / Vehicle Immunityβ Local player, passenger, or mount. -
Glowing Immunityβ Entity has active glowing effect. -
Crowd / Mob Overdraw Occlusionβ Exceeded local cluster density cap. -
Block Occlusionβ All sightline samples occluded by solid blocks.
To maintain maximum FPS, debug string formatting and message generation are completely bypassed when debugMode is false:
public static boolean isDebugEnabled() {
return CameraCullingConfig.isDebugMode() || LOGGER.isDebugEnabled();
}
public static void logStateTransition(Entity entity, Vec3 camPos, boolean nowOccluded, String reason) {
if (!isDebugEnabled()) {
return; // Zero string formatting or object creation when disabled
}
...
}
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