Basic Info
VHS Pro is a camera post-processing effect for Unity 3D which emulates look and feel of retro video cards, graphics adapters and cathode ray tube (CRT) screens. It emulates resolution decimation, signal color encoding and downsampling, screen bleeding and phosphor trail (ray tail/fading on a phosphor screen), VHS tape noise (VHS data corruption), interlacing and jitter (deviation) in the analog video signal, color dithering and color palette matching from existing palettes or your own custom one. Itâs best for 2D console-like games, 80âs/90âs/retro/VHS look, security cameras and robot/computer vision and video processing.
Thereâre 3 versions of VHS Pro.
- Built-in RP
- HDRP
- URP
Link (To Asset Store)
Trailer
Manual
VHS Pro v3.0 supports all 3 : Built-in RP, URP, HDRP. info [here]( [RELEASED] VHS Pro - Analog video signal and CRT screen emulation page-3#post-8704329)
VHS Pro v2.0 added HDRP version. info [here]( [RELEASED] VHS Pro - Analog video signal and CRT screen emulation page-3#post-5758531)
VHS Pro v1.1 Built-in RP original version features are listed below
1. Custom Texture
You can use custom movie texture or a sprite if you want it to be affected by the effect.
2. Cathode Ray Tube Emulation
Emulates CRT Screen. Bleeding, Fisheye, discretion (quantization) and vignette.
a.Vertical Resolution / Quantization
The picture will be quantized vertically by lines. You can choose the amount of lines:
You can choose between these modes:
âFullScreenâ (no quantization), âPAL 240 Linesâ (240 Lines per height), âNTSC 480 Linesâ (480 Lines per height) or âCustomâ (you can set custom number of lines).
b. Bleed Mode (CRT screen bleeding mode)
âBleedingâ is a cathode ray tail on the phosphor screen. When the ray (electron beam) passing certain point of the phosphor screen, the point keep glowing some small amount of time after the ray is already gone. So, the ray has a fading tail behind itself while going across the screen. This effect called bleeding.
You can choose between these modes: âOld Three Phaseâ, âThree Phaseâ, âTwo Phaseâ. These modes emulate different screen bleeding curves. You can make bleeding longer or shorter.
c. Custom Bleeding Curve
Allows you to generate your own bleeding YIQ curves. Sync YQ channels and change the Bleed Length.
d. Fisheye
Emulates a real screen by âbendingâ the corners of the image and making it look like if it would be put thru a wide-angle lens. You can adjust fisheye amount.
e. Vignette
Emulates vignette (reduction of an imageâs brightness or saturation at the periphery compared to the image center). You can adjust amount and change speed how it pulsates.
3. Noise
Emulates different sorts of noises.
a. Vertical Resolution / Quantization
The noise vertical quantization. You can inherit from the CRT Vertical Resolution or use custom vertical resolution for noise which is different from CRT Vertical Resolution.
b. Quantize Noise X / Pixilate
If you want to quantize noise by width (i.e. make squares instead of tiny vertical lines) then adjust this value.
c. Background Noise
This is a simple background noise (âfilm grainâ-like noise). You can adjust transparency.
d. Tape Noise
Emulates noise which you can find on old VHS cassettes. Noise lines floating down the screen.
You can adjust transparency and speed.
e. Line Noise
Emulates noise in the analog video signal and VHS cassettes. Noise lines popping up randomly within the screen. You can adjust transparency and speed.
4. Jitter
Emulates deviations in the analog video signal and CRT.
a. Floating Lines
After the screen was quantized vertically it consist of the horizontal lines which will float down the screen if this option is on. It works the best on the low resolution.
b. Scan lines
draws the black lines in between the screen lines. You can adjust the width.
c. Stretch Noise
Emulates noise, and data corruption on the VHS cassette plus some CRT jitter. Looks like if some of the screen lines were stretched and floating up and down the screen.
d. Jitter Horizontal
Emulates interlacing jitter. You can adjust the amount.
e. Jitter Vertical
Emulates analog video signal and CRT jitter. Adds a bit of YIQ shifting. You can adjust transparency and speed.
f. Twitch Horizontal
Shifts/displaces the image horizontally sometimes. You can adjust the frequency.
g. Twitch Vertical
Shakes/Shifts screen horizontally sometimes. The images âjumpsâ or âfallsâ vertically. You can adjust the frequency.
5. Analog Signal Tweak
YIQ is the color space used by the NTSC color TV system. The analog video signal is transmitted in YIQ and not in RGB. In this section you can adjust the YIQ values.
a. YIQ Permanent Adjustment
âAdjust Yâ, âAdjust Iâ, âAdjust Qâ - use these to make a permanent adjustment.
b. Shift YIQ
âShift Yâ, âShift Iâ, âShift Wâ - use these to tweak/shift the values.
c. Gamma Correction
use this to balance the gamma(brightness) of the signal.
6. Phosphor Trail
Emulates phosphor screen decay.
âInput Cutoffâ - Adjusting brightness threshold of input. How much of each frame affects the trail.
âInput Amountâ - Amplifies the input amount after cutoff.
âFadeâ - Adjusts how fast the trail fades. In other words itâs a feedback amount.
7. Tools
Additional tools.
a. Unscaled Time
When you are pausing the game using Time.timeScale = 0 (or Application.timeScale = 0) it stops all the animation, sound, etc. It also stops shader timer and itâs animation. If you still need shader to run while this sort of pause you can use âunscaled timeâ feature. The shader will keep running even when your Time.timeScale == 0. It will use Time.unscaledTime instead of Time.time.
b. Debug Bleed Curve
Helps to debug bleed curve.
c. Debug Trail
Helps to debug phosphor trail.
Update Log
v3.0
-URP version: added
-HDRP version: rewritten for new Unity 2022.2.1f
-HDRP version: fixed DLSS bug in
-BRP version: rewritten for Post-Processing Stack v2 3.2.2
-BRP version: merged with Graphics Adapter Pro Plugin, new features added
-Graphics Adapter Pro is deprecated
-all 3 version have the same fields now
-custom palette field is deprecated. but itâs still possible to add one
-fixed bug for adding shader features to a build
v2.0
- re-wrote for Unity 2019.3 HDRP Post-Processing Stack
- added resolution presets
- merged with Graphics Adapter Pro plugin and added functions like Color Encoding, Dithering, Palette Color Replacement
- removed features like fisheye, vignette, gamma correction because they already exist in Post-Processing Stack
- removed âcustom curveâ support
v1.3
+switched from multi_compiles to shader_features (faster building, smaller build size, but you have to turn on multi_compile for the features you switching on/off in runtime)
+added feedback color
+added fisheye hard and soft cutoff
+added hyperspace cuttoff
+renamed movietex to bypass tex
+auto disable movie texture for ps4/xbox/mobile
+added bleeding on/off switch
+fixed âforâ loops for windows
+fixed âlines floatâ feature
+added âlines floatâ speed - with both ways
+fixed ps4 bug
v1.2
- added signal noise
- added distortion to tape noise
- added tails to tape noise
- added color shift to tape noise
- make better background noise (fixed cross pattern)
- renamed background noise amount to alpha
- renamed background noise to film grain
- put noises into YIQ space
- a lot of noise performance optimizations
- renamed jitter vertical to jitter
- renamed jitter horizontal to interlacing
- renamed tape noise values (amount to alpha, threshhold to amount)
- renamed/switched shift and adjust of signal tweak
v1.1
- changed vertical jitter from RGB color space to YIQ color space
- fixed gamma correction range. now you can go both directions
- fixed scanlines - made them more expensive but better looking
- added scanlines width parameter - allows you adjust scanline width
- renamed CRT mode to bleed mode
- added custom bleeding curve feature - now you can create your own bleeding curves
- bleed amount renamed to bleed stretch
- added phosphor trail section
- added tools section
- added unscaled time feature - now you can use unscaled time
- made better UI
Contact
If you have any questions or want to report a bug, please, write here or PM on email: vladstorm00@gmail.com
Twitter: x.com
Screenshots