Shouldn't the smooth/flat faces feature be removed?

Since Blender 2.8 also is about cleaning up some confusing parts of Blender…

Wouldn’t it be a good time to remove the old smooth/flat faces feature? It doesn’t even produce correct shading. Just create a smooth cube and set the top face to hard. The remaining smooth faces still behave as if the top face also is smooth.

And with the auto smooth feature it actually isn’t needed anymore. Since this also takes sharp edges into account it can achieve the same (and more) in a correct way.

What do you think?

Auto-smooth is considerably slower than regular smooth when modeling, as it has to re-calculate normals and stuff as you modify the mesh. So I wouldn’t get rid of it completely, unless there is a way to make it more efficient.

2 Likes

I’ve wondered why “Shade Smooth” and “Shade Flat” are not one button, like an option; it’s either one or the other.

2 Likes

ah! didn’t think that performance would be a big problem.

that’s one of those things that I never thought about… :sweat_smile::sweat_smile:
(when dealing with whole objects, but I think kakapo was talking more about the edit mode shading)

Edit: oh wait, I see why it is two buttons now. When you have multiple objects with different shadings you may wanna select them all and put them all to flat or smooth, which means the best option is indeed the way it is now, or a dropdown menu, so that you can select the shading for them all directly. If it were a toggle button it would be inconvenient some times when you have a million objects and the last one selected is not the shading you want them all to be, so you would have to toggle all to a wrong state of shading before clicking again on the toggle and setting them all to the desired shading, and when dealing with heavy scenes this can be frustrating.

If auto-smooth angles of 0 and 180 could act as flat and smooth shading internally (no recalculation needed), there wouldn’t be any performance decreases and it would simplify the workflow quite a bit. I posted about this on Right-Click Select not too long ago.

A few things to be aware of for this proposal to make sense:

  • Smooth and flat shading is not truly a property of the object, but a property of the object’s edge data.
  • Setting flat shading gives exactly the same result as setting smooth shading and then marking all edges as sharp, but is less flexible.
  • Marking an edge as smooth (also called clear sharp) has no effect unless the object is set to smooth shading.
  • Marking edges as sharp, once smooth shading is on, has no effect if auto-smooth is not on. In other words you need to enable something automatic in order to do it manually.
  • Marking a sharp edge will always result in that edge being sharp, while clearing a sharp edge will not always result in a smooth edge, since it doesn’t effect Auto Smooth. This result is that in order to do things manually, you need to turn on something that can, by default, automatically override what you are about to do.

Therefore, in order to actually modify an object’s normals with total freedom, one needs to:

  1. Set shading to smooth
  2. Turn on Auto Smooth
  3. Turn the Auto Smooth angle up as high as it goes
  4. Mark sharp edges (as defined by select -> sharp edges) as Sharp instead of using the Auto Smooth angle
  5. Smooth or Mark Sharp any edge

Doing this every time I create a game asset gets very tedious. It would be much faster and more intuitive for everyone if every command does what it says it does from the get-go.

My proposal:

  1. Have all objects be smooth shaded, always (since it can account for both smooth and “flat”)
  2. Have all objects use Auto Smooth, always
  3. Remove Auto Smooth as an option, but keep the Smoothing Angle available to edit
  4. Set the default Smoothing Angle to either 0 or 85 degrees, so it works well with the majority of objects
  5. Make the “Shade Flat” command set the Smoothing Angle to 0
  6. Make the “Shade Smooth” command set the Smoothing Angle to 180
  7. Allow “Mark Sharp” and “Clear Sharp” to override the automated Smoothing Angle

That way we have the exact same functionality, but with a much more simplified and intuitive system. The current five step process just becomes:

  1. Smooth or Mark Sharp any edge
9 Likes

That proposal sounds very good to me. I hope this can be achieved somehow with good performance.

(I haven’t used Maya in a long time. But if I remember correctly in Maya an edge doesn’t simply store the information sharp/smooth but can be assigned a smoothing angle. So the smoothing angle isn’t per object but per edge. But probably this would be even slower to calculate. :))

Yes! Listen to this guy :slight_smile:

1 Like

I couldn’t agree more. It’s also important to consider that the new Weighted Normals modifier and improved Bevel Modifier require Auto-smooth to be enabled in order to work. This may throw a wrench in your idea #6:

There would have to be some additional consideration here I think since the optimization you suggest may break down when the angle is set to 180 and there are weighted normals somewhere in the modifier stack. Overall, a great suggestion though. Right now, we’re having to go to 3 places in the interface and set 5 or 6 different settings to use weighted normals. I especially think new users would have a hard time trying to figure out why setting Weighted Normals settings in the bevel modifier seems to have no effect.

2 Likes

It should definitely be simplified or/and removed. @jonlampel is spot-on here, we’re all repeating all 5 steps every single time…

Flat or smooth should be actually controlling the angles within the auto smooth,
Auto smooth should never be an option, its becoming status quo even more nowadays

2 Likes