Tags
Creators
Details
1.5.0+mc1.21.4-2026-04-16
Compatibility
Changes
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)
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| VPFX_Reference_Textures_Pack_v1_Skeleton.zip | Unknown | 344.06 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TsmOcOBN:QeZefHVl"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TsmOcOBN:QeZefHVl"
}

