Iris Veil Compat

Iris Veil Compat

通过Iris着色器包桥接Veil着色器渲染,使得使用Veil着色器基础设施的模组 (如Create Aeronautics)在着色器包激活时能正确渲染

Iris Veil Compat

允许使用 Veil 渲染引擎的模组(如 机械动力:航空学)在使用 Iris 光影包时正确渲染。

原理

Veil 是一个用于 Minecraft 模组的高级渲染 SDK——它提供了其他模组可以构建的着色器基础设施。最著名的使用方是 机械动力:航空学,它使用 Veil 来渲染飞机机翼、玻璃面板、飞机尾迹和其他视觉效果。

问题在于:当你通过 Iris 启用光影包时,Veil 渲染的视觉效果完全绕过了光影包的渲染管线,导致它们出现破损或缺失的情况。

此模组会在运行时自动将 Veil 着色器代码合并到光影包的 gbuffer 程序中,因此基于 Veil 的视觉效果(如航空学的飞机)可以无缝集成到你的光影包中。

实现细节

该模组通过 mixin 拦截 Veil 的着色器编译过程,捕获并缓存处理后的着色器源代码。在渲染时,它使用 AST 级别的修补(由 glsl-transformer 提供支持)将 Veil 着色器逻辑注入到光影包的 gbuffer 顶点/片元程序中,并创建一个 Iris ShaderInstance 来替换原始的 Veil 着色器。

当你切换或重新加载光影包时,缓存会自动失效——无需重启游戏。

兼容性

  • Iris 1.8.1 及以上(必需)
  • Sodium
  • Veil 4.0.0 及以上
  • 已测试 机械动力:航空学(Spring、Laser)和 Sable

致谢

本项目使用 glsl-transformer 进行着色器 AST 操作。