Vulkan PostFX

Vulkan PostFX

实验性VPFX着色器包加载器与后处理框架,适用于Minecraft现代基于Vulkan的渲染路径。

装饰

Vulkan PostFX

Vulkan PostFX,也称为 VPFX,是一个面向 Minecraft 现代基于 Vulkan 的渲染路径的实验性 VPFX 着色器包加载器与后处理框架。

它允许外部 VPFX 着色器包添加屏幕空间视觉效果,例如色彩分级、暗角、色调映射、高光压缩、电影感观调整、基于深度的效果,以及早期的阴影深度实验。

该项目仍处于实验阶段,但它已经通过 Minecraft 的资源管线支持基于 ZIP 的 VPFX 着色器包。


从这里开始

为了获得最佳初次体验,请同时安装:

  • Vulkan PostFX — 加载器与运行时
  • VPFX Minimal Showcase — 官方最小示例包

Vulkan PostFX 不是完整的 Iris / OptiFine 替代品。

目标是围绕 Minecraft 的 Vulkan 渲染路径构建一套新的 VPFX 工作流,从可靠的外部包加载开始,并逐步迈向更强大的着色器运行时。


Vulkan PostFX 的功能

Vulkan PostFX 目前专注于:

  • 外部基于 ZIP 的 VPFX 着色器包加载
  • 基于图的后处理配置
  • 运行时资源包物化
  • 运行时资源包注入
  • 外部后处理链执行
  • 场景颜色采样
  • 场景深度捕获
  • 实验性阴影深度输入
  • 针对损坏包的诊断
  • 早期原生运行时实验

这意味着 Vulkan PostFX 已经在执行真实的外部 VPFX 包管线,而不仅仅是解析 ZIP 文件。

external ZIP shader pack
  -> VPFX manifest / graph validation
  -> runtime resource pack materialization
  -> Minecraft resource system injection
  -> external post-chain execution

当前功能

外部 VPFX 包加载

Vulkan PostFX 支持基于 ZIP 的 VPFX 着色器包,其中包含如下文件:

pack.json
post_effect/main.json
shaders/<path>.vsh
shaders/<path>.fsh

着色器引用使用以下格式:

<pack_id>:<path>

例如:

vpfx_minimal_showcase:composite/final

会解析为:

shaders/composite/final.vsh
shaders/composite/final.fsh

着色器路径不限于固定的 post/ 目录布局。


运行时命名空间重写

外部包会被重写到隔离的运行时命名空间中,以减少与内置资源及其他包的冲突。

这使得 VPFX 包在行为上更像外部视觉包,同时仍然通过 Minecraft 的资源系统进行路由。


运行时资源包注入

外部 ZIP 内容会在启动 / 资源重载期间被物化为运行时资源包,并注入到 Minecraft 的客户端资源系统中。

这是 VPFX 加载管线的核心部分之一。


外部后处理链执行

Vulkan PostFX 可以通过 Minecraft 的 ShaderManager 加载外部后处理链,并通过当前的 minecraft_postchain 后端执行它们。

当前稳定的执行路径仍然基于 Minecraft 的后处理链系统。


场景、深度和阴影输入

当前 VPFX 运行时输入包括:

minecraft:scene_color
vulkanpostfx:scene_depth
vulkanpostfx:shadow_depth
minecraft:main

这些输入用于屏幕空间效果、基于深度的实验,以及阴影深度调试。


失败诊断

当 VPFX 包加载或执行失败时,Vulkan PostFX 可以针对以下问题生成诊断信息:

  • 缺失的着色器文件
  • 无效的图目标
  • 采样器不匹配
  • 着色器路径错误
  • 外部目标问题
  • 管线创建失败

如果一个包损坏了,目标是让失败变得可理解,而不是静默失败。


实验性原生运行时

Vulkan PostFX 正在逐步超越 Minecraft 默认的后处理链后端。

当前实验性原生运行时的进展包括:

  • 原生运行时支持检查
  • 资源映射试运行
  • 同目标危险检测
  • 瞬态颜色目标规划
  • mainTarget -> transientColor 复制验证
  • 内置原生全屏直通绘制
  • 用于测试原生直通路径的可选诊断模式

当前实验性原生路径可以概括为:

minecraft:main
  -> transientColor
  -> builtin native fullscreen passthrough
  -> minecraft:main

这仍然是实验性的,并且需要主动启用。

用户 VPFX 着色器尚未完全以原生方式执行。


当前示例包

VPFX Minimal Showcase

官方最小示例包演示了:

  • VPFX pack.json
  • 基于图的后处理效果配置
  • 非 post/ 着色器路径
  • minecraft:scene_color 采样
  • minecraft:main 输出
  • 基础屏幕空间观感调整

