{"id":168056,"date":"2026-06-09T22:24:39","date_gmt":"2026-06-09T19:24:39","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/"},"modified":"2026-06-09T22:24:39","modified_gmt":"2026-06-09T19:24:39","slug":"vulkan-postfx","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/","title":{"rendered":"Vulkan PostFX"},"content":{"rendered":"<p># Vulkan PostFX<\/p>\n<p>**Vulkan PostFX is a lightweight post-processing shader pack loader for Minecraft&#8217;s Vulkan renderer.**<\/p>\n<p>It allows external **VPFX shader packs** to add screen-space visual effects such as color grading, vignette, tone mapping, highlight compression, and cinematic look adjustments.<\/p>\n<p>## Start here<\/p>\n<p>For the best first experience, install:<\/p>\n<p>&#8211; **Vulkan PostFX** \u2014 the loader<br \/>\n&#8211; **VerdantVK** \u2014 the official example shader pack<\/p>\n<p>Vulkan PostFX is still experimental, but it can already load external ZIP-based VPFX packs through Minecraft&#8217;s resource pipeline.<\/p>\n<p>The current goal is not to fully replicate Iris \/ OptiFine pipeline compatibility in one step.<\/p>\n<p>&#8212;<\/p>\n<p>## Current Progress<\/p>\n<p>The project already supports the following core features:<\/p>\n<p>&#8211; scanning external ZIP shader packs under `run\/shaderpacks\/`<br \/>\n&#8211; reading and parsing `pack.json` inside shader packs<br \/>\n&#8211; explicitly selecting the active pack via `active_pack_id`<br \/>\n&#8211; materializing external ZIP packs into runtime resource packs<br \/>\n&#8211; injecting external `post_effect\/main.json` into the game resource pipeline<br \/>\n&#8211; actually loading external post chains through `ShaderManager`<br \/>\n&#8211; an **initial translated wrapper** of **Verdant Light 1.3.0**<\/p>\n<p>This means the project is no longer at the stage of merely \u201creading ZIP files\u201d or \u201cpretending to load them.\u201d It already implements:<\/p>\n<p>**external ZIP shader pack -> runtime resource pack -> external post chain execution**<\/p>\n<p>&#8212;<\/p>\n<p>## Project Positioning<\/p>\n<p>### What this is<br \/>\nThis is an experimental shader pack loader for the **modern Minecraft Vulkan backend**.<\/p>\n<p>### What this is not<br \/>\nThis is **not** yet a mature drop-in replacement for Iris \/ OptiFine with full shader semantic compatibility.<\/p>\n<p>A more accurate description of the current state would be:<\/p>\n<p>&#8211; a **ZIP shader pack loader prototype**<br \/>\n&#8211; a **post-effect-driven shader translator**<br \/>\n&#8211; a **working proof of concept for the Vulkan path**<\/p>\n<p>&#8212;<\/p>\n<p>## Implemented Features<\/p>\n<p>### 1. External Pack Loading<br \/>\nSupports loading the following from ZIP shader packs:<\/p>\n<p>&#8211; `pack.json`<br \/>\n&#8211; `post_effect\/main.json`<br \/>\n&#8211; `shaders\/post\/*.vsh`<br \/>\n&#8211; `shaders\/post\/*.fsh`<\/p>\n<p>### 2. Runtime Namespace Rewriting<br \/>\nExternal packs are rewritten into isolated runtime namespaces to avoid conflicts with built-in resources.<\/p>\n<p>### 3. Runtime Resource Pack Injection<br \/>\nExternal ZIP contents are materialized into runtime resource packs during startup \/ resource reload and injected into the client resource system.<\/p>\n<p>### 4. External Post Chain Execution<br \/>\nThe project can now confirm that external post chains are actually found and executed, rather than simply falling back to built-in debug effects.<\/p>\n<p>### 5. Initial Shader Porting<br \/>\nIt is already possible to extract and translate the **final look layer** from traditional shader packs into a runnable Vulkan post-effect version.<\/p>\n<p>&#8212;<\/p>\n<p>## Current Limitations<\/p>\n<p>The current version still has clear boundaries. Please keep them in mind before use.<\/p>\n<p>### Not fully supported yet<br \/>\nThe following traditional shader pipeline components are not fully supported at this stage:<\/p>\n<p>&#8211; `gbuffers_*`<br \/>\n&#8211; `shadow.*`<br \/>\n&#8211; `composite.*`<br \/>\n&#8211; screen-space reflections (SSR)<br \/>\n&#8211; volumetric fog<br \/>\n&#8211; depth-driven material separation<br \/>\n&#8211; full dimension-specific shader routing (such as `world1\/`, `world-1\/`)<\/p>\n<p>### Currently suitable for porting<br \/>\nThe most suitable parts to port right now are:<\/p>\n<p>&#8211; `final.fsh`<br \/>\n&#8211; final grading<br \/>\n&#8211; vignette<br \/>\n&#8211; highlight compression<br \/>\n&#8211; tonemapping<br \/>\n&#8211; screen-space look layers<\/p>\n<p>### Known Issues<br \/>\n&#8211; Some translated packs still have **brightness mismatch**<br \/>\n&#8211; Some color tones may still deviate from the original pack\u2019s intended style<br \/>\n&#8211; runtime resource pack metadata is still being refined and standardized<br \/>\n&#8211; not every original shader pack can simply be used as-is<\/p>\n<p>&#8212;<\/p>\n<p>## Current Available Sample<\/p>\n<p>### Verdant Light 1.3.0 Vulkan Wrapper<br \/>\nThe repository already includes an **initial Vulkan-translated version** based on **Verdant Light 1.3.0**.<\/p>\n<p>This is not a full lossless recreation of the original shader pack. Instead, it:<\/p>\n<p>&#8211; keeps the original pack resources as reference material<br \/>\n&#8211; extracts the most portable final look layer<br \/>\n&#8211; runs the external ZIP pack through the current loader\u2019s real post-effect pipeline<\/p>\n<p>&#8212;<\/p>\n<p>## Usage<\/p>\n<p>### 1. Place a shader pack<br \/>\nPut the ZIP shader pack into:<\/p>\n<p>`run\/shaderpacks\/`<\/p>\n<p>**_I have uploaded the template pack on the detail page._**<\/p>\n<p>### 2. Select the active pack<br \/>\nEdit the config file:<\/p>\n<p>`run\/config\/vulkanpostfx.json`<\/p>\n<p>Example:<\/p>\n<p>&#8220;`json<br \/>\n{<br \/>\n  &#8220;active_pack_id&#8221;: &#8220;verdantlight130vulkan&#8221;<br \/>\n}<br \/>\n&#8220;&#8220;<\/p>\n<p>### 3. Launch the game<\/p>\n<p>When the client starts, the loader will:<\/p>\n<p>* scan ZIP files<br \/>\n* parse the active pack<br \/>\n* materialize runtime resources<br \/>\n* inject them into the client resource system<br \/>\n* attempt to load the corresponding external post chain<\/p>\n<p>### 4. Toggle the debug \/ external effect<\/p>\n<p>By default, press `F8` to toggle the current debug \/ external post-effect.<\/p>\n<p>&#8212;<\/p>\n<p>## Architecture Overview<\/p>\n<p>&#8220;`text<br \/>\n[shaderpacks\/*.zip]<br \/>\n        |<br \/>\n        v<br \/>\n[Manifest Parse]<br \/>\n        |<br \/>\n        v<br \/>\n[Active Pack Selection]<br \/>\n        |<br \/>\n        v<br \/>\n[Runtime Materialization]<br \/>\n        |<br \/>\n        v<br \/>\n[Runtime Resource Pack Injection]<br \/>\n        |<br \/>\n        v<br \/>\n[post_effect\/main.json]<br \/>\n        |<br \/>\n        v<br \/>\n[ShaderManager Post Chain Loading]<br \/>\n        |<br \/>\n        v<br \/>\n[External ZIP Shader Execution]<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## Most Suitable Development Direction Right Now<\/p>\n<p>The recommended next steps are not to keep stuffing more traditional shader files into the project, but to:<\/p>\n<p>1. continue improving `final`-path translation quality<br \/>\n2. correct brightness \/ exposure mismatches<br \/>\n3. improve fidelity for sky, water, and highlights<br \/>\n4. gradually introduce more complex `composite` semantics<br \/>\n5. eventually explore a more complete Vulkan shader compatibility layer<\/p>\n<p>&#8212;<\/p>\n<p>## Design Philosophy<\/p>\n<p>The core idea of this project is not to force all traditional shader semantics into Vulkan at once, but rather:<\/p>\n<p>**first establish a truly executable chain, then gradually bring back the visual logic that matters**<\/p>\n<p>In other words:<\/p>\n<p>* first make external packs actually run<br \/>\n* then gradually make the visuals resemble the original shader pack<br \/>\n* only after that pursue larger-scale compatibility<\/p>\n<p>&#8212;<\/p>\n<p>## Notes<\/p>\n<p>This is still a fast-evolving experimental project.<br \/>\nIf you are looking for a ready-made, fully compatible replacement for Iris \/ OptiFine, the current version is not there yet.<br \/>\nBut if you care about:<\/p>\n<p>* Vulkan shader workflows<br \/>\n* external ZIP shader pack loading<br \/>\n* an experimental translation framework for modern Minecraft<br \/>\n* gradually migrating traditional shader semantics into a new rendering path<\/p>\n<p>then this project is built exactly for that.<\/p>\n<p>&#8212;<br \/>\n## **_This mod updates weekly, maybe one time or more._**<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lightweight post-processing shader pack loader for Minecraft&#8217;s Vulkan renderer.<\/p>\n","protected":false},"featured_media":168057,"template":"","meta":{"_minecraft_slug":"vulkan-postfx","_minecraft_project_id":"TsmOcOBN","_minecraft_author":"Player9753193","_minecraft_license":"LicenseRef-Vulkan-PostFX-License-v1.2","_minecraft_downloads":742,"_minecraft_follows":7,"_minecraft_client_side":"required","_minecraft_server_side":"unsupported","_minecraft_storage_type":"zip","_minecraft_archive_name":"vulkan-postfx.zip","_minecraft_size_bytes":3065924,"_minecraft_version_count":15,"_minecraft_updated_at":"2026-05-15T22:36:52.594440Z","_minecraft_date_created":"2026-04-12T01:54:48.871103Z","_minecraft_date_modified":"2026-05-15T12:04:45.834701Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/vulkan-postfx","_minecraft_icon_attachment_id":168057,"_minecraft_imported_at":"2026-06-09T19:24:39+00:00","_minecraft_import_hash":"f5648c3bbfc03ec77734331d66903d59","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[156,97,89,90],"mod_loader":[99],"minecraft_version":[837,842],"class_list":["post-168056","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-decoration","mod_category-fabric","mod_category-game-mechanics","mod_category-optimization","mod_loader-fabric","minecraft_version-26-2-snapshot-2","minecraft_version-26-2-snapshot-7"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vulkan PostFX - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vulkan PostFX - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A lightweight post-processing shader pack loader for Minecraft&#039;s Vulkan renderer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/\",\"name\":\"Vulkan PostFX - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp\",\"datePublished\":\"2026-06-09T19:24:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vulkan-postfx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Vulkan PostFX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vulkan PostFX - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/","og_locale":"en_US","og_type":"article","og_title":"Vulkan PostFX - Minecraft","og_description":"A lightweight post-processing shader pack loader for Minecraft's Vulkan renderer.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/","name":"Vulkan PostFX - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp","datePublished":"2026-06-09T19:24:39+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vulkan-postfx-icon-19df12b38813e46e66901fbc2d5c2af368ccb352_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vulkan-postfx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Vulkan PostFX"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/168056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/168057"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=168056"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=168056"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=168056"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=168056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}