Maniphest T51527

Axis-constrained global scaling behaves incorrectly.
Closed, Archived

Assigned To
Bastien Montagne (mont29)
Authored By
Marius Eugen Mihai (mem)
May 17 2017, 6:12 AM
Tags
  • BF Blender
Subscribers
Bastien Montagne (mont29)
Marius Eugen Mihai (mem)

Description

System Information
Windows 10 64 Bit
nVIDIA GeForce 1080

Blender Version
Broken: 2.78.5 890d871 (but it really doesn't matter, I'll explain)
Worked: I found a slightly different behavior way back in version 2.54, but still not right

Short description of error

Scaling any object in object-mode and constraining the transformation to a global axis produces incorrect results. Scaling an object along the global X-axis should only stretch it in that direction, but it doesn't do it correctly when the object is rotated. Instead, it appears to do a combination of scaling along all the local axes by different amounts.

Exact steps for others to reproduce the error

This is best exemplified by following these steps:

  • Add a cube to the scene. Any object works, but it's easier to see using simple primitives.
  • Rotate the cube -20 degrees on the Y axis.
  • Now scale the cube while constraining it to the global X axis (either use the scaling gizmo or hit S, then press X once)
  • You'd expect the cube to stretch only on the X axis, but it stretches on the Z axis, as well. It looks like Blender is trying to preserve 90 degrees angles between the edges of the cube, thus being "forced" to scale along the local X and Z axes.

I've made a video showing this behavior, using a cube and a sphere. I've scaled up the properties and tool shelf to better show what's happening and that I am indeed scaling on the global X axis.

https://youtu.be/lNPbvpaiwFk

I cleared the scale and then scaled the objects in edit mode. I think that's how the behavior should be in object mode, too.

Maybe this was a deliberate decision, this behavior was intended for some reason. But from my perspective, it's not intuitive and leads to undesired results. But if it wasn't intentional, just something that managed to go unnoticed for a long time, then maybe something can be done to fix it.

I know that a strong argument against doing anything about this is that it's been around for so long and nobody seems to have had a problem due to it. I myself have just noticed it, and I've been using Blender on an almost daily basis for close to 10 years now. But what has been seen... :)

Whichever decision you take regarding this, thank you for all your hard work!

Event Timeline

Marius Eugen Mihai (mem) created this task.May 17 2017, 6:12 AM
Bastien Montagne (mont29) changed the task status from Unknown Status to Archived.May 19 2017, 12:45 PM
Bastien Montagne (mont29) claimed this task.
Bastien Montagne (mont29) added a subscriber: Bastien Montagne (mont29).

Thanks for the report, but no bug here, Blender object does not store a complete deformation matrix but a set of location, rotation and scaling data, which make it totally impossible to have a non-deforming scaling besides when aligned with Object local axes.