UnityCelShaderFX
What's new in 2.1
Release notes — customer-facing. Use this for the Asset Store “Latest update” notes, the in-package CHANGELOG, and the v2.1 announcement post.
v2.1 is a content + tooling + polish release that makes CelShaderFX faster to use and easier to ship with:
- 37 built-in presets (up from 24) — every one now ships with a rendered thumbnail in the Preset Browser, so you pick a look by sight instead of by name.
- 13 brand-new preset styles that finally exercise the under-used modules: Ghibli, Cyberpunk, Vaporwave, Risograph, Sin City, Ukiyo-e, Charcoal, and more.
- Unity 6.4 (URP 17.4) support — verified from Unity 2021.3 LTS all the way to the latest Unity 6.4, across Built-In, URP, and HDRP.
- New runtime scripting API (Ultimate): the
CelShaderAPIone-call facade plus drop-in components for trigger-volume and distance-based preset crossfades. - Visual fixes: Halftone no longer “swims” under camera rotation; Kuwahara, Watercolor, and Painterly looks retuned; tiled hatch patterns are now seamless.
- Under the hood: a full settings architecture refactor with automatic, no-action asset migration — your existing settings, presets, and Volume profiles upgrade themselves on first load.
Nothing you built breaks. Existing
CelShaderSettingsassets, presets, and URP/HDRP Volume profiles migrate automatically the first time they load. The only thing to know about is for customers who script against the package directly — see Upgrade notes at the end.
37 presets, now with thumbnails
Section titled “37 presets, now with thumbnails”The preset library grew from 24 to 37 one-click looks, and the Preset Browser now shows a 256×256 rendered thumbnail of each one — captured from the actual effect, so what you see is what you get. No more guessing what “Risograph” looks like from the name.
13 new presets in v2.1, deliberately chosen to show off modules the older library never touched (Color Correction, Pixelate, Dithering, ASCII):
| New preset | Look | Category |
|---|---|---|
| Ghibli | Soft painterly anime with a warm Ghibli colour grade | Anime |
| Modern Anime | Crisp modern anime: sharp bands, clean JFA rim | Anime |
| Ligne Claire | European comic: clean uniform lines, flat bold colour | Comic |
| Risograph | Riso print: coarse halftone, limited warm palette, heavy grain | Comic |
| Gouache | Matte flat-painterly with a soft thin outline | Painting |
| Ukiyo-e | Japanese woodblock: flat colour fields, bold ink, paper texture | Painting |
| Sin City | Stark graphic-novel ink over a hard black-and-white split | Drawing |
| Charcoal | Soft charcoal: smudged tones, fine hatching, paper grain | Drawing |
| PS1 Demake | Lo-fi retro: chunky pixelation, ordered dither, hard banding | Retro |
| Cyberpunk | Neon-noir colour grade with a glowing rim light | Experimental |
| Vaporwave | 80s split-tone pink/cyan with banding and dither | Experimental |
| Blueprint | Technical schematic: cool blue monochrome with XDoG line work | Experimental |
| Terminal | Green-phosphor terminal: ASCII rendering with CRT tint | Experimental |
The reworked Pixel Art preset now actually pixelates (it previously didn’t), and stays crisp and vibrant to contrast with PS1 Demake’s chunky, heavy-dither look.
Unity 6.4 support — the whole LTS range, all three pipelines
Section titled “Unity 6.4 support — the whole LTS range, all three pipelines”CelShaderFX is now verified across a 5-version × 3-pipeline matrix at compile time:
| Unity | URP | HDRP | Built-In |
|---|---|---|---|
| 2021.3 LTS | ✅ | ✅ | ✅ |
| 2022.3 LTS | ✅ | ✅ | ✅ |
| Unity 6.0 | ✅ | ✅ | ✅ |
| Unity 6.3 | ✅ | ✅ | ✅ |
| Unity 6.4 (URP 17.4) | ✅ | ✅ | ✅ |
Unity 6.4 removed a deprecated URP render-pass API that older toon assets still depend on; CelShaderFX was updated to run cleanly on it via the native URP 17 RenderGraph path — no Compatibility Mode, no scripting defines, no manual setup. If you’re on the newest Unity, it just works.
Ultimate: a real runtime scripting API
Section titled “Ultimate: a real runtime scripting API”The Ultimate tier’s programmatic layer was rebuilt around a clean, one-call facade.
CelShaderAPI — the simple entry point
Section titled “CelShaderAPI — the simple entry point”using CelShaderFX;
// Toggle any of the 13 effect modules by nameCelShaderAPI.SetEffect(Effect.Hatching, true);CelShaderAPI.SetEffect(Effect.Kuwahara, false);
// Fade the whole stack in/out over timeCelShaderAPI.FadeIntensity(0.5f, duration: 2f);
// Crossfade to a preset at runtimeCelShaderAPI.FadeToPreset(myWatercolorPreset, duration: 1.5f);No need to learn the Settings/Preset/Volume/Pipeline plumbing — the facade auto-discovers your active settings and routes to the right pipeline. (Power users can still read and write the raw settings.kuwahara.radius-style surface directly.)
Drop-in preset-blending components
Section titled “Drop-in preset-blending components”Two new MonoBehaviours let you change art style without writing any code:
CelShaderPresetTriggerVolume— put it on a collider; it crossfades to a target preset when the player enters, and back on exit. Tag/Layer filtering, per-direction durations, re-trigger control.CelShaderPresetDistanceBlender— continuously blends between two presets based on distance from a reference point. Great for “the world gets more stylised as you approach the dream gate” moments.
Two new sample scenes (Ultimate)
Section titled “Two new sample scenes (Ultimate)”- Runtime Preset Blending —
PresetCycler,MoodChangeOnDamage, andWeatherZonedemos. - Scripting API —
EffectKeyboardDriver,IntensityPulse, and a UI-button-friendlyRuntimeStyleManager.
The Scripting API Reference was rewritten for the new surface, including a copy-paste recipe section and a field-name migration table.
Visual quality & bug fixes
Section titled “Visual quality & bug fixes”- Halftone no longer swims. In World-Space and Depth-Compensated modes, the halftone grid used to slide across stationary surfaces as the camera rotated. It’s now anchored to world geometry — rock-steady under any camera motion. (Fixed in all three pipelines.)
- Kuwahara “Generalized” variant corrected and unified across pipelines — HDRP previously produced a slightly different result.
- Watercolor & Painterly retuned. Paper-texture and canvas/impasto strength were over-driven; they’re back in the intended subtle range.
- Seamless hatch patterns. The procedural cross-hatch textures had a faint diagonal seam when tiled — the generator now produces cleanly wrapping, correctly-linear textures.
- Built-In sampler-register fix. Enabling Blue-Noise/STBN dithering together with JFA outlines on the Built-In pipeline could exceed a hardware sampler limit (magenta screen). Resolved with no visual change.
- Distance-driven Kuwahara strength — the painterly filter can now ramp down with camera distance, with a debug heat-map for tuning the near/far range.
Under the hood: cleaner architecture, automatic migration
Section titled “Under the hood: cleaner architecture, automatic migration”v2.1 completes a large internal refactor: all 13 effect modules moved from one giant settings object into clean, self-contained per-module settings blocks. For you, this means:
- Your assets auto-upgrade. Old
CelShaderSettings,CelShaderPreset, and URP/HDRP Volume profiles migrate themselves on first load through a versioned migration ladder. No action required; the file rewrites the next time it’s saved. - A more reliable inspector — each module now has its own dedicated drawer, and the editor is ~45% leaner, which keeps the UI snappier and future updates safer.
- Safer future updates. A new on-disk version stamp means field changes in later versions can migrate forward instead of silently corrupting saved looks.
Upgrade notes (for scripters)
Section titled “Upgrade notes (for scripters)”If you only use CelShaderFX through the inspector, presets, and Volumes, you can stop here — everything migrates automatically.
If you reference the package from your own C# scripts, note these source-level changes (your project will still compile, with deprecation warnings, for one major version):
- Module fields are now namespaced.
settings.hatchDensity→settings.hatching.density,settings.outlineThickness→settings.outline.thickness, and so on for all 13 modules. A full 40-row before/after table is in the Scripting API Reference (Documentation~/API/Index.md). - Some enums moved onto their module structs (e.g.
HatchingType→HatchingSettings.HatchingType). Deprecated aliases keep your old code compiling with a warning. CelShaderPresetInterpolatoris now Ultimate-only. It became the engine of the runtime preset-blending feature; if you referenced it from Pro/Essentials, upgrade to Ultimate for the supported runtime-interpolation surface.
All deprecated aliases are removed in v3.0 — migrate at your convenience before then.
Compatibility
Section titled “Compatibility”- Unity: 2021.3 LTS → Unity 6.4
- Pipelines: Built-In, URP (12 / 14 / 17 incl. native RenderGraph), HDRP
- Dependencies: none
- Backward compatibility: existing v1.x / v2.0 settings, presets, and Volume profiles load and migrate automatically.
CelShaderFX is developed by EQLabs (Ibrahim Afara). Docs & support: https://www.eqlabs.studio
Opens our feedback form in a new tab with the tool name pre-filled.