In this very short tutorial, I’ll show you how to create the effect of an old CRT monitor in our Blender renders using an image and a couple of nodes in the Shader Editor.



Video Transcript

Hello everyone! In this very short tutorial, I’ll show you how to create the effect of an old CRT monitor in our Blender renders using an image and a couple of nodes in the Shader Editor.

Some time ago, I published a video in which I showed how I recreated my very first PC setup from the early '90s. The issue with that scene and the renders created from it is that the image on the screen is projected using an Emission node with an image Texture applied to it. The colored dots typical of monitors from that era are not reproduced, so the image looks more like a glowing poster and makes the final result less realistic.

Back then, monitors generated images using red, green, and blue phosphors. There were essentially two types of layouts. The first was the Shadow Mask, with RGB triads arranged in a dot pattern. The second was the Aperture Grille, characterized by phosphors organized in vertical stripes and used mainly in higher-end monitors.

My monitor used the first solution, so the first thing I did was create a tileable image in Blender by arranging circles with Emission shaders to replicate the pattern of those phosphors, rendering everything through a Camera set to Orthographic mode on a black background. The resulting image can then be tiled multiple times.

In the Blender scene of the PC setup, I then selected the material assigned to the screen and added an Image Texture node with the phosphor triad image to this node setup.

To make the image appear as if it were drawn by phosphor triads, two operations are necessary. The first is multiplying the image by the mask. This operation should be performed using a Color Mix node set to Multiply mode, with the Factor parameter set to 1. The result of this multiplication should then be connected to the Color input of the Emission node.

The second operation concerns the mask mapping, because the mask needs to be scaled down and repeated many times. This is done by connecting the UV output of a Texture Coordinate node to a Vector Mapping node, then connecting the Vector Mapping node to the Vector input of the mask image.

To scale down and repeat the mask across the display UV mapping, we need to modify the X and Y values of the Scale parameter in the Vector Mapping node. We can connect an Input Value node to the Scale input of Vector Mapping to change the values all at once.

As for the Value setting, I did not perform an exact calculation, but keep in mind that on CRT monitors the distance between equivalent phosphors, called Dot Pitch, was often around 0.3 millimeters. A 14-inch monitor had a display width of approximately 284 millimeters, so to achieve a believable effect the phosphor mask should be repeated several hundred times. The exact value depends on the monitor type and the structure of the texture being used.

On screen, I’m now showing a comparison between the render created with only the Emission node and the one created using the new node setup shown in this tutorial. With the new setup, the final result will appear much darker than the original, but this is completely normal because the image now contains black areas between the phosphors and, in general, each phosphor carries intensity information for only one color channel, so the overall brightness decreases. You can compensate for this by increasing the Strength value in the Emission node.

Alright, that’s all for this video! As with some of my other videos, the text version of this tutorial and additional resources are available on my website at the link you can find in the description. If you found this video helpful, you can thank me with a Like and by subscribing to the channel. See you soon!

Search Tutorials

Enter a phrase or multiple comma-separated keywords to search.

This is a personal website and does not constitute a sales channel. The pages dedicated to 3D models document a selection of my work and do not contain offers, prices, purchasing procedures, or commercial links. I am not currently accepting requests for custom work, consulting, or other professional collaborations.


EXTENDED PRIVACY AND COOKIE USAGE POLICY