
Vulkan PostFX
Experimental VPFX shader pack loader and post-processing framework for Minecraft’s modern Vulkan-based rendering path.
Vulkan PostFX 1.5.0+mc1.21.4-2026-04-16
Список изменений
VulkanPostFX v1.5.0
Overview
This release marks the transition from a runtime validation prototype to a practical authoring-ready VPFX pipeline.
The VPFX Native Pack format is now capable of:
- Loading textures from ZIP packs
- Binding them into PostFX passes
- Sampling them reliably inside shaders
This version introduces the first reference texture workflow, enabling authors to build real post-processing effects (LUT, grain, vignette) without relying on legacy shader pipelines.
Key Features
1. VPFX Native Texture Binding (First Fully Working Version)
-
pack.jsonnow supports atexturessection -
Declared textures are:
- Extracted from ZIP packs
- Materialized into runtime resource packs
- Registered via
vpfx/textures.json - Bound into PostChain as
TextureInput
Supported features:
- Linear / nearest filtering
- Custom texture namespace isolation
- Stable runtime binding via logical texture names
2. Runtime Texture Materialization Pipeline
A complete pipeline has been implemented:
pack.json (textures)
→ runtime textures.json
→ runtime asset generation
→ TextureInput injection
→ shader sampler binding
This ensures:
- No direct ZIP streaming during rendering
- Full compatibility with Minecraft resource system
- Deterministic reload behavior
3. Reference Texture Pack (Authoring Baseline)
A new VPFX Reference Textures Pack v1 is introduced as a minimal working example.
It demonstrates:
- LUT-based color grading
- Film grain overlay
- Vignette masking
This pack is intended as:
- A starting point for shader authors
- A validation baseline for texture input behavior
- A canonical example for documentation
4. Stable External ZIP PostChain Execution
- External PostFX chains can now be loaded from ZIP packs
- Fully integrated with runtime resource reload
- Safe switching via debug key (F8)
5. Improved Debug & Logging
-
Texture materialization logs now include:
- Runtime path
- Resolution
- Filtering mode
-
PostChain selection and activation clearly logged
-
Runtime texture manifest generation is traceable
Fixes
- Fixed invalid fullscreen vertex shader (removed dependency on external vertex attributes)
- Fixed missing
texCoordvarying between vertex and fragment shaders - Fixed PostFX pipeline crashes caused by shader interface mismatch
- Fixed incorrect shader compatibility assumptions with Mojang PostPass system
- Fixed incorrect runtime capability expectations for shadow depth
- Improved safety of runtime texture binding path
Known Limitations
shadow_depthis currently a mirrored main depth buffer (not a true shadow map)- No multi-pass graph optimization yet
- No compute shader support
- Texture sampling is limited to PostFX passes (no material pipeline integration)
How to Use (Reference Texture Pack)
1. Install the Pack
Place the ZIP file into:
run/shaderpacks/
2. Set Active Pack
Edit the config file:
run/config/vulkanpostfx.json
Set:
{
"active_pack_id": "vpfx_reference_textures_v1"
}
3. Launch & Toggle
- Start the game
- Press F8 to enable/disable the VPFX PostChain
4. Expected Visual Result
- Slightly warmer color tone (LUT)
- Subtle film grain
- Mild vignette at screen edges
If you see:
- Strong color shift → LUT too aggressive
- Heavy dark corners → vignette too strong
→ Adjust shader parameters or replace textures.
Authoring Notes
Texture Declaration (pack.json)
"textures": {
"ColorLut": {
"path": "textures/lut/day_grade.png",
"filter": "linear"
}
}
Shader Usage
uniform sampler2D ColorLutSampler;
Sampler naming rule:
sampler_name + "Sampler"
Post Effect Input
{
"sampler_name": "ColorLut",
"texture": "ColorLut"
}
Breaking Changes
- Non-VPFX ZIP packs are no longer accepted
pack.jsonwithformat_versionis now required- Old compatibility paths (Iris / OptiFine style) are fully removed
Summary
v1.5.0 is the first version where:
- VPFX is no longer just a loader
- It becomes a usable authoring platform
This release establishes:
- A stable texture pipeline
- A reproducible runtime model
- A clear path toward advanced PostFX features
Next focus:
- Multi-pass graph expansion
- Proper shadow map support
- Built-in uniform system
- Authoring documentation (Wiki)

