origin/pivot - confusion over transforms

   12886   7   2
User Avatar
Member
33 posts
Joined:
Offline
I hate to keep asking such simple questions, but I only seem to be having issues with the simple things.
I'm finding myself being rather confused by the way that Houdini handles pivot points and transormations. According to the help browser, all transformations are set relative to an object's pivot point - this is of course the method that nearly all 3d software uses for handling transformations.
It would make sense, then, that if I were to move the pivot point, the geometry (and all child objects) should move with it. But this isn't the case in Houdini, because (from what I can tell) Houdini handles object origins and pivot points separately (The help browser's word on the subject of pivot point vs. origin is of course just “TBD”).
That's fine. It's probably convenient to have it that way. But how exactly can I edit an object's origin, then?
User Avatar
Member
2199 posts
Joined: July 2005
Online
The objects origin by default is always (0,0,0) but if it's centroid (ie the average of all it's points) is no where near (0,0,0) then you can transform it at sop level. So in effect you move the origin by transforming all the points, I think that is similar to lots of other packages too, you just don't normally get to see it. The pivot point can be anywhere and it is simply the point about which all transformations at object level are performed. Similarly, each transform SOP can have a pivot point defined independently.
When you transform an object at object level the origin moves with the object so if you have transforms on an object and turn on the origin it may then not be at (0,0,0).
The trick is finding just the right hammer for every screw
User Avatar
Member
7773 posts
Joined: July 2005
Offline
I think the confusion is that Vormav doesn't realize that the phrase “all transformations are set relative to an object's pivot point” actually means “the translate/rotate/scale parameter values are relative to the pivot parameter values”?

If you want to move all your child objects, then just modify the translation parameter.
User Avatar
Member
33 posts
Joined:
Offline
Well, let me give a different example: Say I have a sphere, which of course would have its origin for child transformations directly at its center (and the origin for the transformations of the sphere itself is of course the world origin). But I then decide to move the pivot point to, say, one of the vertices of the sphere. My understanding was that, if I were to then make another object a child of the sphere at that point, and sets its transformations to zero, then this child object should be centered exactly at the vertice where I moved the sphere's pivot point to.
I suppose my confusion over this probably just stems from too much time in Max, which does handle child transformations exactly that way.

Of course, Houdini does have pre-transforms (which I love) that can allow you to change what is considered to be the zero point in the parameter pane. But let's say that, for whatever reason, you were parenting a whole crapload of objects to another object, and wanted them to automatically be pre-transformed to a place other than the parent's origin. You could of course just select all of the child objects and edit all of their tranformations (and clear them) all at once. And I'm sure that this wouldn't be too difficult to manage through an expression. But I just want to see if there's another built-in option that I might be missing for things like this (Forget whether or not it's practical; I'm just curious!).
User Avatar
Member
7773 posts
Joined: July 2005
Offline
Wouldn't you just insert a Null Object and move that then?
User Avatar
Member
321 posts
Joined: July 2005
Offline
Vormav
Well, let me give a different example: Say I have a sphere, which of course would have its origin for child transformations directly at its center (and the origin for the transformations of the sphere itself is of course the world origin). But I then decide to move the pivot point to, say, one of the vertices of the sphere. My understanding was that, if I were to then make another object a child of the sphere at that point, and sets its transformations to zero, then this child object should be centered exactly at the vertice where I moved the sphere's pivot point to.

Nope. All the values of a transformation go into determining where *this* object is going to be. Thus, any children objects will start their transformations at the resulting origin defined by all parent xforms.

Furthermore, the pivot has no impact on translation, only on rotation and scale. Thus, if you're sliding the pivot values, and nothing happens, then nothing will happen to any children. The pivot point is just a shorthand for first substracting the pivot as a translation, then doing the rotates and scales, and then re-adding the pivot back into the translation (it might be add first and then subtract, I can never remember).
Antoine Durr
Floq FX
antoine@floqfx.com
_________________
User Avatar
Member
7773 posts
Joined: July 2005
Offline
Antoine Durr
Furthermore, the pivot has no impact on translation, only on rotation and scale.

Actually, it does. It's just normally not noticed because it gets removed after the full TRS transform is done and because of the default transform order.
User Avatar
Member
321 posts
Joined: July 2005
Offline
edward
Antoine Durr
Furthermore, the pivot has no impact on translation, only on rotation and scale.

Actually, it does. It's just normally not noticed because it gets removed after the full TRS transform is done and because of the default transform order.

Pick any transform/rotate order, zero out your rotations and scales (well, set scales to 1!). Now slide the pivot, and nothing will happen. Of course, if you have rotations in there, then lots of stuff happens.

I should have been clearer: the pivot point has no correlation to the translate parameter of a transformation, but it has a lot of impact on the resulting transformation (and yes, the resulting transformation will likely have a translation component). But without rotation or scale, pivot will have no effect.
Antoine Durr
Floq FX
antoine@floqfx.com
_________________
  • Quick Links