Using EdgeSplit Modifier to fix Smoothing errors in Blender
For this example, I've imported a lego brick from LeoCad
It looks okay so far. Time to add some gloss in node editor and apply smoothing.
Well that looks terrible. Maybe if I clean up the model. I'll turn the triangles to quads, remove doubles and recalculate the normals.
Well it's better but there are still those weird errors on the surface of the brick. That's what those black bands on the brick are.
This happens because the sharp edges need more geometry for smoothing (I don't pretend to understand anything more than that).
Using edge bevel would add more geometry but I would lose the sharp edges. Fortunately there is a modifier for situations like this, the Edge Split modifier.
With the Edge Split modifier applied, the smoothing errors are resolved without sacrificing the sharp edges.
Check out the pictures below to see the results of the Edge Split modifier applied to an Ironman mini figure I imported from Leocad.