I used Blender2.79 and I think I just find the problem.

I have two objects and I want to make parent relations to each other,

when I used CTRL + P, the child's transform location still relate to the world's location.

enter image description here

However, when I manually use (properties -> object -> Relations: Parent) and select the object that I want to set it to parent. It used the parent's transform.

enter image description here

I belive those two ways are doing the same things and I miss the setting or this is a bug??

  • $\begingroup$ I just realize if I used (CTRL + SHIFT + P) and it can used parent's transform as world transform. $\endgroup$
    – Edmond
    Nov 15 '17 at 9:13

This is from wiki:

At the very moment of establishing a hierarchical relationship between objects (parenting), the transformation coordinates of the child object remain unchanged, and yet this object doesn't change its global transforms visually (location, orientation or scale), though its reference "world" has changed from global origin (zero transforms) to the global transforms of the parent.

Origin of unparented objects is the global origin: global (0,0,0) location, zero rotation, and unity scale. After being parented, the new origin should be that of the parent. And it is. But a correction matrix is applied to the child, so that the new reference point is not the global transforms of the parent, but the global origin. This correction matrix is applied to the global transforms of the parent before applying them to the child.

This correction matrix called Parent Inverse

You can do this operations with Parent Inverse:

Alt + O (clear origin) - this operation clears Parent Inverse and makes object go to the parent location.

Ctrl + Shift + P (Make parent without Inverse) - it's like what you do in properties -> object -> Relations: Parent. Or like Ctrl + P and Alt + O and Alt + P Clear Parent Inverse in one comand

Alt + P Clear Parent Inverse - Like Alt + O but for rotation and Scale.

Why Blender using Parent Inverse?

Let's try 2 objects with Parent Inverse:

enter image description here

and without:

enter image description here

As you see, transform matrix, applied on parent object without inverse, makes child object distorted. If you want this effect - you are welcome, but mostly, we don't want it


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.