彩色玻璃着色器

彩色玻璃着色器

OptiFine格式的着色器包,适用于Minecraft原生Vulkan渲染器

杂项

Vitrail 不是一个着色器包。它是让您已有的着色器包能在 Vulkan 上运行的工具。

Minecraft 在 OpenGL 之外还附带了一个原生的 Vulkan 渲染器。目前存在的每个着色器包都是为 OpenGL 编写的,它们都无法在 Vulkan 上运行。

Vitrail 让它们得以运行。它会从 shaderpacks/ 读取未经修改的 OptiFine 格式的包,在包加载时翻译其 GLSL 一次,并在 Vulkan 后端上运行其帧。到达驱动程序的是 SPIR-V:一个在加载时运行的编译器,而不是每帧运行的垫片。

安装之前请注意:这是一个 alpha 版本,且是个人实验项目

Vulkan 后端本身被游戏标记为实验性:您需要开启的设置显示为 "Prefer Vulkan (Experimental)"。Vitrail 仍处于早期阶段:它能运行,在兼容处表现良好,但尚未完成。

世界渲染会经过您的着色器包。有几类几何体尚未支持,其中一些并非缺失而是渲染错误,在某些包上,这会在您加载世界的那一刻显现。哪些支持哪些不支持会随版本发布而变化,因此包呈现的画面也会随版本更新而改变。

如果您现在需要的是成品级画面,请在 OpenGL 后端上使用 Iris 代替。 它在这方面做得很好,也是此引擎的对照参考。Vitrail 适合那些想要启用 Vulkan 后端,并愿意为此暂时牺牲画面质量的人。

安装

Vitrail 需要 mods/ 目录下同时存在 Sodium 和 Chloride,并且游戏需切换到 Vulkan 后端,这需要您手动开启。此外,Chloride 的某些设置也必须关闭,否则方块和怪物会在调用您的着色器包之前就消失不见;Vitrail 会在启动时于日志中列出这些设置及其推荐值。

每个加载器对应一个 jar 文件,内核相同:在 NeoForge 上使用 vitrail-neoforge,在 Fabric 上使用 vitrail-fabric。Fabric 还需要 Fabric API,而 NeoForge 没有对应物也不需要。

具体步骤请参阅 GitHub 上的安装指南,其中也包含了当游戏毫无反应时该如何排查。仅客户端:服务器端无需安装任何内容,也不要同时运行其他着色器引擎。

链接与致谢

源代码、目前支持哪些包,以及实际测试过的包列表,均可在 Vitrail-Shaders 找到。

采用 LGPL-3.0-only 许可证。Vitrail 在相同许可证下复用了 Iris 的代码,Iris 是当前着色器包所针对的实现;具体采用了哪些文件已在项目的 NOTICE 中逐文件记录。