How can I manipulate a point/edge/primitave in world space?

   8582   20   3
User Avatar
Member
8 posts
Joined: May 2018
Offline
Hi, I am struggling to find a way to interactively transform the position of a selected point to a specific world coordinate. The edit node appears to only translate a selection relative to the current position. The Pivot Translate value does reflect the current world coordinate, however adjusting this does not translate the selection.

I can use a Wrangle to @P.x/y/z, but would love a way of selecting a bunch of points and moving them to a specific z coordinate for example.
Edited by SamIAm - Sept. 16, 2018 21:51:51
User Avatar
Member
6224 posts
Joined: Sept. 2011
Online
Have you tried switching the handle from component mode to world mode?

Hit the ‘m’ key to cycle through the options, or right-click the handle and select “Align Handle->World”.
User Avatar
Member
8 posts
Joined: May 2018
Offline
Setting the handle to world space still appears to only allow transformations using local coordinates. If I select a point using an edit node, the translate position always resets to 0,0,0. I can then move it relative to this position. I am hoping there is a way to mimic the functionality of the 3DsMax move dialog (attached) that shows (and allows the modification of) the position of a point in local or world space. Houdini seems to only present the offset component of this dialog.



Expanding the Pivot Transform section of the edit node does present the position of a selected point in world space, but adjusting these values doesn't move the point, only its pivot.
Edited by SamIAm - Sept. 15, 2018 00:51:47
User Avatar
Member
6224 posts
Joined: Sept. 2011
Online
There's no way to access the data like that with move tools; edit/transform tools work as deltas, they don't know anything about the location of the current point. Curious, what does that dialog put in for absolute position if there are multiple points selected?

The geometry spreadsheet allows keying in point positions directly, but its not recommended, as it locks the geometry to your scene file.

You might be able to hack the edit tool by dragging a point to the origin, committing the edit, and then snapping it back to the previous position using a template. Then the translate values will represent the absolute position.
Edited by jsmack - Sept. 15, 2018 04:20:39

Attachments:
edit-hack.png (299.6 KB)

User Avatar
Member
673 posts
Joined: July 2005
Offline
I thought the geometry spreadsheet would be the place to do this, but to my surprise editing position values in the spreadsheet just invokes a soft lock (light green flag on SOP node) and from there on the Edit SOP does some less than useful stuff. After searching a bit it doesn't look like there is a sensible way of doing this without wrecking workflow.
Please submit an RFE.
User Avatar
Member
59 posts
Joined: April 2018
Offline
I came across the following workaround. It doesn't seem like an intended use of the tools involved, so I can't say it'll work as desired in all cases.

1. Use an Add SOP to create a point at the target position, and template the node
2. Select an Edit SOP on the geometry to modify, and have the handle active
3. Select the points to move, and start orientation picking (shortcut ‘;’)
4. Pick the templated point from step 1

This worked for me on a couple of simple scenarios.

If there isn't a more straightforward way, however, I'd too encourage submitting an RFE.

Attachments:
hindie_2018-09-15_16-00-41.png (291.3 KB)

User Avatar
Member
1755 posts
Joined: March 2014
Offline
jsmack
Curious, what does that dialog put in for absolute position if there are multiple points selected?

I'm pretty sure it's a weighted mean for every well known 3d program, apart from the sculpting ones which together with Houdini, have no way of showing global values for selected objects and sub-obj elements. XSI (to whom it may concern) is somewhere in between these, because although it's capable of showing global values for multiple selected, say points, it's bugged, as the value changes based on points' id/# even though they line up on X say. Or they implemented a secret formula, but I'm betting on the former.
Edited by anon_user_89151269 - Sept. 16, 2018 09:18:27
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Because this isn't a simple hobby-horse of mine and is actually very important to the work I do and aspire to do in the future, I asked a 3dsMax user friend of mine to send me an image and info with a flavored cube I've ordered - clearly it's a weighted mean.

p.s. Couldn't rely on XSI's default crappy global calculation.

Attachments:
3dsmax_cube.jpg (351.8 KB)

User Avatar
Member
8 posts
Joined: May 2018
Offline
It looks like the Pivot Transform values behave the same as 3DsMax's Absolute transform, showing a weighted mean of the selected verts. I have mocked up an idea that I think would be a nice addition to the edit node, or perhaps just the transform node.

User Avatar
Member
8 posts
Joined: May 2018
Offline
9 times out of 10 I used 3DsMax's Absolute transform in conjunction with the ‘align to X|Y|Z’ edit mesh buttons. If I am working on something that involves symmetry, I could select the points I want to sit on the seam, align them all to a common X coordinate, and then transform them to world zero on one axis.

Most solutions I have found to this common modelling event in Mays and Houdini seem to involve scaling a selection of points and/or snapping them to the grid. Because I am a creature of habbit, I hacked together a thing that I have since found pretty useful. It simply aligns the selected points to a given coordinate on a given axis and adds them to a group. I use this group later on to automatically blast any faces that rest co-planar to the zero axis for clean mirroring.

