Intermodal container with procedural shader

Hi! I modeled this shipping container that I’m planning to use in a future project. It has a procedural shader that changes its color, brand logo decals and wear and tear each time it’s duplicated.
I know that I didn’t reinvent the wheel or anything but still I wanted to share here.

Here’s a glimpse at my shader in video :
Video on my youtube channel.

And here are a few renders with different shader outcomes :


Nice work. I built a similar thing that uses the viewport colour assignment for an object to control the colour and textures on objects. I then link the object into the scene and control the material through the viewport colour.


Hey ! I’ve done that too !
There is another way now that you can access attributes in the shaders .

The viewport color is faster but allow only one color / value per material.
That work also on linked collections !

1 Like

I use the colour to encode arbitrary info. For example, I take the R value and interpret it as a key into a map for colours. I take the G value for the amount of dirt. And I sometimes use the B value to control the brightness of any lights.


Yes ! I’ve tried that also ! But still, it’s only 3 values. And sometime it’s cumbersome to use.
With the attributes you can have as many properties as you need. And with proper names, that is quite useful when working in a team.
As said, it’s a bit longer to setup but that allow more things !

1 Like

I’ll check it out - thanks.


Cool idea! I wish there was a real “random node” in Blender though, not just the one in object properties.

Why would you need it ?
There is also the random per island value ( Cycles only) , and by plugin that or the random in a white noise texture you can get other random values.

Because I need several random values in one material and the random socket in the object info returns only one; I never thought about your solution with the random per island and the white noise, I will look into it.

1 Like

Yes white noise is a great way to get another ‘seed’ of randomness, it outputs colors so you can separate RGB and get 3 different random values from one single node. You can probably chain them and get other random seeds as well.

1 Like

Looks like a very versatile model for use with anything that involves shipping, or showing how shipping [containers] and intermodal railroading actually works.

But, do shipping containers routiely have doors on both ends?

1 Like

Some do, I’ve also made a version with doors only on one end. (With the same procedural shader).

How very interesting. I didn’t know that until now. :slight_smile:

Many Christmases ago, I saw a book about “shipping containers” that I regret having never bought at the time. Guess I need to look it up now on Amazon.

Anyhow – what you’ve done here is very, very good, and the procedural shader really works. :+1:

Thanks main issue I’m having now is that this shader is very heavy on resources & render time. And since it’s meant to be used in scenes with lots of containers I find myself baking various iterations of it… Ah at least it was interesting to make.