Add Retro Look Pro or Post Retro Look Pro component to your camera. Create new RetroLookPro preset (Create/RetroLookPro/New preset). Insert preset in Retro Look Pro component attached to your camera. Adjust parameters. Have fun!
Retro Look Pro component uses OnRender method.It gives less perfomance then post method, lets you use custom texture.
Post Retro Look Pro uses postRender method.It Gives you extra perfomance in some cases, but have no ability to use custom texture, doesn't support HDR and MSAA and uses Forward rendering path only.
Development mode - All changes made in selected preset will be applied and saved instantly in Game mode. If you want to access variables from your scripts uncheck this option.
Reference Scr - Assign needed Retro Look Pro preset(ScriptableObject).
To create new Preset - Create/Retro Look Pro/New Preset.
Compatibility table
Unity Editor version | Standard | LWRP | URP | HDRP |
---|---|---|---|---|
2017.4+ | ✔ | ✖ | ✖ | ✖ |
2018.4+ | ✔ | ✔ | ✖ | ✖ |
2019.3+ | ✔ | ✔ | ✔ | ✔ |
2020.1+ | ✔ | ✔ | ✔ | ✔ |
API usage examples:
Example 1
This example shows how to access variables from needed RetroLookPro/RetroLookPostPro cached preset.
In this case "development mode" in "RetroLookPro/RetroLookPostPro" should be turned off.
Note that all changes will be reversed after you exit game mode. It is much safer to use this method instead of second one.
using UnityEngine;
using LimitlessDev.RetroLookPro;
public class APIExampleUsage1 : MonoBehaviour {
//Reference to RetroLookPro/RetroLookPostPro that you are currently using.
public RetroLookPro RetroLookReference;
// Update is called once per frame
void Update()
{
//Enable/Disable needed variable on "Space" key press.
if (Input.GetKeyDown(KeyCode.Space)) {
if (RetroLookReference.tempPreset.f_Fisheye)
RetroLookReference.tempPreset.f_Fisheye = false;
else
RetroLookReference.tempPreset.f_Fisheye = true;
} } }
Example 2
This example shows how to access variables directly from preset Scriptable Object.
In this case "development mode" in "RetroLookPro/RetroLookPostPro" should be turned on.
Note that all changes made in Scriptable Objects will be saved after you exit game mode. Very usefull in some cases.
using UnityEngine;
using LimitlessDev.RetroLookPro;
public class APIExampleUsage2 : MonoBehaviour
{
//Reference to the Scriptable Object preset that you are currently using.
public PresetScriptableObject RetroLookScriptableObjectReference;
// Update is called once per frame
void Update() {
//Enable/Disable needed variable on "Space" key press.
if (Input.GetKeyDown(KeyCode.Space))
{
if (RetroLookScriptableObjectReference.currPreset.f_Fisheye)
RetroLookScriptableObjectReference.currPreset.f_Fisheye = false;
else
RetroLookScriptableObjectReference.currPreset.f_Fisheye = true;
}
}
}
To adjust variables through your scripts uncheck "Development mode" on RetroLookPro component.
In your script:
Variables:
Type | Name | Description |
---|---|---|
bool | useBottomNoise | Enable/disable bottom noise effect. |
float | bottomHeight | Height of Stretch/Noise. [0, 0.5] |
float | bottomIntensity | Noise intensity. [0, 3] |
bool | useBottomStretch | Enable stretch effect. |
IMPORTANT NOTE : To use presets please open "\Assets\LimitlessUnityDevelopment\RetroLookPro\Resources\ColormapPresets.unitypackage" and import it. Then fill RetroLookProColorPaletePresetsList\presetslist with all presets from "\Assets\LimitlessUnityDevelopment\RetroLookPro\Resources\Colormap Presets".
31 pre-computed colormap presets that reduces the number of colors to up to 64 specific colors and can also lower the resolution to any width and height, creating advanced posterization-like effect.
If you want to reduce package size , open RetroLookProColorPaletePresetsList.asset ("\Assets\LimitlessUnityDevelopment\RetroLookPro\Resources") and remove unnecessary items from the list. Then remove unneeded colormap presets from "\Assets\LimitlessUnityDevelopment\RetroLookPro\Resources\Colormap Presets".
Type | Name | Description |
---|---|---|
bool | enableColorPalette | Enables color palette effect. |
ResolutionMode | resolutionMode | The resolution of the pixelated image can be set in two ways.Either by setting absolute values (ConstantResolution) or by setting the pixel size (ConstantPixelSize). |
int | resolutionModeIndex | 0 - Constant Resolution, 1 - Constant PixelSize. |
Vector2Int | resolution | Change Resolution manually if using resolutionModeIndex - 0. |
int | pixelSize | Change pixel size if using resolutionModeIndex - 1, in this case resolution calculates automatically. [1, 256] |
float | dither | Dithering effect. [ 0 , 1] |
float | opacity | Effect opacity. [0, 1] |
int | colorPresetIndex | Palette preset index number in palette presets list. |
Type | Name | Description |
---|---|---|
bool | _enableTVmode | Enable TV effect. |
Texture | _VHSNoise | Noise texture. |
float | _textureIntensity | Intensity of noise texture. [0, 8] |
float | _VerticalOffsetFrequency | Vertical twitch frequency. [0, 100] |
float | _verticalOffset | Amount of vertical twitch. [0, 1] |
float | _offsetColor | Amount of color offset. [0, 0.1] |
float | _OffsetDistortion | Amount of horizontal distortion. [3500, 1] |
bool | _scan | Enable scanlines. |
float | _adjustLines | Scanlines amount. [1, 10] |
Color | _scanLinesColor | Scanlines color. |
float | _hardScan | Scanlines effect amount. [-8, -16] |
float | _resolution | Effect resolution. [16, 1] |
float | maskDark | Dark areas adjustment. [0, 2] |
float | maskLight | Light areas adjustment. [0, 2] |
Vector4 | warp | Warp picture. |
Type | Name | Description |
---|---|---|
bool | enableCustomTexture | Enable bypass mode(only for RetroLookPro). |
Texture | bypassTex | Bypass Texture(if you have ready to go RenderTexture or any other texture, then no need to touch spriteTex). |
Sprite | spriteTex | Bypass sprite(bypassTex will be computed automaticly). |
Type | Name | Description |
---|---|---|
int | b_Mode | Bleed Mode index. 0 - "Old Three Phase" 1 - "Three Phase" 2 - "Two Phase (slow)" 3 - "Custom Curve". |
bool | b_Bleed | Enable bleed effect. |
int | b_LinesMode | Vertical Resolution mode index. 0 - "Full" 1 - "240 " 2 - "480 " 3 - "Users". |
float | b_ScreenLinesNum | Lines Per Height, if b_LinesMode = 3. |
float | b_BleedAmount | Bleed Stretch amount. [0, 15] |
int | b_BleedLength | Bleed Length [0, 50]. If b_Mode = 3 |
bool | b_BleedCurveSync | Synchronize I and Q chanels. |
AnimationCurve | b_BleedCurve1 | Curve Y chanel. |
AnimationCurve | b_BleedCurve2 | Curve I chanel. |
AnimationCurve | b_BleedCurve3 | Curve Q chanel. |
Type | Name | Description |
---|---|---|
bool | f_Fisheye | Enable fisheye effect. |
float | f_FisheyeBend | Bend Amount. [0, 50] |
int | f_FisheyeType | Fisheye type index. 0 - "Default", 1 - "Hyperspace". |
float | f_FisheyeSize | Fisheye size. [0, 50] |
float | f_CutoffX | Cutoff on X axes. [0, 50] |
float | f_CutoffY | Cutoff on Y axes. [0, 50] |
float | f_FadeX | Fade on X axes. [0, 50] |
float | f_FadeY | Fade on Y axes. [0, 50] |
Type | Name | Description |
---|---|---|
bool | v_Vignette | Enable Vignette effect. |
float | v_VignetteAmount | Amount of vignette effect. [0, 5] |
float | v_VignetteSpeed | Vignette twitch speed. [0, 5] |
Type | Name | Description |
---|---|---|
int | n_NoiseMode | Vertical Resolution index. 0 - "Global", 1 - "Custom". |
float | n_NoiseLinesAmountY | Amount of noise lines on Y axes. |
float | n_NoiseSignalProcessing | Noise Signal Processing Amount. [0, 1] |
bool | f_Granularity | Enable granularity noise effect. |
float | f_GranularityAmount | Granularity Alpha. [0, 0.1] |
Signal Noise
Type | Name | Description |
---|---|---|
bool | f_SignalNoise | Enable signal noise. |
float | f_SignalNoiseAmount | Signal amount. [0, 1] |
float | f_SignalNoisePower | Signal power. [0, 1] |
Tape Noise
Type | Name | Description |
---|---|---|
bool | f_TapeNoise | Enable tape noise. |
float | f_TapeNoiseTH | Tape Amount. [0, 1.5] |
float | f_TapeNoiseAmount | Tape alpha. [0, 1.5] |
float | f_TapeNoiseSpeed | Tape speed. [0, 1.5] |
Line Noise
Type | Name | Description |
---|---|---|
bool | f_LineNoise | Enable line noise. |
float | f_LineNoiseAmount. | Amount of line noise. [0, 10] |
float | f_LineNoiseSpeed | Noise speed. [0, 10] |
Jitter
Type | Name | Description |
---|---|---|
bool | j_ScanLines | Enable scanlines. |
float | j_ScanLinesWidth | Width of the scanlines. [0, 20] |
bool | j_LinesFloat | Floating lines amount. |
float | j_LinesSpeed | Lines speed. [-3, 3] |
bool | j_Stretch | Enable stretch noise. |
bool | j_JitterHorizontal | Enable Horizontal Interlacing. |
float | j_JitterHorizAmount | Amount of horizontal interlacing. [0, 5] |
bool | j_JitterVertical | Shake Vaertical. |
float | j_VertAmount | Amount of shake. [0, 15] |
float | j_VertSpeed | Speed of vertical shake. [0, 5] |
Twitch
Type | Name | Description |
---|---|---|
bool | j_TwitchHorizontal | Enable Twitch on X axes. |
float | j_TwitchHorizFreq | Twitch frequency on X axes. [0, 5] |
bool | j_TwitchVertical | Enable Twitch on Y axes. |
float | j_TwitchVertFreq | Twitch frequency on Y axes. [0, 5] |
Type | Name | Description |
---|---|---|
bool | p_PictureCorrection | Enable Picture correction effect. |
float | p_PictureCorr1 | Y permanent adjustment. [-0.25, 0.25] |
float | p_PictureCorr2 | I permanent adjustment. [-0.25, 0.25] |
float | p_PictureCorr3 | Q permanent adjustment. [-0.25, 0.25] |
float | p_PictureShift1 | tweak/shift Y values. [-2, 2] |
float | p_PictureShift2 | tweak/shift I values. [-2, 2] |
float | p_PictureShift3 | tweak/shift Q values. [-2, 2] |
float | p_Gamma | use this to balance the gamma(brightness) of the signal. [0, 2] |
Type | Name | Description |
---|---|---|
bool | a_Artefacts | Enable artefacts/trail effect. |
float | a_ArtefactsThreshold | Brightness threshold of input. [0, 1] |
float | a_ArtefactsAmount | Amplifies the input amount after cutoff. [0, 3] |
float | a_ArtefactsFadeAmount | Value represents how fast trail fades. [0, 1]. |
Color | a_ArtefactsColor | Artefacts color. |
Type | Name | Description |
---|---|---|
bool | independentTimeOn | In case of using Time.timeScale = 0 (or Application.timeScale = 0) ,it stops shader timer and it's animation. If you still need shader to run, use unscaled time" feature. |