It's like a basic version of my above mock-up with ‘Maintain Component Spacing’ turned off (as I rarely need to do that).

User Avatar
Member
4189 posts
Joined: June 2012
Offline
All the functionality is already in EditSOP but needs a button to automate it.

Make the Pre-Transform a negated relative reference Pivot Translate and then copy the Pivot Translate into the Translate.

Attachments:
Screen Shot 2018-09-17 at 2.25.39 pm.png (783.1 KB)
WorldSpace.hipnc (63.9 KB)

User Avatar
Member
8 posts
Joined: May 2018
Offline
Thanks fuos, that is a neat idea. The main problem from an interactive modelling perspective is the resetting of the transform position to 0,0,0 with each new selection. I found that if I selected a point it would translate to world zero, selecting a new point would then shoot it off to world zero too.
User Avatar
Member
342 posts
Joined: May 2014
Offline
Hello, I'm jumping into this thread to ask a simple question:
In /obj level, when I select an object, in its parameter pane, I can see and set its coordinates in local space, relative to its parent.
How can I see and set its coordinates in world space?
Thanks
Gz
Houdini gamboler
User Avatar
Member
49 posts
Joined: Aug. 2018
Offline
Ugh...
As a relatively new user I'm already developing something of a love/hate relationship with Houdini. I do realise that H takes a major shift in mindset when coming from any other DCC, but things like this really leave me scratching my head in frustration.

We all know H as this uber powerful piece of software, where 'everything is a point'... and yet there isn't a realistic way to place a point at a specific location in world space at SOP level. Really?
User Avatar
Member
3436 posts
Joined: Feb. 2012
Offline
Mike_A
Ugh...
As a relatively new user I'm already developing something of a love/hate relationship with Houdini. I do realise that H takes a major shift in mindset when coming from any other DCC, but things like this really leave me scratching my head in frustration.

We all know H as this uber powerful piece of software, where 'everything is a point'... and yet there isn't a realistic way to place a point at a specific location in world space at SOP level. Really?

You can use the Add SOP to do this.
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

patreon.com/animatrix | vimeo.com/animatrix3d
User Avatar
Member
49 posts
Joined: Aug. 2018
Offline
Animatrix - thanks for the response, it's appreciated.

Yes. I totally understand that. Not a big issue if it's just accurately placing a handful of points, but a whole lot of unnecessary extra work when it isn't.

Considering that Houdini is so 'point centric' it just seems strange to me that any point position data field doesn't have a one click option to switch between local and world space - in any relevant context.
Edited by Mike_A - Sept. 25, 2022 19:27:33
User Avatar
Member
6224 posts
Joined: Sept. 2011
Online
Mike_A
Ugh...
As a relatively new user I'm already developing something of a love/hate relationship with Houdini. I do realise that H takes a major shift in mindset when coming from any other DCC, but things like this really leave me scratching my head in frustration.

We all know H as this uber powerful piece of software, where 'everything is a point'... and yet there isn't a realistic way to place a point at a specific location in world space at SOP level. Really?

You can't edit in world space because that would require concatenating the transform from the object parents and applying the inverse to the point position. You can do this, but it will create a dependency and possible animation on vertex data. It's not feasible to have this built in to any point editing field.
User Avatar
Member
49 posts
Joined: Aug. 2018
Offline
OK. I know you're an expert user, so I'll accept that as the case. But please explain a little more for me if you would.

I understand that it would need to take into account the OBJ > SOP level transforms and that would create a dependency - but why would that be an issue? Isn't it exactly the same in any DCC across world and object level space? Other DCC's seems to handle this fine and allow data entry in world or local space. I'm not arguing the point here - I'm just wanting to understand the issue.
Edited by Mike_A - Sept. 25, 2022 16:08:14
User Avatar
Member
374 posts
Joined: Nov. 2010
Offline
jsmack
Mike_A
Ugh...
As a relatively new user I'm already developing something of a love/hate relationship with Houdini. I do realise that H takes a major shift in mindset when coming from any other DCC, but things like this really leave me scratching my head in frustration.

We all know H as this uber powerful piece of software, where 'everything is a point'... and yet there isn't a realistic way to place a point at a specific location in world space at SOP level. Really?

You can't edit in world space because that would require concatenating the transform from the object parents and applying the inverse to the point position. You can do this, but it will create a dependency and possible animation on vertex data. It's not feasible to have this built in to any point editing field.
Why is it possible in other applications? In Softimage you could even edit points in world space even on an animated mesh deformed by a character rig. Why is this so problematic in Houdini?
Edited by OneBigTree - Oct. 2, 2022 12:55:14
tamte
Member
6827 posts
Joined: July 2007
Online
It's not technically a problem in Houdini, you just need a tool with a state that does the conversion

and I think Edit SOP would be a good node to include such options

Since how it works in other apps it's just values entered in a tool state that get applied to whatever the final object space coordinates are, to avoid creating any live dependency which would not be desirable for adhoc editing of a geo
Tomas Slancik
FX Supervisor
Method Studios, NY
  • Quick Links