Retro Screen FX

The Ultimate CRT & LCD Emulator for Unity

Instantly transform your game's visuals with the ultimate post-processing solution for emulating vintage CRT, LCD, and retro computer displays!

Get on the Unity Asset Store

Key Features

Preset Workflow

đŸ•šī¸ Preset-Based Workflow

Design, save, and reuse countless visual styles with intuitive ScriptableObject presets.

6 Presets Included

🎨 6+ Pre-Built Presets

Includes a variety of ready-to-use styles: 8-Bit, 16-Bit, GB, GBA, CRT Scanline, and 2-Bit Dithered.

Dynamic Transitions

đŸŽžī¸ Dynamic Transitions

Smoothly animate between different retro looks with the powerful RetroScreenAnimator and physics-based trigger zones.

CRT Emulation

đŸ“ē Authentic CRT Emulation

Realistic screen curvature, customizable scanlines, RGB shift, analog noise, vignette, and CRT shadow masks.

Pixel Aesthetics

👾 Pixel-Perfect Aesthetics

Control virtual resolution, limit the color palette, apply classic dithering, and create your own 4-color palettes.

LCD Simulation

📟 Classic LCD Simulation

Emulate the distinct vertical RGB stripes of LCD screens or recreate the look of vintage monochrome displays.

Render Texture Support

đŸ–Ĩī¸ Render Texture Support

Works perfectly with Render Textures. Apply the effect to any in-game screen, monitor, or device for an authentic look.

Full Example Scene

🚀 Full Example Scene

Includes a complete, pre-configured example scene demonstrating various effects and features out of the box.

Documentation

RetroScreenPostProcess.cs

This is the main script that applies the post-processing effect to the camera. It must be attached to a `Camera` GameObject.

retroScreenShader: A reference to the RetroScreen.shader file.
settings: An instance of RetroScreenSettings that holds the current effect parameters.
activePreset: A RetroScreenPreset ScriptableObject. If assigned, the component will load its settings from this preset.
blendDuration: The time in seconds it takes to smoothly transition between presets.

RetroScreenSettings.cs

A data container for all the visual parameters of the effect. It does not need to be attached to any GameObject.

RetroScreenPreset.cs

A ScriptableObject that stores a RetroScreenSettings configuration. This allows you to save, reuse, and share different visual styles.

RetroScreenAnimator.cs

This component animates the effect by transitioning between different `RetroScreenPreset`s over time. Place it on the same GameObject as `RetroScreenPostProcess`.

RetroScreenTrigger.cs

This component allows you to trigger preset transitions based on physics events. It requires a `Collider` component on the same GameObject, with its `Is Trigger` property enabled.

CRT Effects

Controls for screen curvature, scanlines, RGB shift, noise, and vignette.

Pixelation

Controls for virtual pixel size and the grid gap between them.

LCD Emulation

Simulates LCD subpixel layouts and monochrome displays.

Color Modes & Palettes

Select between full color, grayscale, monochrome, and custom 4-color palettes. Includes color quantization and dithering.

Overlays

Apply textures for CRT masks (shadow mask, aperture grille) and screen dirt/smudges.

Get Started in 5 Steps

  1. Attach RetroScreenPostProcess to your main camera.
  2. Create a RetroScreenPreset in your project assets via the `Create` menu.
  3. Assign the new preset to the activePreset field on the `RetroScreenPostProcess` component.
  4. Select the preset asset in the Project window and adjust its values in the Inspector to achieve your desired look.
  5. (Optional) Add the RetroScreenAnimator to the camera to animate between multiple presets.