VulkanMod-legacy

VulkanMod-legacy

实验性Vulkan地形渲染器,用于Minecraft。通过将原版区块VBO镜像至Vulkan,并利用GPU外部内存互操作将结果合成回帧缓冲,从而替换OpenGL。

性能

VulkanMod112

Minecraft 1.12.2 使用 Vulkan 替代 OpenGL 来渲染世界——并附带一个充满各种可自定义特效的菜单,以及针对该版本真正决定帧率的设置选项。


简介

  • 更高的帧率,尤其是在高渲染距离下。此时最大的性能开销在于游戏计算哪些区块在屏幕内。
  • 每个特效都有独立滑块——波浪、反射、折射、泛光、环境光遮蔽、草叶摇摆、光线追踪阴影——全部通过菜单中的选项组合而成,而非从他人的压缩包中加载。所有特效默认关闭。
  • 动态光源。你手中的火把会照亮世界。掉落的火把和着火的生物也同样如此。
  • 1.12.2 从未给你的设置:实体渲染距离、动画纹理控制、后台帧率上限、最高 64 区块的渲染距离、按住缩放。
  • 遇到问题会自动回退。 无论是没有 Vulkan、驱动过旧,还是双显卡不协同工作——游戏都会像往常一样渲染,并告知你原因。

你的 mods 文件夹中需要 MixinBooter。 没有启动器会替你安装它。


你实际看到的画面

世界的方块由 Vulkan 绘制;生物、天空和界面仍由游戏本体绘制。两者共用同一个深度缓冲,因此一切都能完美对齐。你的游玩方式不会有任何改变——你看到的是同一个世界,只是由一条更新的渲染路径绘制,并附带了一个菜单。

通过 选项 → 视频设置 → VulkanMod112 设置… 打开,或按 F6 键。

每个设置都会分别告诉你它对你处理器、显卡和显存的消耗——因为这三者中你缺少哪一个,决定了某个设置是否能帮到你。如果你不想阅读这些信息,还有三个预设方案:稳定、均衡、性能。


特效

全部默认关闭。开启任何你喜欢的效果。

  • 水。 波浪会沿着波峰破碎天空的倒影;菲涅尔项能让水面拥有像真实水一样沿表面观察的效果;能反射岸边的景象;还有折射——水下的河床会随水面波动,而非像玻璃后的照片一样静止不动。
  • 光线追踪阴影。 来自太阳、你手中的火把、燃烧的生物以及墙上火把的逼真阴影。可通过滑块调节锐利或柔和程度。这需要支持光线追踪的显卡,且性能开销不小——它是这里唯一会明显消耗帧率的特效。
  • 泛光。 光线会从熔岩、火把、萤石以及任何发出光亮的模组方块中溢出——并且仅限于它们。阳光下雪地的屏幕亮度与熔岩相同,但并不会发光,因为发光是方块的属性,而非像素的属性。
  • 环境光遮蔽。 在角落、悬垂物下方、墙壁与地板相接处产生阴影。原版游戏仅根据面的朝向进行明暗处理,因此内部角落会与开阔墙壁一样明亮;此功能弥补了这一点。
  • 摇摆的草和花,它们会随着穿过田野的波浪倾斜,而非每株植物各自独立摆动。
  • 草丛作为灌木丛而非两块平板来照明。 在原版中,将火把举过草丛上方,除了旁边地面变亮外毫无效果。在这里,草丛本身会被照亮。
  • 圆形的太阳和月亮,大小和色温可通过滑块调节。月亮仍会保持其月相变化。
  • 帧平均化,这能将光线追踪阴影的颗粒感转化为柔和的边缘。

速度

  • 实体和方块实体渲染距离。 在刷怪塔、储藏室和繁忙的服务器中是最大的性能提升点——原版会根据物体大小逐个体判断是否渲染,对于大型生物来说,这远超你所能辨认的范围。
  • 动画纹理。 水、熔岩、火焰、传送门以及每个有动画的模组方块,无论是否在屏幕上,每 tick 都会上传一帧新画面。
  • 后台帧率上限。 当帧率限制设为“无限制”时,最小化的 Minecraft 否则会让你的显卡满载绘制无人可见的画面。
  • 渲染距离最高 64 个区块,适合想要测试自己电脑极限性能的用户。
  • 屏幕外区块预加载,世界不再只沿着你视线所及之处逐步生成。
  • 世界数据仅保留一份而非两份。 通常方块数据同时存在于游戏内存和本模组中。开启此选项可释放约 1GB 的显存。
  • 更干净的地面积雪。 远处的雪层不再与下方方块产生斑点状混叠。
  • 按住缩放,默认按键为 C,可重新绑定,并同步调整鼠标灵敏度。

