🔌 API 與模組整合 (Minecraft 26.1.2)
Camera Culling 經過專業架構設計,能夠與主流客戶端渲染最佳化模組(如 Sodium、Iris、Canvas)以及增加自訂實體與方塊實體的內容模組實現 100% 無縫協同運行。
🤝 第三方渲染最佳化模組相容性
1. Sodium 與 Embeddium
- 靜態地形區塊:Sodium 負責深度最佳化 16x16 區塊網格生成與靜態方塊面的渲染管線。
- 動態實體與方塊:Camera Culling 專注於最佳化動態實體、箱子、告示牌與粒子系統。
- 相容性評級:100% 完美共存,兩者沒有任何重疊的 Mixin 注入點或渲染狀態衝突。
2. Iris 與光影渲染 (Shaders)
- 光影全域統一變數:光影包主要在提取出的幀緩衝區(FrameBuffer)上執行後處理。
- 幾何級遮擋收益:由於被 Camera Culling 剔除的實體被直接阻斷向 G-Buffer 提交幾何頂點,光影在實體密集區域的渲染幀率會得到數倍的大幅提升。
🛠️ Java API 程式化掛鉤
其他模組可以透過靜態門面類別直接查詢或整合 Camera Culling 的底層功能:
1. 查詢剔除引擎即時狀態
java
import net.vanillaoutsider.culling.CameraCullingClient;
boolean isEnabled = CameraCullingClient.isCullingEnabled();
long culledMobs = CameraCullingClient.getCulledEntitiesCount();
long renderedMobs = CameraCullingClient.getRenderedEntitiesCount();2. 程式化實體免疫白名單
java
import net.vanillaoutsider.culling.config.CameraCullingConfig;
// 將自訂隨從實體加入剔除白名單中
CameraCullingConfig.addClientBlacklist("mymod:custom_companion");3. 直接調用零堆分配視線驗證
java
import net.vanillaoutsider.culling.util.CullingRaycastHelper;
// 執行一次完全零堆記憶體開銷的視線檢測
boolean visible = CullingRaycastHelper.hasLineOfSight(level, camPos, targetX, targetY, targetZ);