{"id":28524667,"url":"https://github.com/devkcud/vesperafx","last_synced_at":"2026-04-29T10:31:47.429Z","repository":{"id":291634313,"uuid":"978262107","full_name":"devkcud/VesperaFX","owner":"devkcud","description":"Stylized post-processing shaders for Godot 4. Modular FX for retro visuals, pixelation, dithering, and palette mapping.","archived":false,"fork":false,"pushed_at":"2025-12-24T03:49:30.000Z","size":9167,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T15:45:55.469Z","etag":null,"topics":["dithering","gamedev","godot","godot-shader","godot4","palette","pixelation","postprocessing","retro","shader"],"latest_commit_sha":null,"homepage":"","language":"GDShader","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devkcud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-05T18:03:49.000Z","updated_at":"2025-12-24T03:49:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"52f0a3c3-79f7-45c1-bace-c6e6d36628c6","html_url":"https://github.com/devkcud/VesperaFX","commit_stats":null,"previous_names":["devkcud/vesperafx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devkcud/VesperaFX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkcud%2FVesperaFX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkcud%2FVesperaFX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkcud%2FVesperaFX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkcud%2FVesperaFX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devkcud","download_url":"https://codeload.github.com/devkcud/VesperaFX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devkcud%2FVesperaFX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32421551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dithering","gamedev","godot","godot-shader","godot4","palette","pixelation","postprocessing","retro","shader"],"created_at":"2025-06-09T11:10:45.725Z","updated_at":"2026-04-29T10:31:47.423Z","avatar_url":"https://github.com/devkcud.png","language":"GDShader","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✨ VesperaFX - Modular Post-Processing Shader Suite\n\n_Includes: Dithering, palette mapping, pixelation, sharpening, color\ncorrection, CRT effects, and VHS effects._\\\n_Modular. Yankable. Yours to break._\n\n**VesperaFX** is a modular, stylized post-processing shader for **Godot 4.4.1**,\nfeaturing dithering, palette-based color mapping, pixelation, sharpening,\nCRT/VHS effects, and flexible color adjustments.\\\nDesigned for retro visuals, game feel tweaking, and full control over your\npost-FX pipeline.\n\n\u003e [!IMPORTANT]\n\u003e This repo is not supposed to be a one-size-fits-all solution. It is a\n\u003e toolbox of modular effects you can pick and choose from. Feel free to yank\n\u003e ONLY what you need!\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/demo.gif\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n\u003e Btw, this GIF is actually an older version of the shader. The current one has\n\u003e way more features!\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch3\u003eExamples of shading\u003c/h3\u003e\u003c/summary\u003e\n\n## Unshaded\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/unshaded-default-scene.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 2 Palette Black-White\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/2-palette-bw.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 2 Palette Black-White + Sharpening\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/2-palette-bw-sharpen.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 2 Palette True Black-White with Level 4 Dithering\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/2-palette-truebw-4-dithering.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 2 Palette True Black-White with Level 4 Error Diff Dithering with Color Correction (Hue Shift)\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/2-palette-truebw-error-diff-dithering.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 5 Palette with Default Params\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/default-5-palette.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 5 Palette Level 2 Dithering with Color Correction + Pixelation\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/5-palette-2-dithering-color-correction-pixelation.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 5 Palette Level 2 Dithering, RGB Matching and Color Correction + Pixelation\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/5-palette-2-dithering-rgb-matching-color-correction-pixelation.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\n## 5 Palette Level 2 Error Diff Dithering with Color Correction\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"demo/examples/5-palette-error-diff-dithering-color-correction.png\" alt=\"Shader Demo\"\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n## 🎨 Features\n\nQuite a few! Here's what you get:\n\n- [x] Runtime editing via shader uniforms\n- [x] Dithering\n  - [x] Multiple modes:\n    - [x] Bayer\n    - [x] Noise\n    - [x] Pseudo Floyd-Steinberg\n    - [x] Blue Noise\n    - [ ] Real Floyd-Steinberg\n- [x] Palette-based color mapping via luminance, brute-force RGB, or LUT\n  - [x] LUT/texture blend for smooth transitions\n  - [x] Transitions between palette lines\n  - [ ] Precomputed LUT support\n- [x] Pixelation with custom grid size\n- [x] Sharpening\n  - [x] Configurable intensity\n  - [x] Multiple kernel support\n    - [x] Laplacian\n    - [x] Unsharp Mask\n    - [x] Bilateral\n    - [x] High Boost\n    - [ ] Edge Detection\n- [ ] Cartoon/Toon shading\n- [ ] Cartoon/Toon effects\n  - [ ] Wobble\n  - [ ] Swirl\n  - [ ] Stretch\n  - [ ] Outline\n- [ ] Drug effects\n  - [ ] Trails\n  - [ ] Chromatic aberration\n  - [ ] Psychedelic Warp\n- [x] Color adjustments: hue, saturation, contrast, gamma\n- [x] PS1-style vertex jitter effects\n- [x] CRT effects\n  - [x] Vignette (edge darkening)\n  - [x] Scanlines (resolution-aware)\n  - [x] Barrel/Pincushion warp (separate X/Y control)\n  - [x] Black bars (letterbox/pillarbox)\n- [x] VHS effects\n  - [x] Chromatic aberration (RGB offset)\n  - [x] Tracking lines (animated distortion bands)\n  - [x] Noise/grain (animated static)\n- [x] Modular `.gdshaderinc` files. Use only what you need.\n- [x] Well-documented and commented code for easy customization.\n- [x] Configurable effect order (dithering \u003c-\u003e palette mapping)\n- [x] Performance considerations (LUT blending, pixelation-sharpen combo)\n- [x] Utility functions for shared logic\n- [ ] Spatial shader version\n  - [ ] 3D dithering\n  - [ ] Palette mapping for 3D scenes (LUT and RGB)\n  - [ ] CRT/VHS effects for 3D scenes\n  - [ ] Pixelation and sharpening for 3D scenes\n  - [ ] Depth-aware effects\n    - [ ] Near/Far distortion\n    - [ ] Foggy dithering based on distance\n    - [ ] Color loss and overexposure based on distance\n- [ ] Reflective surfaces support\n  - [ ] Dithering on reflections\n  - [ ] Palette mapping on reflections\n  - [ ] Pixelation and sharpening on reflections\n- [ ] Render class for easy integration\n  - [ ] One-click setup\n  - [ ] Preset management\n  - [ ] Profile saving/loading\n  - [ ] GUI for runtime tweaking\n  - [ ] Controller support for adjustments on the fly\n  - [ ] Animation support for dynamic effects\n- [ ] Demo scenes showcasing various effects and combinations\n- [ ] Precomputed LUT generation tool\n- [ ] RGB palette generation tool\n\n## 📦 Implementation\n\n1. Clone or copy the shader files into your project. You'll find each effect in\n   the `include/` directory.\n2. Create a new `.gdshader` file in your project.\n3. Include the modules you want (or everything) using:\n\n```glsl\n#include \"res://path/to/include/dither.gdshaderinc\"\n#include \"res://path/to/include/palette.gdshaderinc\"\n```\n\n4. Copy relevant logic from\n   [`void fragment()` in `main.gdshader`](main.gdshader) or build your own.\n\n## 🧪 Usage Notes\n\n- RGB palette matching uses brute-force comparison per pixel. This is slow.\n  Consider using precomputed LUT for better performance.\n- Pixelation + Sharpening may cause artifacts. There's a flag\n  (`#define ALLOW_PIXELATION_SHARPEN_COMBO`) to allow it, but it's not\n  recommended unless you really want it.\n- Effect order defaults to: Dither -\u003e Palette Map. You can flip it by:\n  `#define REVERSE_DITHER_PALETTE_MAPPING`.\n- LUT/texture blending computes both mappings simultaneously. Enable with\n  `#define ALLOW_PALETTE_LUT_BLEND`. May impact performance on low-end GPUs.\n- You may also include `utils.gdshaderinc` for constants and shared helpers.\n\n## ⚙️ Files\n\n| File                     | Purpose                                  |\n| ------------------------ | ---------------------------------------- |\n| `dither.gdshaderinc`     | Multiple dithering modes                 |\n| `palette.gdshaderinc`    | Palette mapping (RGB, luminance, LUT)    |\n| `pixelation.gdshaderinc` | Pixel grid reduction                     |\n| `sharpening.gdshaderinc` | Sharpen filters (multiple kernels)       |\n| `rendering.gdshaderinc`  | Hue/saturation/contrast/gamma            |\n| `ps1.gdshaderinc`        | PS1-style texture jitter                 |\n| `crt.gdshaderinc`        | CRT effects (vignette, scanlines, warp)  |\n| `crt.gdshaderinc`        | VHS effects (chromatic, tracking, noise) |\n| `utils.gdshaderinc`      | Shared utility functions                 |\n\n\u003e You can yank one or all. Everything is compartmentalized.\n\n## 📜 License\n\nThis shader is released under the [Mozilla Public License 2.0](LICENSE.txt).\n\nCredit is optional, but always appreciated.\\\nAuthor: André Albanese Junior (@patomcio / @devkcud)\n\n## 🧯 Support\n\nThis isn't a framework, it is a toolbox. If you need help integrating or\ncustomizing, feel free to reach out via GitHub issues or social media.\n\n---\n\n⭐ If you find this repo useful, consider starring! :D\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevkcud%2Fvesperafx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevkcud%2Fvesperafx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevkcud%2Fvesperafx/lists"}