← Назад к ресурсам

Vulkan PostFX

Experimental VPFX shader pack loader and post-processing framework for Minecraft’s modern Vulkan-based rendering path.

Modrinth decoration game-mechanics optimization

Описание

# Vulkan PostFX **Vulkan PostFX**, also known as **VPFX**, is an experimental VPFX shader pack loader and post-processing framework for Minecraft’s modern Vulkan-based rendering path. It allows external **VPFX shader packs** to add screen-space visual effects such as color grading, vignette, tone mapping, highlight compression, cinematic look adjustments, depth-based effects, and early shadow-depth experiments. This project is still experimental, but it already supports ZIP-based VPFX shader packs through Minecraft’s resource pipeline. --- ## Start here For the best first experience, install both: * **Vulkan PostFX** — the loader and runtime * **VPFX Minimal Showcase** — the official minimal example pack Vulkan PostFX is **not** a full Iris / OptiFine replacement. The goal is to build a new VPFX workflow for Minecraft’s Vulkan rendering path, starting from reliable external pack loading and gradually moving toward a more capable shader runtime. --- ## What Vulkan PostFX does Vulkan PostFX currently focuses on: * external ZIP-based VPFX shader pack loading * graph-based post-processing configuration * runtime resource pack materialization * runtime resource pack injection * external post-chain execution * scene color sampling * scene depth capture * experimental shadow depth input * diagnostics for broken packs * early native runtime experiments This means Vulkan PostFX is already executing a real external VPFX pack pipeline, not just parsing ZIP files. ```text external ZIP shader pack -> VPFX manifest / graph validation -> runtime resource pack materialization -> Minecraft resource system injection -> external post-chain execution ``` --- ## Current features ### External VPFX pack loading Vulkan PostFX supports ZIP-based VPFX shader packs containing files such as: ```text pack.json post_effect/main.json shaders/.vsh shaders/.fsh ``` Shader references use the following format: ```text : ``` For example: ```text vpfx_minimal_showcase:composite/final ``` which resolves to: ```text shaders/composite/final.vsh shaders/composite/final.fsh ``` Shader paths are not limited to a fixed `post/` directory layout. --- ### Runtime namespace rewriting External packs are rewritten into isolated runtime namespaces to reduce conflicts with built-in resources and other packs. This allows VPFX packs to behave more like external visual packages while still being routed through Minecraft’s resource system. --- ### Runtime resource pack injection External ZIP contents are materialized into runtime resource packs during startup / resource reload and injected into Minecraft’s client resource system. This is one of the core parts of the VPFX loading pipeline. --- ### External post-chain execution Vulkan PostFX can load external post chains through Minecraft’s `ShaderManager` and execute them through the current `minecraft_postchain` backend. The current stable execution path is still based on Minecraft’s post-chain system. --- ### Scene, depth, and shadow inputs Current VPFX runtime inputs include: ```text minecraft:scene_color vulkanpostfx:scene_depth vulkanpostfx:shadow_depth minecraft:main ``` These inputs are used for screen-space effects, depth-based experiments, and shadow-depth debugging. --- ### Failure diagnostics When a VPFX pack fails to load or execute, Vulkan PostFX can generate diagnostic information for issues such as: * missing shader files * invalid graph targets * sampler mismatches * shader path errors * external target problems * pipeline creation failures If a pack is broken, the goal is to make the failure understandable instead of silently failing. --- ## Experimental native runtime Vulkan PostFX is gradually moving beyond Minecraft’s default post-chain backend. Current experimental native runtime progress includes: * native runtime support checks * resource mapping dry-runs * same-target hazard detection * transient color target planning * `mainTarget -> transientColor` copy validation * builtin native fullscreen passthrough draw * opt-in diagnostic mode for testing the native passthrough path The current experimental native path can be summarized as: ```text minecraft:main -> transientColor -> builtin native fullscreen passthrough -> minecraft:main ``` This is still experimental and opt-in. User VPFX shaders are **not** fully executed natively yet. --- ## Current sample pack ### VPFX Minimal Showcase The official minimal example pack demonstrates: * VPFX `pack.json` * graph-based post-effect configuration * non-`post/` shader paths * `minecraft:scene_color` sampling * `minecraft:main` output * basic screen-space look adjustment It is the recommended starting point for testing Vulkan PostFX. --- ## Usage ### 1. Place a VPFX shader pack Put the VPFX shader pack ZIP into the `shaderpacks` folder of your Minecraft instance. For development runs, this is usually: ```text run/shaderpacks/ ``` --- ### 2. Select the active pack Edit the config file: ```text config/vulkanpostfx.json ``` For development runs, this is usually: ```text run/config/vulkanpostfx.json ``` Example: ```json { "active_pack_id": "vpfx_minimal_showcase" } ``` --- ### 3. Launch the game When the client starts, Vulkan PostFX will: * scan available VPFX ZIP packs * parse `pack.json` * select the active pack * validate the VPFX graph * materialize runtime resources * inject runtime resources into the client resource system * attempt to load the corresponding external post chain --- ### 4. Toggle effects By default: ```text F8 ``` toggles the current VPFX effect. ```text F9 ``` toggles the experimental shadow depth debug view. --- ## Architecture overview Current external pack path: ```text [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] ``` Experimental native runtime path: ```text [VPFX Native Runtime] | v [mainTarget -> transientColor] | v [builtin native fullscreen passthrough] | v [minecraft:main] ``` --- ## What this is Vulkan PostFX is currently best described as: * a working VPFX ZIP shader pack loader * a post-effect based execution backend * an experimental Vulkan shader runtime foundation * an early native runtime research project It is designed for Minecraft’s modern Vulkan rendering path and for VPFX-specific shader packs. --- ## What this is not Vulkan PostFX is **not** yet a mature drop-in replacement for Iris or OptiFine. Most Iris / OptiFine shader packs cannot be used directly without porting. Traditional shader pipeline compatibility is not the current focus of the first development stages. --- ## Current limitations Vulkan PostFX is still alpha software. The following traditional shader pipeline components are not fully supported yet: * `gbuffers_*` * full `shadow.*` compatibility * full `composite.*` compatibility * screen-space reflections * volumetric fog * natural cloud rendering * material-aware lighting * dimension-specific shader routing such as `world1/` and `world-1/` * direct Iris / OptiFine shader pack compatibility --- ## Native runtime limitations The native runtime currently supports only an experimental builtin fullscreen passthrough path. It does **not** yet support: * user shader native execution * multi-pass native execution * custom native render targets * native scene depth input * native shadow depth input * compute shaders * native volumetric lighting * native cloud rendering * RT / path tracing --- ## Design philosophy The core idea of Vulkan PostFX is not to force every traditional shader-pack semantic into Vulkan at once. Instead, the project follows a staged approach: ```text make external VPFX packs actually run -> improve visual fidelity -> stabilize the runtime -> expand graph execution -> gradually bring back advanced visual features ``` In other words: **first establish a truly executable external shader chain, then gradually bring back the visual logic that matters.** --- ## Notes This is a fast-evolving experimental project. If you are looking for a ready-made, fully compatible Iris / OptiFine replacement, Vulkan PostFX is not there yet. But if you care about: * Minecraft’s Vulkan rendering path * VPFX shader pack experiments * external ZIP shader pack loading * modern runtime resource pack injection * scene / depth / shadow based post effects * experimental native render graph runtime development then this project is built exactly for that. --- ## Update policy Vulkan PostFX is expected to follow Minecraft snapshot updates quickly. The project may update weekly, or more often when Minecraft snapshots or VPFX runtime milestones require it.