Applying Transformations Causes "Hollow Looking" Models
Closed, InvalidPublic

Description

System Information
Windows 10, no graphics card (CPU based graphics)

Blender Version
2.77

Short description of error
As seen in the video, applying scale to the model turns it into, well... the glitchiest thing I have ever seen.

Exact steps for others to reproduce the error
from glitch.blend (attached), simply apply the scale and watch as the model commits suicide.

The normals definitely flipped, but the question is why.

Details

Type
Bug

This is because the object is on negative scale, that is, the object is flipped.

One solution would be to flip the normals in edit mode.
But since this is not the expected behavior. Maybe it's better to edit the code.

@Campbell Barton (campbellbarton), can you take a look? Here is a possible solution:

diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 4d7d7df0d2f..879e2817222 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -525,6 +525,9 @@ static int apply_objects_internal(bContext *C, ReportList *reports, bool apply_l
 				multiresModifier_scale_disp(scene, ob);
 			
 			/* adjust data */
+			if (ob->transflag & OB_NEG_SCALE) {
+				BKE_mesh_polygons_flip(me->mpoly, me->mloop, &me->ldata, me->totpoly);
+			}
 			BKE_mesh_transform(me, mat, true);
 			
 			/* update normals */

It makes things weirdier in your video because of the Shading/backface culling option turned on...
Then after apply scale what you see is only the inside of the model.

This is appending from a long time in blender, could be great to see it fixed one day, on the other hand we can live with it, tho it can be disturbing for newcomers...

Bastien Montagne (mont29) claimed this task.

Yeah, thanks for the report, but do not see any bug here, it is indeed expected that when you scale negatively, you get “inside out” mesh (that actually face winding, i.e. order in which face corners “turn around” face center, that get reversed, and imply reversed normals).