Skip to content

26.2 Architecture and Mixins

Dasik edited this page Aug 20, 2026 · 1 revision

🏛️ Architecture & Mixin Technical Reference (Minecraft 26.2)

Camera Culling is engineered with a strict "1 File, 1 Purpose" architecture and zero-overhead Mixin hooks designed specifically for the non-obfuscated Minecraft 26.2 rendering engine.


📋 Mixin Target Ledger

Mixin Class Target Minecraft Class Target Method & Injection Point Function
EntityRendererMixin net.minecraft.client.renderer.entity.EntityRenderer shouldRender @At("HEAD") Multi-point raycast occlusion culling & crowd density checks
BlockEntityRenderDispatcherMixin net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher tryExtractRenderState @At("HEAD") 6-sided enclosure & raycast block entity culling
BlockEntityRenderDispatcherMixin net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher tryExtractRenderState @At("RETURN") 2-sided sign back-face & blank text culling
LivingEntityRendererMixin net.minecraft.client.renderer.entity.LivingEntityRenderer submit @At("HEAD") & @At("RETURN") Applies & resets OpenGL Texture LOD mipmap bias (GL_TEXTURE_LOD_BIAS)
SingleQuadParticleMixin net.minecraft.client.particle.SingleQuadParticle extract @At("HEAD") QuadParticle occlusion culling against solid geometry
TextureAtlasMixin net.minecraft.client.renderer.texture.TextureAtlas cycleAnimationFrames @At("HEAD") Suppresses off-screen animated texture uploads

🌳 Package Hierarchy

net.vanillaoutsider.culling
├── CameraCullingClient.java               (ClientModInitializer & stats counters)
├── ModVersionGuard.java                   (Knot classloader version integrity guard)
│
├── command
│   └── CameraCullingCommand.java          (FabricClientCommandSource Brigadier syntax tree)
│
├── config
│   ├── CameraCullingConfig.java           (JSON serialization for client & server configs)
│   ├── CullingLevel.java                  (LOW, MEDIUM, HIGH, SUPER intensity profiles)
│   ├── ModMenuIntegration.java            (ModMenu API entrypoint with deferred YACL factory)
│   └── YaclScreenHelper.java              (YetAnotherConfigLib v3 screen builder)
│
├── mixin
│   ├── BlockEntityRenderDispatcherMixin.java
│   ├── EntityRendererMixin.java
│   ├── LivingEntityRendererMixin.java
│   ├── SingleQuadParticleMixin.java
│   └── TextureAtlasMixin.java
│
└── util
    ├── AnimationCullingHelper.java        (Pauses atlas upload when paused/in menus)
    ├── BlacklistHelper.java               (Client & server entity blacklist evaluation)
    ├── BossDetectionHelper.java           (Dynamic HP thresholding & name heuristics)
    ├── CullingDiagnosticsHelper.java      (Real-time chat & log state transition tracing)
    ├── CullingRaycastHelper.java          (Zero-allocation primitive raycasting & hysteresis)
    ├── ParticleCullingHelper.java         (4m proximity bubble & visual clip raycasting)
    ├── SignTextCullingHelper.java         (Vector normal dot products for 2-sided signs)
    └── TextureLodHelper.java              (3-tier OpenGL mipmap LOD bias calculation)

🔗 Related Pages

Clone this wiki locally