Skip to Content
DocumentationFeaturesGreyscale & Posterize

Greyscale & Posterize

Greyscale converts the surface to luminance; Posterize quantizes each channel into a small number of steps. Together they cover retro 8-bit palettes, painterly comic looks, and runtime state grading such as frozen or broken visuals.

When to use it

  • Comic look — Posterize 3–5 with Outline.
  • Retro and 8-bit aesthetics — Posterize 2–4 with a tight palette.
  • Frozen or dead states — greyscale 1.0 at runtime via script.
  • Painterly look — a light posterize (8–12) softens gradients without crushing them.

Modes

  • Greyscale — lerps the surface toward luminance. Useful for state changes such as frozen, dead, or paused.
  • Posterize — quantizes each RGB channel into N steps. Two steps gives a hard 8-bit read; sixteen is subtle.

Continuous PBR color with smooth gradients.

Four color bands per channel plus an ink outline — an instant comic look.

Default
Posterize 4 + Outline

PBR against the canonical comic stack. Drag to compare.

Properties

Inspector labelShader propertyTypeDefaultDescription
Greyscale Amount_GreyscaleAmountFloat (0–1)0.0Lerp to luminance. 0 = color, 1 = full grey.
Posterize Levels_PosterizeLevelsInt (2–16)16Steps per channel. 2 = hard, 16 = subtle.
Posterize Amount_PosterizeAmountFloat (0–1)0.0Blend between continuous and quantized.
Posterize Gamma_PosterizeGammaFloat (0.1–4)1.0Gamma curve applied before quantization.
Quantize Mask_QuantiseMaskTexture2DwhiteMask restricting the effect to UV regions.

Usage

  1. For the comic look, set Posterize Levels to 3–5, Amount to 1.0, then enable Outline.
  2. For a subtle painterly result, set Levels to 8–12 and Amount to 0.4.
  3. For a frozen or dead state, animate Greyscale Amount from 0 to 1 over half a second.
  4. Mask the effect to keep skin and eyes colored on an otherwise posterized character.
StartCoroutine(LerpFloat(material, "_GreyscaleAmount", 0f, 1f, 0.4f)); material.SetInt("_PosterizeLevels", 4); material.SetFloat("_PosterizeAmount", 1.0f);

Tips & gotchas

  • Posterize runs after lighting, so band edges follow the shading and may shift as the camera moves. Use Cel Shading for bands locked to NdotL.
  • Greyscale followed by Hue Shift has no effect — you cannot shift the hue of a color already stripped to grey.
  • Bloom amplifies banding; drop posterize levels by one if you run heavy bloom.
  • Posterize costs roughly three ALU per channel, which is negligible on mobile.
Last updated on