Strange behavior of normals when scaling

Hello everybody!

I have an request for an explanation of a behavior I recently found out.
The attached scene consists of two default cubes, which are first scaled by .1 on Z, their top face is subdivided (10), they are subsurfed (2) and then a displace modifier is applied to their top face (power of 0.02 along normals, procedural wood texture).

The only difference is that the left cube was scaled in edit mode and the right in object mode. This produces very different (wrong, in the case of the right cube) results, as seen on the picture.

It seems that normals are also scaled (obviously) - their draw length on the right cube indicates so, but are not renormalized - which is hard to understand as normals are directions and should always be of unit length. Is this a normal behavior or I’m missing something? Is there a way to manually renormalize them?

I also noticed, during my modelling, that sometimes normals are transformed so that they are not perpendicular to the plane anymore. This usually happens with a lot of transformations done in both modes.

Any explanation (or any sources where this is explained) of the logic behind this and ways to avoid such complications would be highly appreciated.


I just now found out that applying scale/rotation to object data actually renormalizes normals.

This is not done on the fly during scaling probably because of optimization reasons?

Anyway guys, sorry for spamming :o, this thread can be considered as solved…