Skip to content

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 CelShaderAPI one-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 CelShaderSettings assets, 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.


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.

The anime and comic presets on Harbour Square, among them Anime Soft, Anime Bold, Dramatic Ink, Pop Art and Risograph, picked from the Volume's preset dropdown.

13 new presets in v2.1, deliberately chosen to show off modules the older library never touched (Color Correction, Pixelate, Dithering, ASCII):

New presetLookCategory
GhibliSoft painterly anime with a warm Ghibli colour gradeAnime
Modern AnimeCrisp modern anime: sharp bands, clean JFA rimAnime
Ligne ClaireEuropean comic: clean uniform lines, flat bold colourComic
RisographRiso print: coarse halftone, limited warm palette, heavy grainComic
GouacheMatte flat-painterly with a soft thin outlinePainting
Ukiyo-eJapanese woodblock: flat colour fields, bold ink, paper texturePainting
Sin CityStark graphic-novel ink over a hard black-and-white splitDrawing
CharcoalSoft charcoal: smudged tones, fine hatching, paper grainDrawing
PS1 DemakeLo-fi retro: chunky pixelation, ordered dither, hard bandingRetro
CyberpunkNeon-noir colour grade with a glowing rim lightExperimental
Vaporwave80s split-tone pink/cyan with banding and ditherExperimental
BlueprintTechnical schematic: cool blue monochrome with XDoG line workExperimental
TerminalGreen-phosphor terminal: ASCII rendering with CRT tintExperimental

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:

UnityURPHDRPBuilt-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.


The Ultimate tier’s programmatic layer was rebuilt around a clean, one-call facade.

using CelShaderFX;
// Toggle any of the 13 effect modules by name
CelShaderAPI.SetEffect(Effect.Hatching, true);
CelShaderAPI.SetEffect(Effect.Kuwahara, false);
// Fade the whole stack in/out over time
CelShaderAPI.FadeIntensity(0.5f, duration: 2f);
// Crossfade to a preset at runtime
CelShaderAPI.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.)

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.
Runtime blending in Ultimate: the look eases from Anime Bold to Neon to Sin City while the scene plays (Built-In pipeline).
  • Runtime Preset Blending — PresetCycler, MoodChangeOnDamage, and WeatherZone demos.
  • Scripting API — EffectKeyboardDriver, IntensityPulse, and a UI-button-friendly RuntimeStyleManager.

The Scripting API Reference was rewritten for the new surface, including a copy-paste recipe section and a field-name migration table.


  • 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.

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.
  • CelShaderPresetInterpolator is 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.


  • 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

Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.