Skip to content

🏛️ 架構與 Mixin 技術參考 (Minecraft 26.3) ​

Camera Culling 採用嚴苛的 “單一職責” (1 File, 1 Purpose) 架構理念,專門針對非混淆的現代 Minecraft 26.3 客戶端渲染引擎設計了零額外開銷的輕量 Mixin 掛鉤。


📋 Mixin 注入點技術帳本 ​

Mixin 注入類別目標 Minecraft 類別攔截方法與注入點功能說明
EntityRendererMixinnet.minecraft.client.renderer.entity.EntityRenderershouldRender @At("HEAD")多點射線遮擋剔除與生物集群密度判定
BlockEntityRenderDispatcherMixinnet.minecraft.client.renderer.blockentity.BlockEntityRenderDispatchertryExtractRenderState @At("HEAD")6面完全密閉與射線方塊實體遮擋剔除
BlockEntityRenderDispatcherMixinnet.minecraft.client.renderer.blockentity.BlockEntityRenderDispatchertryExtractRenderState @At("RETURN")雙面告示牌反面與空白文本剔除
LivingEntityRendererMixinnet.minecraft.client.renderer.entity.LivingEntityRenderersubmit @At("HEAD") 與 @At("RETURN")設定與重設 OpenGL 紋理 Mipmap 偏移量 (GL_TEXTURE_LOD_BIAS)
SingleQuadParticleMixinnet.minecraft.client.particle.SingleQuadParticleextract @At("HEAD")粒子面片針對實心幾何體的遮擋剔除
TextureAtlasMixinnet.minecraft.client.renderer.texture.TextureAtlascycleAnimationFrames @At("HEAD")抑制單人暫停及功能表下的非必要紋理上傳

🌳 原始碼套件結構層次 ​

text
net.vanillaoutsider.culling
├── CameraCullingClient.java               (模組客戶端初始化入口與統計計數器)
├── ModVersionGuard.java                   (Knot 類別載入器版本完整性校驗防護)
│
├── command
│   └── CameraCullingCommand.java          (FabricClientCommandSource Brigadier 指令樹)
│
├── config
│   ├── CameraCullingConfig.java           (客戶端與伺服器端設定的 JSON 序列化管理)
│   ├── CullingLevel.java                  (LOW, MEDIUM, HIGH, SUPER 強度設定檔列舉)
│   ├── ModMenuIntegration.java            (ModMenu API 入口點與延遲 YACL 畫面工廠)
│   └── YaclScreenHelper.java              (YetAnotherConfigLib v3 圖形介面構建器)
│
├── mixin
│   ├── BlockEntityRenderDispatcherMixin.java
│   ├── EntityRendererMixin.java
│   ├── LivingEntityRendererMixin.java
│   ├── SingleQuadParticleMixin.java
│   └── TextureAtlasMixin.java
│
└── util
    ├── AnimationCullingHelper.java        (暫停與功能表狀態下的紋理圖集凍結判定)
    ├── BlacklistHelper.java               (客戶端與伺服器端生物免疫黑名單判定)
    ├── BossDetectionHelper.java           (動態生命值閾值與名稱關鍵字啟發式判定)
    ├── CullingDiagnosticsHelper.java      (即時聊天欄與日誌的狀態轉換追蹤)
    ├── CullingRaycastHelper.java          (零堆分配原生射線投射與時間遲滯計算)
    ├── ParticleCullingHelper.java         (4公尺安全氣泡與視覺裁剪射線投射)
    ├── SignTextCullingHelper.java         (雙面告示牌朝向法向量點積數學計算)
    └── TextureLodHelper.java              (3級 OpenGL Mipmap LOD 偏移量計算)

🔗 相關頁面 ​

Official documentation & web portal for Dasik Igaijinn mods.