Skip to content

👥 Mob-Mengen-Overdraw-Schutz (Minecraft 26.1.2) ​

Dichte Mob-Farmen, Dorfbewohner-Handelshallen und Tierzuchtgehege können extreme Framerate-Einbrüche verursachen, wenn Hunderte von Entitäten auf wenigen Blöcken zusammengedrängt sind. Während die Early-Z-Rasterung der GPU einfache Tiefentests übernimmt, überlastet das Extrahieren und Übertragen Hunderter Skeletthierarchien den CPU-Render-Dispatcher.

Camera Culling bietet ein optionales, abgesichertes Schutzsystem gegen Overdraw bei dichten Mob-Gruppen.


📋 Mob-Mengen-Schutz-Kurzübersicht ​

EigenschaftWert
KonfigurationsschlüsselcullEntitiesBehindEntities (Standard: false)
Cluster-DichteobergrenzemaxEntitiesPerCluster (Standard: 8 Mobs / 1,5 Blöcke)
Distanz-Fast-Fail$> 16.0$ Meter ($256.0\text{m}^2$)
Cluster-SuchradiustargetBox.inflate(1.5)
Ausgenommene EntitätenTransparente / dekorative Mobs (Vex, ArmorStand, ItemFrame, Slime, MagmaCube)

🛑 16-Meter-Distanz-Fast-Fail-Architektur ​

In weitläufigen offenen Landschaften mit verstreuten Kuhherden verursacht das Ausführen räumlicher Abfragen über alle Mobs unnötigen CPU-Overhead. In modernen Versionen von Camera Culling erzwingt das Mob-Overdraw-Culling einen sofortigen 16-Meter-Fast-Fail:

java
public static boolean isEntityOccludedByCloserEntities(Entity target, Level level, Vec3 camPos, AABB targetBox, double targetDistSq) {
    if (target == null || level == null || camPos == null) {
        return false;
    }

    // Fast-Fail: Overdraw-Culling nur innerhalb von 16 Metern anwenden
    if (targetDistSq > 256.0) {
        return false;
    }

    // 1. Cluster-Dichteobergrenze im engen 1,5-Block-Radius
    int maxCluster = CameraCullingConfig.getMaxEntitiesPerCluster();
    AABB clusterBox = targetBox.inflate(1.5);
    List<Entity> clusterEntities = level.getEntities(target, clusterBox, 
        e -> e instanceof LivingEntity && !isTransparentOrDecorative(e));
    
    if (clusterEntities.size() < maxCluster) {
        return false;
    }

    int closerInCluster = 0;
    for (Entity e : clusterEntities) {
        double distSq = camPos.distanceToSqr(e.getX(), e.getY(), e.getZ());
        if (distSq < targetDistSq) {
            closerInCluster++;
            if (closerInCluster >= maxCluster) {
                return true; // Wegen Cluster-Dichteobergrenze ausgeblendet
            }
        }
    }
    return false;
}

Vorteile: ​

  1. Kein Overhead auf offenem Feld: Weidende Mobs jenseits von 16 Metern überspringen Suchdurchläufe vollständig.
  2. Schutz in überfüllten Zuchtbecken: In 1x1- oder 2x2-Schreddern mit mehr als 50 Kühen oder Zombies wird das Rendering auf die vordersten 8 Entitäten begrenzt, wodurch Lag-Spitzen vermieden werden.

🔗 Verwandte Seiten ​

Official documentation & web portal for Dasik Igaijinn mods.