Dear Houdini friends - can I please check if the following notes are correct. As I'm learning H I'm writing my own notes, as I guess many of us might do, and the whole area of world space / object space relationships is an important one for me. I'd therefore just like to get confirmation that my understanding - see my notes below - is correct, or not! If not, I look forward to some corrections. This is such a fundamental matter I really want to make sure I have it right. Thank you.
(I've looked, but failed to find a similar explanation in the docs - if there is one, please let me know!)
--------------------
A geometry object node (a geo container) has a centroid, a pivot - and a handle.
The Centroid defines the centre of the Geo container.
The Pivot defines the centre of transformation for the container.
The Handle defines a temporary centre of transformation for the container.
By default the Pivot and Handle are co-located at the container centroid, but both can be moved, independently.
An object’s pivot might be moved to match the centre of action for a mechanical linkage.
An objects handle might be moved to provide a temporary centre of action for object transformation.
Note that in the Geometry context the centre of object space will be based around the container Centroid - not the pivot, nor handle.
--------------------
Centroids, pivots and handles
2036 3 0-
- Mike_A
- Member
- 396 posts
- Joined: Aug. 2018
- Offline
-
- Mike_A
- Member
- 396 posts
- Joined: Aug. 2018
- Offline
-
- tamte
- Member
- 9595 posts
- Joined: July 2007
- Online
your explanation seems technically correct, may make sense to some, may be confusing to others
since there is so many intricacies that it's difficult to describe everything as there may be more things coming to play that one realizes, even though most of the times they can be ignored for simplicity of explanation
so from my unerstanding:
each object has world space transform which defines the transform of the Object (in your words "geo container") in world space
this transform consists of Parm-Transform (TRS and Pivot parms on the object), Pre-Transform and Parent-Transform (if for simplicity you don't count some other transform properties or Constraint transform overrides)
"centroid" is a location of object's origin (object space {0,0,0}) in the world space
"pivot" values represent object space offset from it's origin and serves as pivot for parm transform scale and rotation before even Pre-Transform or Parent-Transform are applied
Technically it probably just a traditional pivot contributing to the final Parm-Transform matrix
"handle" transform is an independent world space transform that serves for manipulation of Object's world transform (which contributes to Parm-Transform considering its Pre-Transform, Parent-Transform and Pivot and is decomposed to TRS) whenever Attached to Geometry
snapping handle to centroid will snap it to described centroid world space location
snapping handle to pivot will snap it to pivot's world space location
inside of the Object you are in it's Object Space so all coordinates are in object space completely independent of Pre-Transform, Parent-Transform, Constraint Overrides, ...
in general it's best to avoid introducing any world space transform to Objects where you are performing simulation unless its an intention to have object space sim
also it's best to avoid non-uniform scaling on Objects
since there is so many intricacies that it's difficult to describe everything as there may be more things coming to play that one realizes, even though most of the times they can be ignored for simplicity of explanation
so from my unerstanding:
each object has world space transform which defines the transform of the Object (in your words "geo container") in world space
this transform consists of Parm-Transform (TRS and Pivot parms on the object), Pre-Transform and Parent-Transform (if for simplicity you don't count some other transform properties or Constraint transform overrides)
"centroid" is a location of object's origin (object space {0,0,0}) in the world space
"pivot" values represent object space offset from it's origin and serves as pivot for parm transform scale and rotation before even Pre-Transform or Parent-Transform are applied
Technically it probably just a traditional pivot contributing to the final Parm-Transform matrix
"handle" transform is an independent world space transform that serves for manipulation of Object's world transform (which contributes to Parm-Transform considering its Pre-Transform, Parent-Transform and Pivot and is decomposed to TRS) whenever Attached to Geometry
snapping handle to centroid will snap it to described centroid world space location
snapping handle to pivot will snap it to pivot's world space location
inside of the Object you are in it's Object Space so all coordinates are in object space completely independent of Pre-Transform, Parent-Transform, Constraint Overrides, ...
in general it's best to avoid introducing any world space transform to Objects where you are performing simulation unless its an intention to have object space sim
also it's best to avoid non-uniform scaling on Objects
Edited by tamte - Jan. 16, 2023 15:24:28
Tomas Slancik
CG Supervisor
Framestore, NY
CG Supervisor
Framestore, NY
-
- Mike_A
- Member
- 396 posts
- Joined: Aug. 2018
- Offline
-
- Quick Links