它是测试 Vulkan PostFX 的推荐起点。


使用方法

1. 放置 VPFX 着色器包

将 VPFX 着色器包 ZIP 放入 Minecraft 实例的 shaderpacks 文件夹中。

对于开发运行环境,通常位于:

run/shaderpacks/

2. 选择活动包

编辑配置文件:

config/vulkanpostfx.json

对于开发运行环境,通常位于:

run/config/vulkanpostfx.json

示例:

{
  "active_pack_id": "vpfx_minimal_showcase"
}

3. 启动游戏

当客户端启动时,Vulkan PostFX 将会:

  • 扫描可用的 VPFX ZIP 包
  • 解析 pack.json
  • 选择活动包
  • 验证 VPFX 图
  • 物化运行时资源
  • 将运行时资源注入客户端资源系统
  • 尝试加载相应的外部后处理链

4. 切换效果

默认情况下:

F8

用于切换当前 VPFX 效果。

F9

用于切换实验性阴影深度调试视图。


架构概览

当前外部包路径:

[shaderpacks/*.zip]
        |
        v
[VPFX Manifest / Graph Parse]
        |
        v
[Active Pack Selection]
        |
        v
[Runtime Materialization]
        |
        v
[Runtime Resource Pack Injection]
        |
        v
[minecraft_postchain backend]
        |
        v
[External VPFX Post Chain Execution]

实验性原生运行时路径:

[VPFX Native Runtime]
        |
        v
[mainTarget -> transientColor]
        |
        v
[builtin native fullscreen passthrough]
        |
        v
[minecraft:main]

这是什么

Vulkan PostFX 目前最适合描述为:

  • 一个可工作的 VPFX ZIP 着色器包加载器
  • 一个基于后处理效果的执行后端
  • 一个实验性 Vulkan 着色器运行时基础
  • 一个早期原生运行时研究项目

它面向 Minecraft 的现代 Vulkan 渲染路径以及 VPFX 专用着色器包而设计。


这不是什么

Vulkan PostFX 尚不是可成熟直接替代 Iris 或 OptiFine 的解决方案。

大多数 Iris / OptiFine 着色器包无法在不进行移植的情况下直接使用。

传统着色器管线兼容性并不是最初开发阶段的当前重点。


当前限制

Vulkan PostFX 仍是 alpha 软件。

以下传统着色器管线组件尚未完全支持:

  • gbuffers_*
  • 完整的 shadow.* 兼容性
  • 完整的 composite.* 兼容性
  • 屏幕空间反射
  • 体积雾
  • 自然云渲染
  • 材质感知光照
  • 维度特定的着色器路由,例如 world1/ 和 world-1/
  • 直接的 Iris / OptiFine 着色器包兼容性

原生运行时限制

原生运行时目前仅支持实验性的内置全屏直通路径。

它尚不支持:

  • 用户着色器原生执行
  • 多通道原生执行
  • 自定义原生渲染目标
  • 原生场景深度输入
  • 原生阴影深度输入
  • 计算着色器
  • 原生体积光照
  • 原生云渲染
  • 光线追踪 / 路径追踪

开发路线图

推荐的开发方向是:

  1. 改进 VPFX 包创作工作流
  2. 稳定效果加载、切换、重载和回退行为
  3. 继续验证屏幕空间观感层
  4. 改进最终通道转译质量
  5. 实现用户着色器原生执行
  6. 引入原生多通道图
  7. 扩展深度和阴影支持
  8. 最终探索光照、云和轻量级光线追踪实验

设计理念

Vulkan PostFX 的核心思想并不是一次性把所有传统着色器包语义都强行塞进 Vulkan。

相反,该项目遵循分阶段方法:

make external VPFX packs actually run
  -> improve visual fidelity
  -> stabilize the runtime
  -> expand graph execution
  -> gradually bring back advanced visual features

换句话说:

首先建立一个真正可执行的外部着色器链,然后逐步带回重要的视觉逻辑。


说明

这是一个快速演进的实验性项目。

如果你正在寻找一个现成、完全兼容的 Iris / OptiFine 替代品,Vulkan PostFX 尚未达到那个程度。

但如果你关心:

  • Minecraft 的 Vulkan 渲染路径
  • VPFX 着色器包实验
  • 外部 ZIP 着色器包加载
  • 现代运行时资源包注入
  • 基于场景 / 深度 / 阴影的后处理效果
  • 实验性原生渲染图运行时开发

那么这个项目正是为此而构建的。


更新政策

Vulkan PostFX 预计会快速跟进 Minecraft 快照更新。

该项目可能每周更新,或者在 Minecraft 快照或 VPFX 运行时里程碑需要时更频繁地更新。