Iris(着色器)mixin 分组(44 个)

概览

属性 值
源文件位置 src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/
文件数 44(顶层 38 + startup 6)
Phase EARLY
主题 Iris 光影着色器管线
modid 无 —— assets/iris 是资源域,不是 modid

Iris 以库的形式内嵌在 Angelica jar 中。src/main/java/net/coderbot/iris/ 有 381 个文件,是本仓最大的单一子系统。

顶层 38 个

渲染器与模型(22)

MixinRender、MixinRenderBiped、MixinRenderBlocks_FaceNormals、MixinRenderBlocks_FallingShading、MixinRenderBlocks_ItemId、MixinRenderDragon、MixinRenderEndPortal、MixinRenderEntityFlame、MixinRenderFallingBlock、MixinRenderGlobal、MixinRenderHorse、MixinRenderItem、MixinRenderManager、MixinRenderManagerDAPI、MixinRenderNameTag、MixinRenderPlayerArmor、MixinRendererLivingEntity、MixinModelBiped、MixinEntityRenderer、MixinEffectRenderer_Particles、MixinEntityPickupFX、MixinTileEntityRendererDispatcher

物品与手持物(6)

MixinItem、MixinItemRenderer、MixinItemRendererBackhand、MixinItemRenderer_ItemId、MixinHeldItemGlintEdges、MixinDroppedItemGlintEdges

MixinItemRendererBackhand 是针对 Backhand 的补丁 —— 1.7.10 上 Backhand 把物品渲染到副手,Iris 的变换器需要知道这件事。

Accessor(2)

类 用途
AccessorEntityHorse 访问 EntityHorse 私有字段
AccessorModelBox 访问 ModelBox 私有字段

用 Mixin 的 @Accessor 替代 AT,Iris 里只有这 2 个。

其余(8)

MixinFramebuffer、MixinGlProgram、MixinGuiIngameForge、MixinLocale、MixinNetHandlerPlayClient_NbtRemesh、MixinTextureManager_ReloadCount、MixinTileEntityBeaconRenderer、MixinWorldNbtCache

类 作用
MixinNetHandlerPlayClient_NbtRemesh 收到区块 NBT 时触发区块网格重建
MixinWorldNbtCache World 的 NBT 缓存
MixinTextureManager_ReloadCount 纹理重载计数
MixinTileEntityBeaconRenderer 信标光柱渲染
MixinLocale 语言文本替换

startup 子包(6)

early/shaders/startup/ 的 6 个 mixin 处理着色器启动期的类加载与 GL 上下文准备。Iris.warmupShaderTransforms() 在 ClientProxy.java:145 于 preInit 阶段被调用(enableIris 为 true 时),早于 Iris 的 fmlInitEvent。

与 Iris 启用开关的关系

整套 44 个 mixin 受 AngelicaConfig.enableIris 控制(默认 true,RequiresMcRestart)。关闭时:

  • ClientProxy.java:143-146 不调 IrisGLSMBridge.installImmediateExtendedHandler() 与 Iris.warmupShaderTransforms()
  • ClientProxy.java:168-175 不注册 IrisGLSMBridge / IrisDebugScreenHandler,不调 Iris.INSTANCE.fmlInitEvent()
  • Iris 的 3 个按键绑定也不注册(见 KeyBinding 注册总表)

资源域

Iris 使用 assets/iris/ 资源域,但该域下没有 lang 目录(0 个 .lang 文件)。Iris 的语言键(包括 key.category.iris.keybinds)实际写在 assets/angelica/lang/ 下 —— 见 资源域与语言文件。

相关条目