Jump to content

packed geo confusion


Recommended Posts

Hey guys,

sorry this is a basic question, just wanted to understand this bit more clearly.  If i convert say a voronoi fracture - or even just a 'copy to points' to packed geo, what i love is i can then manipulate each piece like a single point.  Say grab a few pieces and move them across or run a noise through the positions to offset the pieces.  But I'm getting confused as to whether this packed geo is represented as a point or a primitive at this level.

When looking at the attributes in attribute spreadsheet it feels like you are dealing with points as the position values are still on points.  Also i can run noise through a point vop to randomise the position (trying the same on a primitive vop doesn't work).  But if i try and select and move some of the pieces i have to be in primitive mode to select them. 

I've been able to work with this fine so far, but just wanted to know more about whats going on under the hood

Heres an attached example though probably not needed

 

packedprims.hiplc

Link to comment
Share on other sites

I think that makes sense when you think of how Houdini does structure geometry : primitives are made of vertices that refers to points. The "position" of a primitive is the barycentre of its components (and is calculated like that under the hood, in a Prim Wrangle for example, when you use @P for a prim).

A packed primitive is a "fictitious" primitive that contains only one point. So it makes sense that moving the point position moves the prim. And if I remember correctly, the orientation of the primitive is an "intrinsic" attribute of the prim, not the point. That explains why you need to be in Primitive mode for the select tool to orient it, move it etc....

I think you can read more about that here :

But that is just my guess, I don't really have info about the philosophy the dev used when coding that :-) I hope it helps you a bit...

 

Edited by StepbyStepVFX
Link to comment
Share on other sites

ah that makes sense in terms of what i was seeing happen.  I've only just started looking at intrinsic attributes for packed geometry but thats good to go on.  Seems like packed geo almost has two hierarchies of being moveable - the original packed geo 'points' which you could translate around and then also the intrinsic transform which can do the full orientation and scale aswell.  Still slightly confused but much less confused! :)  Definitely gotta read up on that stuff some more, but i can see why the selection thing was happening now.  Thanks

Link to comment
Share on other sites

By the way, I read also that intrinsic are attributes that are computed on the fly, not stored on the primitive. Not sure if that’s true for all intrinsic for packed prim : it is clear for position, it can be computed from the unique point of the packed prim, but don’t know how to calculate orientation from just a point without other point attributes.

That’s still obscure for me :-) But it does not prevent to manipulate them and do cool stuff ;-)

Link to comment
Share on other sites

19 hours ago, StepbyStepVFX said:

By the way, I read also that intrinsic are attributes that are computed on the fly, not stored on the primitive. Not sure if that’s true for all intrinsic for packed prim : it is clear for position, it can be computed from the unique point of the packed prim, but don’t know how to calculate orientation from just a point without other point attributes.

That’s still obscure for me :-) But it does not prevent to manipulate them and do cool stuff ;-)

it's not true for all intrinsics for common ones like bounds, measured(area, perimeter, volume) it's probably true

but definitely not for transform, pivot, unexpandedfilename, geometryid, viewportlod, ... and many others that you simply can't just derive from other data, they need to be stored and passed with the prim, like when you have class in programming, some getter functions return member variable values directly, but some will compute the values on the fly from others

while you can't compute orientation from just a point, there are also no point intrinsics so it's not like Houdini can either, unless you extract it from transform intrinsics of attached primitive for example if it has it

Edited by anim
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...