Better mesh normal smoothing defaults

Hi,

the way mesh smoothing has been handled in Blender both in 2.79 and currently in 2.8 introduces a need for users to perform quite a few frustrating actions most of the times a new mesh is crated.

  1. One has to go to an object menu, and select shade smooth.
  2. Then you have to go to a completely different menu, a mesh tab of properties panel
  3. Then you have to dig out an obscure “Normals” rollout, where you enable an important Auto Smooth feature
  4. Then you have to change the default value for autosmoothing from no-sense-making 180° (which basically disables auto smoothing even if it’s enabled) to something reasonable like 30°
  5. Only then you end up with mesh normals that behave like a regular 3D software would.

So I propose following changes to defaults:

  1. All new meshes are created with smooth shading enabled
  2. All new meshes are created with Auto Smooth enabled with angle set to 30°

This way, when you are just starting off, you don’t need to worry about explicit management of your normals unless you need to. And ONLY when the need for explicit, custom normal management arises, you can simply turn off the Auto Smooth feature.

This will make things easier for everyone.

10 Likes

Agree 100%!
Sensible defaults save the user alot of time. Good suggestion.

1 Like

The main problem with enabling autosmooth is performance, it’s rather expensive. Particularly when combined with subdivision surfaces it’s not very helpful and mainly makes things slower.

The plan is to add smooth shading and subdivision surfaces to smooth primitives by default, once some changes to the subdivision system have been made to make it a setting outside of modifiers.
https://developer.blender.org/T54943

At that point it may make sense to auto enable autosmooth by default for non-subdivision meshes. Even then we may need to try optimizing it first.

4 Likes

+1 for autosmooth default. It gets old doing that for every mesh.

6 Likes

Are subdivision surfaces less expensive than Autosmooth?

I agree that autosmooth should be enabled by default and the angle be set to a reasonable number. If you do a lot of environments and hard surfaces, this can really save a lot of time. Maybe you can make an option to turn off that feature for people who are more likely to do subdivisions or low poly work.

At the very least, change the default value away from 180°. There is literally no reason to enable autosmooth if you’re going to use 180° as your smoothing angle. It would also ease the pain if, for instance the object was automatically set to Smooth Shading when Autosmooth is enabled, because there is no reason to have Autosmooth enabled unless Smooth Shading is also enabled.

1 Like

The point is not that either is more expensive individually, but that the combination of the two is expensive and basically incompatible. For low poly game assets you might use autosmooth more, for high poly meshes for stills or animation you might use bevel and subdivision surfaces and barely any meshes with autosmooth at all.

The default autosmooth value is already 30° for new meshes as far as I can tell, except the default cube seems to need fixing still. (Edit: fixed now).

2 Likes

is it really better to use more mesh instead to controlled autosmooth(and maybe mark sharp)? where is the main impact, CPU or memory?

I am completely fine with turning off auto smoothing as soon as subdivision surface modifier kicks in. That makes complete sense. The main point here is that one should be able to start modeling right after the primitive is created, instead of having to go through a normal setup every single time.

It’s common for artists to avoid perfectly sharp edges in their models, because it looks unrealistic. What the performance is compared to a lower poly model with sharp edges depends on a lot of factors, and doesn’t really matter if that’s not the result the artist is going for.

1 Like

This is a really interesting discussion, because in a game pipeline I use custom sharp edges all the time, but in an animation pipeline I use subdiv all the time exactly like you mention. Also it’s worth pointing out that it’s important to use autosmooth for high poly objects as well when using the bevel modifier without subdiv.

However, even though they are incompatible, I think it’s possible to make the defaults easier for both. Currently the normal editing workflow for games is a hassle, and I think this approach would help quite a bit:

The only edit I’d make regarding subdiv workflow incompatibility would be to allow the subdiv modifier to override the autosmooth angle and set it to 180 by default. It would add one checkbox to the modifier, remove a checkbox from the mesh data, and overall make the process for both games and animation easier (who uses subdiv without smooth shading?).

So just to be clear, would making meshes smooth shaded by default with auto-smooth enabled be feasible if auto-smoothing would be automatically suspended as long as subdivision surfaces are enabled?

1 Like

That kind of makes sense. Autosmooth could be on by default and let the subdiv modifier turn it off.

Has any progress been made on this? Blender overall has undergone many changes towards feeling and working like a model software, but every time I create an unshaded primitive, it feels like a throwback back to 90’s :slight_smile:

Hi,

I also would like to know about the progress in this case.

Maybe it would be easier to add a setting in the preferences where you can preset the angle for auto smooth for future projects.

Yeah, having it as preference for new objects save a lot of time.

Something like this would be ideal (mockup):

5 Likes

Any news on this topic? Would be nice to have it be a global toggle since I have to enable it on basically all my meshes every time