Website powered by

LCD Screen Shader - Unreal Engine 4

This shader is supposed to mimic the look of an LCD panel public advertisement panel. It was very important for me that it could all work in a single shader, without having a separate shader for the body of the sign.
The mesh has 2 UV maps, one for the body of the sign and one for the LCD part of the shader (explained better in the picture descriptions). The textures of the body are overlayed on top of the LCD shading so that the only part where the screen appears is where the body diffuse is transparent.
The shader features many different features including brokenness, screen resolution, LCD panel distance and bad viewing angles (ironically enough, on purpose).
The shader is optimized as best can be, with combined textures and clever re-utilization of existing ones for many different features.

All the art used for this shader is made by me.

Screen Distance Slider in action: the screen gets pushed back and forth depending on the position of the slider. 0.5 is the clamped minimum, 2 is the clamped maximum.

Screen Distance Slider in action: the screen gets pushed back and forth depending on the position of the slider. 0.5 is the clamped minimum, 2 is the clamped maximum.

Screen Distance Slider in action: when rotating the object with screen distanced turned up, you'll be able to notice the simulated push back of the panel. The sides of the body of the sign cover up part of the LCD as it moves around.

Screen Distance Slider in action: when rotating the object with screen distanced turned up, you'll be able to notice the simulated push back of the panel. The sides of the body of the sign cover up part of the LCD as it moves around.

Brokenness slider in action: Sliding through some random values of the broken slider. The slider is clamped into 0 to 1 float values.

Brokenness slider in action: Sliding through some random values of the broken slider. The slider is clamped into 0 to 1 float values.

Pixel Resolution Slider in action: the slider scales the LCD overlay of the shader. The RGB channels of the Advertisement texture are actually reflected into the pixel overlay: the final diffuse is the RGB channels recombined into the pixel layout.

Pixel Resolution Slider in action: the slider scales the LCD overlay of the shader. The RGB channels of the Advertisement texture are actually reflected into the pixel overlay: the final diffuse is the RGB channels recombined into the pixel layout.

Bonus feature: Bad viewing angles to mimic the way traditional LCD panels work

Bonus feature: Bad viewing angles to mimic the way traditional LCD panels work