VulkanModNeoForge

VulkanModNeoForge

《我的世界 NeoForge 的 Vulkan 渲染器。将 OpenGL 渲染器替换为 Vulkan 渲染器。》

优化

VulkanMod NeoForge 是一款客户端 Minecraft 模组,将游戏默认的 OpenGL 渲染管线替换为真正原生的 Vulkan 实现。它是原版 VulkanMod(一款 Fabric/Quilt 模组)对 NeoForge 模组加载器的移植版本,专门支持 Minecraft 1.21。

与 Zink 等封装方案不同,VulkanMod 并非简单地在 Vulkan 上覆盖 OpenGL,而是实时拦截 Minecraft 的 OpenGL 调用并直接翻译为 Vulkan 操作,提供了真正的渲染引擎替换,充分利用现代 GPU 特性并降低 CPU 开销。

该模组的配置界面和游戏内提示信息已完整汉化,方便中文玩家调整设置和理解各项功能。特别感谢 VulkanMod Translations 项目(作者 scully06)提供的汉化资源包。

原版 VulkanMod 是一个实验性项目,为 Minecraft Java 版引入了全新的基于 Vulkan 的体素渲染引擎,旨在替代默认的 OpenGL 3.2 渲染器以提升性能。VulkanMod NeoForge 将此引擎带到了 NeoForge 生态。

主要特性

  • 完整的渲染引擎替换 – 实时拦截 OpenGL 调用并转换为 Vulkan 操作
  • 真正的原生 Vulkan – 非封装,直接使用 Vulkan API 进行渲染
  • 目标平台 – Minecraft 1.21 搭配 NeoForge 21.0.167+
  • 当前版本 – 0.5.1-dev+3
  • 开源协议 – LGPL-3.0
  • GPU 要求 – 支持 Vulkan 1.2 或更高版本
  • 中文汉化 – 配置界面和 UI 已完整翻译为中文

技术亮点

  • 直接的 GL 类替换 – 在字节码层面直接替换 Minecraft 的 OpenGL 类(如 GL11、GL14、GL15 等),将所有渲染调用重定向至 Vulkan 后端,避免性能损耗严重的拦截层。
  • Vulkan 实例、设备和交换链生命周期管理
  • 通过 Vulkan Memory Allocator (VMA) 进行内存分配
  • 通过 ShaderC 实现 GLSL 到 SPIR-V 的实时着色器转换
  • 基于区块的地形渲染优化
  • 多重区块剔除算法
  • 间接绘制模式以减少 CPU 开销
  • 原生 Wayland 支持
  • GPU 选择器

VKNConfig —— 启动时配置

VKNConfig 是一个在模组完全初始化之前就生效的底层配置系统。它与游戏内的图形设置(保存在 vulkanmod_settings.json 中)不同,VKNConfig 控制的是影响模组加载过程本身以及模组与 NeoForge 交互方式的启动时行为。

配置文件位于 config/vkn-boot-config.json,包含以下三个关键选项:

  • forceReapplyGLMixins:强制重新应用 GL Mixin。可用于解决模组兼容性问题或进行调试。
  • useVulkanTransformers:启用或禁用 Vulkan 转换器管线。禁用可能会降低性能,但有助于解决某些崩溃问题。
  • hideVulkanLibs:在游戏内的模组列表中隐藏内部的 Vulkan 库模块,保持模组列表整洁。

这些设置在游戏启动时读取。如果配置文件不存在,会自动创建并填入默认值。当 hideVulkanLibs 选项启用时,模组会通过反射将“vulkan‑libs”相关的模组条目从列表中移除,使其不在 UI 中显示。

系统边界

负责管理:

  • Vulkan 实例、设备和交换链生命周期
  • 通过 VMA 进行内存分配
  • GLSL 到 SPIR-V 的着色器转换
  • 基于区块的地形渲染优化
  • 面向 GUI 和后期处理的 OpenGL 兼容层

不负责管理:

  • Minecraft 游戏逻辑、Tick 或实体 AI
  • 网络或服务端操作
  • 与渲染无关的 NeoForge 模组总线事件

重要注意事项

  • 本模组仅限客户端使用。
  • 直接调用 OpenGL 的模组可能导致游戏崩溃。
  • 着色器支持仍在开发中。
  • 这是对渲染引擎的完全重写,而非兼容层。