Ultimate screen shader for Cycles and EEVEE

by Abdoubouam in Materials, Shaders, Textures

For an interesting deal check https://blendermarket.com/products/shader-bundle and get 33% off for a bundle containing 4 different shaders.

Ultimate Screen Shader is your complete solution for creating realistic LCD, LED and CRT screen materials easily and with a high degree of configuration and freedom. It's 100% procedural and works perfectly with EEVEE and Cycles, and it is suitable both for beginners who expect it to work out of the box, and also for experienced artists who want more control.

It doesn't matter if you like abstract art or love realism, you can recreate screens and distortions you want, whether it uses old technologies such as CRT or new technologies like LCD, LED OLED displays.

Update v1.1: Fixed compatibility issues with the official 2.79b release. It has been tested with 2.80 Beta (Cycles and EEVEE), 2.79.6, 2.79b, 2.78 and 2.77 and everything worked.


  • Quick to set up : All you need is a single quad plane with a UVApply one of the provided material examples, select your image and you're ready to go!
  • Procedural : Everything is created with the standard Blender nodes (math, separate/combine RGB/XYZ, color mix...etc) not only to save video memory, but also to create some effects that are impossible to create by simply using images. There are 240+ nodes in total, but everything is neatly presented in node groups that are easy to read and understand.
  • Works with EEVEE and Cycles : With everyone excited about EEVEE (including myself!), you're probably going to need to use it with EEVEE. The good news that it's been tested and it works perfectly out of the box! In fact the promotional video and most of the renders are rendered with EEVEE.
  • Modular : It might be unusual to hear this term used for materials and shaders in Blender,  but it brings a lot of benefits like the ease of use and the infinite amount of possible combination of effects. Think of "modules" as layers of images and effects in Photoshop, Krita or your favorite image editing software.
    This also means that you can get rid of all the effects and distortions you don't use. You only want to render a closeup on the RGB pattern? simply use the  "RGB Matrix" and the "Pixelize" nodes with your image.
    You want to add a simple distortion to the image? add the "Distortions" node as follows
    Do you want the fringe effect? add two more "Distortions" node with different phases, and combine the 3 images with the "Combine RGB" node.
  • pixel-perfect : If you have ever created a close-up rendering of an LCD screen then you are probably familiar of the issues that come with high-resolution images. You either need to accept the sub-pixels that don't have a uniform brightness, like the following picture
    or you need to manually resize your image in an photo editing software to make it aligned with the RGB pattern.
    With my shader you will not need to do this at all! I've included a "Pixelize" node, simply give it the wanted resolution and it will take care of everything. It also makes all the effects pixelized and aligned to get rid of any of the problems I mentioned earlier if you were to create this on your own. I even made all the effects (distortion, static noise, rounded rectangle) rely on this and never give undesirable results
  • animatable : I made it possible to create ll kinds of animations when using this node. The demo video is just a simple example of what of what you can achieve with it.
  • Many filters, distortions and effects : I created all kinds of distortions and effects that you might need such as color and brightness control, screen curvature (curved old CRT TV's or a modern flat LCD/LED TV), static noise, skew, offset, horizontal noise, controllable pattern length and with...etc. Each node is explained in the documentation.

Full vs Lite versions:

I know that not everyone is ready to pay for the full functionality, so I made a "Lite" version that only includes the basic node setup (pixelize 2D > image > RGB Matrix > Screen shader). The following table compares the two versions

Why should I get this?

  • because you can't afford to spend a lot of time to create something similar to this, which has 240+ nodes in total. 14.95$ is barely worth 1 hour of your time, and you will need a lot more to create something similar.
  • Not having a very clear idea how to solve certain problems that you will encounter while creating this kind of effect, especially if you do not have some background in shader programming with GLSL, Cycles, OSL...etc
  • Supporting the Blender development fund and encouraging me to create more products

Related Products:

Dot Matrix Shader

Automated 7-Segments display Shader

Random Texture Selector

Note: the shaders can be mixed together as demonstrated in the following video

How to use:

All you need is a plane with a UV map. You can either append the whole material and apply it to your model, or you can import the individual node groups and build and configure your own setup.
There are many different ways to use it, and while the default setup might cover most of the use cases, you might find out that you need to create your own setup.

To help you with that, I will explain each node and what it's expected to deliver for you.

Pixelize 2D:

This node takes care of pixelizing your image and changing its resolution at any time, instead of doing so manually in a photo editing software such as PhotoShop and GIMP. Simply set the X and Y resolution, then plug the "Pixelated UV" output to your image (or other node) UV input.

The X and Y resolution outputs are simply for convenience and are made to be plugged into the appropriate slots in the "RGB Matrix" node so you'll have to set resolution only once.


This takes care of all kinds of distortions to the image. It acts on the UV map, therefore ideally you need to plug this between the "Pixelize 2D" and your image node.
The "Distortion Scale" sets the size of the distortion, similar to the scale of a noise texture.
"Distortion Amplitude" is the strength of the distortion.
"Distortion Phase" is made so you can animate the distortion seamlessly. All you need is to set 2 keyframes for the beginning and end and it's done.
"Skew", "X Shift" and "Y shift" are self-explanatory and can be visualized easily.

Combine RGB:

This is made for convenience, it takes care of separating the RGB channels of each input image, then using the red, green and blue channel of the first, second and third image respectively.

Color Manips

It takes care of adjusting the hue, saturation, brightness, contrast and warmth of the image.

Rounded rectangle:

It creates a rounded rectangle mask to simulate the effect found on old CRT Screens. It is recommended to use it with the "Pixelize 2D" node to have a pixel-perfect result.

Screen shader :

This takes the resulting image and adds a glossy shader to it and it simulates a curved screen even on a flat plane.
There's also a "Displacement" node that can be used to displace the surface of your screen if you want a real geometrical displacement and not a faked one.

Chromatic Aberration UV separation:

This will separate a single UV vector and offset it into 3 separate ones. To be used with 3 image textures and the "Combine RGB" node.


Creates a scanline effect, seeon mostly on old monitors. Adjust the amount and scale to your liking, then use the "Offset" parameter to animate it.

Static Noise:

The name says it all. You can use this to add static noise to your image. I recommend using it with the "pixelize 2D" node.
Generally you won't need to adjust the Aspect Ratio, especially if the scale is too big/small, but if you do you can calculate it by the following formula : width/height.
Use the "Phase" parameter to animate it.

Horizontal Black bar

This adds one or many Horizontal black bars on the screen as seen on many old screens (or even newer ones). Adjust the number and the width, then use the "Offset" to animate it.

RGB Matrix:

This one is probably the most important node. It takes care of creating the RGB pattern seen on each pixel. You can adjust the width and height of each of the subpixels (R,G and B). A smaller subpixel means more dark space between each pixel and the other. Generally their size should be smaller on older screens and vice versa.

It is important to have the X resolution and Y resolution the same as the "Pixelize 2D" node, otherwise it will not be aligned. That's why I recommend connecting the "X resolution" and "Y resolution" of the "Pixelize 2D" node with the inputs of the "RGB Matrix" node.

Do NOT connect the UV input to the "Pixelated UV" from the "Pixelize 2D" node, otherwise you will get incorrect results.

Does it work well with EEVEE?

Definitely! The demo video and some renderings were created with EEVEE. Just make sure to have at least 8 samples for acceptable results

Can I use a node several times?

Yes! You can for example use two distortion nodes in a row for a more distinct distortion effect, or use 3 of them in parallel with 3 images to create a fringe/chromatic aberration effect.

The only limit is your imagination.

Do I have to use all the nodes?

No. That's the main idea behind the modular concept.

Only add the nodes you need.

Item Rating

This item has an average rating of 5 from 1 ratings by the community.

  • Elian Koll 3 months ago

    Really Good, very useful and simple. But you write softwareversion 2.79 and i try it first there and it doesnt work under 2.79 only in 2.8

    • abdoubouam 3 months ago

      Thanks for the review, I'm glad you enjoyed it. My mistake, I've tested it with 2.79.6 but not with the official 2.79b. I already spotted what causes the problems and I'm working on a fix, it should be ready in a few hours

Purchase this item to leave a review!