RetroLens – Retro Display Effects


CRT and LCD post-processing for Unity 6. 21 effect groups, 73 hand-tuned presets, a retro audio filter, and Timeline integration. URP only.


by PinkRooster Games


Price History +

RetroLens is a post-processing package for Unity 6 (URP) that covers

the full range of CRT and LCD display simulation — 21 effect groups

in total, built natively on the Render Graph API.


On the CRT side: scanlines, phosphor masks, barrel distortion, signal

noise, convergence errors, halation, beam current, VHS composite,

NTSC/PAL signal, interlacing, ghosting, glitch lines, signal ringing,

screen glow, vignette, framerate limiting, and more. LCD support adds

subpixel grid layouts (RGB stripe, BGR stripe, PenTile) and motion

blur with backlight bleed. A palette restriction mode locks output to

12 authentic console palettes — NES, Game Boy, CGA, EGA, and others

— with Bayer dithering.


73 built-in presets cover the spectrum from PVM Professional and Sony

Trinitron to VHS Tracking Lost and Ditherpunk. LCD presets include

Game Boy DMG, GBA, PSP, DS, and Game Gear. All 73 are tuned by hand.

Custom presets are saved and browsed through the built-in Preset Browser.


Any two presets can be blended at runtime with animation curve support:


    crt.BlendToPreset("VHS Home Video", duration: 1.5f);


CRT power sequences handle warmup, shutdown, channel switching, and

hold failure, each driven by configurable timing curves. A Timeline

track is included for driving these from cinematic sequences.


A real-time Screen Light samples the on-screen image and casts it

into your scene as a dynamic light source.


The Retro Audio Filter runs on Unity's audio thread and covers bit

crushing, sample rate reduction, tape instability (wow and flutter),

analog interference (mains hum, flyback whine, vinyl crackle), six

speaker profiles, and waveshaping saturation. Audio settings are

stored per-preset and blend alongside visuals automatically.


Three quality tiers let you balance fidelity against performance.

Low covers the basics: scanlines, vignette, color grading, pixelation.

Medium adds noise, convergence, barrel distortion, and phosphor masks.

High adds ghosting, glitch, VHS composite, halation, and beam current.

Tiers are set per-platform through the Volume component or via script.


The scripting API exposes every parameter at runtime:


    if (RetroLensEffectController.TryGetActive(out var crt))

    {

        crt.ApplyPreset("Arcade 1984");

        crt.SetScanlineIntensity(0.7f);

        crt.SetQualityTier(RetroLensQualityTier.Medium);

    }


    crt.OnPowerOnStart += () => PlaySound("crt_warmup");

    crt.OnPowerOffComplete += () => LoadNextScene();


Seven sample scenes are included: a feature showcase, preset gallery,

TV room, transition demo, and a synthwave environment used as shared

content across scenes.


No per-frame allocations on hot paths. Shader variants are stripped

at build time. Full C# and HLSL source is included — no DLLs.


Requires Unity 6 (6000.0+) and URP 17.0+.


Support: info@pinkrooster.nl