Broken Screen

Broken Screen

When browsing Bluesky, I stumbled upon Jordan Cain's (@oddenough.art‬) reference pictures of a broken phone screen (Go follow him!)

And I love screens! Broken screens even more. So after seeing those beautiful references, I decided to have a shot at it in Blender and try to recreate that look in a shader.

So here's a short article of the simplified process that I went through to get the following result :

⚠️
This is not a fully fledged tutorial, it's more of an overview of the overall process.
Final render of the broken screen
Top down view of the broken screen

First step was to create a proximity detector with Geometry Nodes, for the impact point. Here I used a sphere, a Geometry Proximity node driven into an Attribute.

Geometry Proximity detector

This gradient is then used to drive a Voronoi various attributes in the Shader Editor. I also used a node to distort the Voronoi a little bit and get that crack effect.

A Voronoi texture distorted by a noise and the geometry proximity mask

One cool thing with Voronoi is that each cell has a unique color. You can use that color to make useful masks.

A black and white mask of the Voronoi cells

Next step is to prepare the different "features" of the broken screen. The most important one, is the RGB matrix of the screen itself.

It was made using brick textures, with an offset for the Red Green and Blue pixels.

Here are the resulting elements, first, those bright lines that you can see in the reference, made with stretched noise textures, then mixed using the Voronoi Cells mask we've seen earlier.

RGB bright vertical lines

Next step is the phone UI shining through that broken screen. I imported a phone UI, made a vertical blur by using a whitenoise displacing the input Vectors, and mixing that blurred version with the original one.

The blur effect on the screenshot lack some details and sharpness because they are taken quickly in the viewport for the breakdown, but they look sharper in Cycles.

Next step is to make some addition masks, like vertical and horizontal lines, that you can later use to darken the screen in some places.

With all that done, I started multiplying and adding all those masks together, in separate RGB channels, using the Voronoi Cells mask to make some interesting combinations.

⚠️
If you have RGB textures (e.g. the phone UI) separate RGB channels with a Separate RGB node.

I then multiplied each channel with the corresponding pixel matrix (RxR, GxG, BxB). Then added them back together with a Combine RGB.

Good, we have the broken pixels! But we also need the broken glass.

I used the very first Voronoi mask to make a normal map, and a simple shader for the broken glass.

Then I added some details, fingerprints and scratches in the roughness, and glass dust around the impact.

Put the RGB pixels in the emission aaaaand done!

Then I choose the point of impact, put a camera with a nice angle and defocus, and I just added a little compositing on top.

Cycles render
And the compositing

Here it is for my little breakdown of the broken screen effect, and the first article on my website! I hope you found it useful.