坦诚的局限性

这不是 OptiFine 的无缝替代品,而且尚未完成。

  • 特效仅作用于世界方块。 生物、粒子和天空由游戏本体绘制,因此燃烧的苦力怕不会发光,生物不会在它所处的角落投射阴影,反射中也不会包含任何生物。
  • 屏幕反射仅反射屏幕上的内容——这是该技术在任何地方应用的极限。屏幕边缘之外的东西、被近处物体遮挡的东西都不会被反射。请将此功能视为未完成品。
  • 在高渲染距离下移动时,区块构建会占据大量帧时间。 静止不动比转动视角快得多,这是游戏本身的工作负载,而非本模组造成的。
  • OptiFine 和光影模组会替换本模组所替换的游戏相同部分。 若安装了其中之一,Vulkan 渲染器将不会加载,你仍会获得原版渲染器加上本模组的设置和速度选项。它们无法共享世界数据。
  • 不支持无缝连接纹理,也不支持光影包。

环境要求

  • 安装了 Forge 的 Minecraft 1.12.2
  • MixinBooter 10.7 或更新版本——必需依赖,且没有启动器会替你安装
  • Windows 或 Linux 上的 64 位 Vulkan 驱动。近几年的大多数驱动都符合要求;如果没有,模组会加载,在聊天栏中说明情况,然后让世界继续使用 OpenGL 渲染
  • 在双显卡机器上,两个部分必须使用同一张显卡。模组会在启动时检查,如果显卡不一致,则保持使用原版渲染

常见问题

这能提高我的帧率吗? 通常可以,尤其是在高渲染距离下。提升幅度更多取决于你眼前的场景,而非硬件配置——最大的优化在于游戏决定绘制哪些区块的方式,因此提升效果会随渲染距离增加而扩大。特效则另当别论:那些会消耗帧率,每个特效在开启前都会说明其代价。

我还需要 OptiFine 吗?能同时使用吗? 你可以同时安装两者,但不能同时由它们渲染。如果存在 OptiFine,Vulkan 渲染器会自行让位,你仍可使用本模组的菜单、速度设置和缩放功能。如果你想使用这里的特效,请在不安装 OptiFine 的情况下运行。

它能与我的整合包兼容吗? 它正是为此而构建的。它接触到的每个部分都有后备方案,任何它无法识别的内容都会留给游戏本体处理。如果某个模组以自定义方式渲染世界,本模组会检测到并让位,而不是与之冲突。

它能在多人游戏中运行吗? 可以。这里没有任何内容会发送到服务器,也无需在服务器上安装任何东西——它只改变你本机绘制已被告知内容的方式。

这算作弊吗? 缩放功能是唯一会被问到的问题,而它与 OptiFine 十年来一直提供的缩放功能相同。其他所有功能都只是改变世界的渲染方式,而非你能通过它看到什么。

我的游戏崩溃了 / 世界显示异常。需要你提供什么? 在设置界面开启 超级日志,将 logs/vulkanmod112-diagnostics.log 以及 logs/latest.log 一并发送给我。它会记录你的驱动、模组、所有活跃的代码路径以及帧时间开销分布——大多数问题都能从中找到答案。

安装后没有任何反应。 最常见的原因是缺少 MixinBooter。第二可能的原因是:存在 OptiFine 或光影模组,地形渲染器为其让位了。这两种情况都会在日志中说明,并且设置界面会告诉你当前是哪个渲染器在绘制。

会有更新版本 Minecraft 的对应版本吗? 计划支持 1.14.4 和 1.16.5,但不会很快推出——且没有具体日期,因为承诺日期无异于凭空捏造。1.12.2 优先:它受困于旧版渲染器,且有大量整合包也依赖于此,这正是本模组存在的全部原因。1.16.5 之后的版本完全没有计划;那些版本有其他选择。


许可证

GNU LGPL v3。