cbbg 🥬
color banding be gone - Remove pesky color banding from Minecraft
cbbg/'kabij/ is a client-side Fabric mod that reduces visible color banding by:
- Using a higher-precision render target (RGBA16F)
- Applying STBN blue-noise dithering to final image
Helps reduce color banding on following:
- Smooth lighting
- Skybox
- Vignette
- GUI background blurring
What it does
- Higher render precision: upgrades the main render target color attachment to RGBA16F.
- Blue-noise dithering: applies a lightweight full-screen pass using STBN noise to break up 8-bit quantization banding.
Installation
- Minecraft 26.2 requires Java 25. If your launcher manages Java automatically, use its runtime for 26.2; otherwise select Java 25 for this instance.
- Install Fabric Loader and Fabric API for your Minecraft version.
- Put the
cbbg-x.x.x.jarinto your.minecraft/modsfolder.
This mod is client-only. It does not need to be installed on servers.
Configuration
In-game (recommended)
If you have Mod Menu installed, open cbbg's config screen and select:
- Enabled
- Disabled
- Demo (split): left = disabled (no dither), right = enabled (dither)
Commands
You can also control the mod using chat commands (useful if Mod Menu is not installed):
/cbbg mode: View the current mode./cbbg mode set <mode>: Set the mode. Valid modes areENABLED,DISABLED,DEMO.
Config file
Config file: .minecraft/config/cbbg.json
Example:
{
"mode": "ENABLED"
}
Valid values: ENABLED, DISABLED, DEMO.
Compatibility notes
- Iris shaderpacks: when an Iris shaderpack is active, cbbg is forced OFF to avoid pipeline conflicts.
- GPU support: if RGBA16F allocation fails on your device/driver, cbbg will automatically fall back to RGBA8 for the remainder of the session.
Credits
- AsmFabricLoader by FlorianMichael (Apache License 2.0)
- Minecraft 26.2 port by @Evoloxi
All Versions
+ Add Version- Public noise-generation, CPU image-dithering and Minecraft GPU-dithering APIs for other mods, independent of CBBG's settings ([#90](https://github.com/qb20nh/cbbg/issues/90)).
- CBBG Lib, an independently installable utility mod bundled with CBBG.
- Open CBBG settings from Sodium's options menu when Sodium provides its configuration API ([#34](https://github.com/qb20nh/cbbg/issues/34)).
### Fixed
- Align dithering with RenderScale's rendered pixels, including in screenshots ([#20](https://github.com/qb20nh/cbbg/issues/20)).
- Lock or unlock settings controls immediately when changing Mode.
- Public noise-generation, CPU image-dithering and Minecraft GPU-dithering APIs for other mods, independent of CBBG's settings ([#90](https://github.com/qb20nh/cbbg/issues/90)).
- CBBG Lib, an independently installable utility mod bundled with CBBG.
- Open CBBG settings from Sodium's options menu when Sodium provides its configuration API ([#34](https://github.com/qb20nh/cbbg/issues/34)).
### Fixed
- Align dithering with RenderScale's rendered pixels, including in screenshots ([#20](https://github.com/qb20nh/cbbg/issues/20)).
- Lock or unlock settings controls immediately when changing Mode.
- Preserve float precision with improved transparency and Fabulous graphics, including when Sodium is installed ([#19](https://github.com/qb20nh/cbbg/issues/19)).
- Update RenderScale's target precision when changing CBBG's mode or pixel format.
<!-- cbbg-candidate-run: 38101952225 -->
- Public noise-generation, CPU image-dithering and Minecraft GPU-dithering APIs for other mods, independent of CBBG's settings ([#90](https://github.com/qb20nh/cbbg/issues/90)).
- CBBG Lib, an independently installable utility mod bundled with CBBG.
- Open CBBG settings from Sodium's options menu when Sodium provides its configuration API ([#34](https://github.com/qb20nh/cbbg/issues/34)).
### Fixed
- Align dithering with RenderScale's rendered pixels, including in screenshots ([#20](https://github.com/qb20nh/cbbg/issues/20)).
- Lock or unlock settings controls immediately when changing Mode.
- Preserve float precision with improved transparency and Fabulous graphics, including when Sodium is installed ([#19](https://github.com/qb20nh/cbbg/issues/19)).
- Public noise-generation, CPU image-dithering and Minecraft GPU-dithering APIs for other mods, independent of CBBG's settings ([#90](https://github.com/qb20nh/cbbg/issues/90)).
- CBBG Lib, an independently installable utility mod bundled with CBBG.
- Open CBBG settings from Sodium's options menu when Sodium provides its configuration API ([#34](https://github.com/qb20nh/cbbg/issues/34)).
### Changed
- Generate noise images and load/save their caches in the background. Cancel replaced calculations and pause dithering until the requested noise is ready.
- Regenerate caches from previous releases on first use.
- Reduce the release jar size; include source mappings and dependency information in the sources jar.
- Support Fabric Loader
>=0.17.3 <1.0.0and require Fabric API>=0.139.4+1.21.11 <1.0.0.
### Fixed
- Align dithering with RenderScale's rendered pixels, including in screenshots ([#20](https://github.com/qb20nh/cbbg/issues/20)).
- Lock or unlock settings controls immediately when changing Mode.
- Apply the requested noise size, depth and seed consistently, including resets during generation and forced regeneration of cached defaults.
- Restart the noise-frame sequence after reloading, and use the displayed noise frame in screenshots.
- Clear generation toasts after cancellation, failure, or completion with notifications disabled; keep them separate from Minecraft's periodic notifications.
- Release replaced noise images and GPU resources, and cancel generation when Minecraft closes.
- Parse mode and pixel-format commands consistently across system languages.
- Preserve float precision with improved transparency and Fabulous graphics, including when Sodium is installed ([#19](https://github.com/qb20nh/cbbg/issues/19)).
- Avoid crashes when other renderers allocate unnamed framebuffer targets during menu blur.
- Public noise-generation, CPU image-dithering and Minecraft GPU-dithering APIs for other mods, independent of CBBG's settings ([#90](https://github.com/qb20nh/cbbg/issues/90)).
- CBBG Lib, an independently installable utility mod bundled with CBBG.
- Open CBBG settings from Sodium's options menu when Sodium provides its configuration API ([#34](https://github.com/qb20nh/cbbg/issues/34)).
### Changed
- Generate noise images and load/save their caches in the background. Cancel replaced calculations and pause dithering until the requested noise is ready.
- Regenerate caches from previous releases on first use.
- Reduce the release jar size; include source mappings and dependency information in the sources jar.
- Support Fabric Loader
>=0.16.0 <1.0.0and require Fabric API>=0.101.2+1.21.1 <1.0.0.
### Fixed
- Align dithering with RenderScale's rendered pixels, including in screenshots ([#20](https://github.com/qb20nh/cbbg/issues/20)).
- Lock or unlock settings controls immediately when changing Mode.
- Apply the requested noise size, depth and seed consistently, including resets during generation and forced regeneration of cached defaults.
- Restart the noise-frame sequence after reloading, and use the displayed noise frame in screenshots.
- Clear generation toasts after cancellation, failure, or completion with notifications disabled; keep them separate from Minecraft's periodic notifications.
- Release replaced noise images and GPU resources, and cancel generation when Minecraft closes.
- Parse mode and pixel-format commands consistently across system languages.
- Preserve float precision with improved transparency and Fabulous graphics, including when Sodium is installed ([#19](https://github.com/qb20nh/cbbg/issues/19)).
- Convert float screenshots correctly when dithering is unavailable.
- Release framebuffer resources after a failed allocation.
- Keep settings cards and labels visible above the menu background, including in generation confirmations.
- Update RenderScale's target precision when changing CBBG's mode or pixel format.
<!-- cbbg-candidate-run: 38101952225 -->
- Vulkan renderer support, including float render targets and dithered screenshots.
- Suspend dithering while Sulkan shaderpacks are active.
### Changed
- Smaller jar by replacing AsmFabricLoader with our own early entry and using ProGuard. Source mappings and dependency information are included in the sources jar.
- Require Fabric Loader
>=0.18.4 <1.0.0and Fabric API>=0.148.3+26.2 <1.0.0. - Generate noise images and load/save their caches in the background. Cancel replaced calculations and pause dithering until the requested noise is ready.
- Regenerate 1.4.0 noise caches on first use.
### Fixed
- Apply the requested noise dimensions and seed throughout generation and cache loading, including resets during generation and forced regeneration of cached defaults.
- Restart the noise-frame sequence after reloading, and use the displayed noise frame in screenshots.
- Convert float screenshots correctly when dithering is disabled or unavailable.
- Clear generation toasts after cancellation or failure, and after completion if toast notifications were disabled during generation.
- Prevent generation toasts from replacing Minecraft's other periodic notifications.
- Fall back to Minecraft's rendering when the dither shader fails, and release noise images and GPU resources when replaced or closed.
- Handle unnamed framebuffer targets used by other renderers.
- Parse mode and pixel-format commands consistently across system languages.
<!-- cbbg-candidate-run: 37437155152 -->
- Clear generation toasts after cancellation or failure, and after completion if toast notifications were disabled during generation.
- Prevent generation toasts from replacing Minecraft's other periodic notifications.
<!-- cbbg-candidate-run: 37264170945 -->
- Minecraft 26.1.x Fabric support.
### Fixed
- Clear generation toasts after cancellation or failure, and after completion if toast notifications were disabled during generation.
- Prevent generation toasts from replacing Minecraft's other periodic notifications.
<!-- cbbg-candidate-run: 37216541684 -->
- Minecraft 26.3 Fabric support for OpenGL and Vulkan.
- Suspend dithering while Sulkan shaderpacks are active.
### Changed
- Smaller jar size by implementing our own early entry and removing the bundled AsmFabricLoader library.
- Even smaller jar size with ProGuard. Source mappings included in sources jar.
### Fixed
- Fixed various bugs and edge case behavior around noise generation and cache saving/loading.
- Use the currently displayed noise frame in screenshots instead of re-dithering it from scratch.
<!-- cbbg-candidate-run: 36969830575 -->
- Ported to Minecraft 26.2 by [Evoloxi](https://github.com/Evoloxi). Requires Java 25.
- Updated release packaging and Java metadata for the 26.2 build.
- Fixed OpenGL errors when Satin (or other mods utilizing initFbo) is present.
- Config screen status message.
- Support multiple languages.
### Fixed
- Color banding in GUI background blurring.
- Pressing esc key in config menu exiting all menus.
- Crash when running alongside the Chat Patches mod.
- Config screen status message.
- Support multiple languages.
### Fixed
- Color banding in GUI background blurring.
- Pressing esc key in config menu exiting all menus.
- Crash when running alongside the Chat Patches mod.
- Fixed crash when opening config screen
- Compatibility with [RenderScale](https://modrinth.com/mod/renderscale).
### Changed
- Improved
/cbbgcommand feedback. - Release artifacts now include the Minecraft version in the filename (e.g.
cbbg-1.2.1+mc1.21.11.jar).
### Fixed
- Fixed generation completion toast not being shown.