Flat Metallic Surfaces
By Neil Blevins
Created On: Nov 9th 2004
Updated On:
Dec 6th 2024
Software: Any

Go here to read this tutorial in Russian.

Ever notice how a metal shader in a CG application can look great on a curved surface such as a sphere, but that same shader looks bad on a flat surface like a cube? What's up with that?

Figure 1

The reason is simple. Metals are highly specular surfaces, and hence a lot of their color comes from a specular reflection of their environment. On a curved surface, any given area is able to reflect more of the environment since the surface points in several different directions, capturing more of the environment in its reflection. On a flat surface, the surface is all pointing in a single direction, hence capturing less of the environment in its reflection. It's actually reflecting just like the sphere, but reflecting so little of the environment that it appears to be one solid flat color.

Flat Surface

Notice the faces of the surface pointing towards the viewer reflect only a portion of the environment.

Curved Surface

Notice the faces of the surface pointing towards the viewer reflecting a much larger portion of the environment.

How to fix this? Well, in real life, if you look at a flat metal surface, that surface probably isn't really flat. Due to bad manufacturing, or heat or water damage, etc, that surface is actually slightly warped. You may not be able to see it immediately, but it's there, and hence what looks like a flat surface is actually a slightly curved surface, and hence the reflections are a little more interesting, and so you don't get the boring flat reflection you see above. So how do we replicate this in cg?

Large Soft Noise

One way to fix this is with a very large sized by low intensity bump map, applied to your material. This will simulate that slightly warping that causes flat surfaces to be not quite flat, and will give them a more realistic reflection.

Bumped Surface

Notice the faces of the surface pointing towards the viewer reflecting a larger potion of the environment than the flat surface did. Also note the chaotic surface of the diagram above is as crazy as it is just to show off the principal, in actual fact you'll only be ever so slightly modifying the surface with a very low intensity bump.

So lets apply a procedural noise map to the bump slot of our material (as an example, this is from 3dsmax, but every major 3d app has a similar procedural noise)...

Figure 2

And we get the following result...

Figure 3

Now you have a more interesting reflection.

Here's a real photo of the effect. Notice how the reflection on these metal phones in an airport get all distorted due to a warble in the metal, even though the surface seems flat.


This surface isn't metallic, but it is reflective, and you can see how the soft bump on the side of the truck distorts the reflections of the bridge, even though the side of the truck seems to be flat.


You can use this bump technique both for a photorealistic image, as well as something a little more stylized, like those "chrome logos" you've probably seen for videogames and in commercials. Without the bump map, your text may look boring...

Figure 4

But add the bump, and you'll get something more visually interesting...

Figure 5

In fact, if you animate the environment map, say moving it horizontally, you can get that nice "reflection passing over the surface" look, perfect for logos.

As a practical example, here's a logo I did for Blur Studio (the client was Bandai) which uses this exact technique to do the chrome in the logo.

Figure 6

Breaking Up Panels or Windows

Ramy Hanna has a good tutorial on a similar technique to break up flat panels (when you have multiple pieces of geometry, like windows in a building, instead of a single piece of geometry like the side of a truck.)

Basically the technique is such: Apply a noise to the bump of the panels, but apply a different noise to each panel. That way, instead of the noise traveling through all the panels uniformly, each will be distorted differently, like how it would happen in the real world. See the images below for an example.



If you happen to be using 3dsmax, a quick way to do this is in your noise map, instead of XYZ space, set the noise to Explicit Map Channel 1. Apply a UVW Xform modifier to each of your panels (not a single modifier, but different modifiers for each object). Select every second panel, and change the "U Offset" amount to 0.5. Now the noise map is shifted on each panel.

Here's a maxfile, max 2014 format: panel_bump.zip


This site is ©2024 by Neil Blevins, All rights are reserved.
NeilBlevins.com TwitterMastodonBlueskyInstagram CaraBloggerFacebookLinkedIn ArtStationKickstarterGumroadYouTube IMDB