transform pieces, packed geo

   6958   10   5
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
This seems so simple and yet I can't get it to work. Feels like I'm missing something.

I'm just taking the crag geo, timeshift freezing the first frame, and then trying to use transformpieces to animate the frozen pieces. However the frozen pieces aren't getting rotation info.

Why isn't this working, seems pretty straight forward.

Second question is. Say I wanted to fill his volume up with points. How does one pack points, like you do primatives? The idea being, if I can get this transform pieces to work, then I could do the same thing with points representing his volume.

basically I'm trying to find a way to fill a volume with points and have it animated to the geo while maintaining volume.


Thanks
Chris
Edited by chris wells - Feb. 20, 2019 15:58:36

Attachments:
transformpieces.hip (295.1 KB)

User Avatar
Member
191 posts
Joined: Oct. 2018
Offline
I think the transformpieces sop needs an orient attribute to have correct rotation. But if you're just trying to scatter points inside the rest pose, you could give your crag points an ID attribute from $PT then scatter your points on the rest pose and use a point wrangle to transfer the animation:

matrix packedtransform = primintrinsic(1, "packedfulltransform", @id);

p@orient = quaternion(matrix3(packedtransform));
v@P *= packedtransform;

Plug your points in the first input and the packed geo in the second input. You do need to have the crag at the rest pose though, not just the first frame.

It's also worth noting that the crag test geo isn't really good for this because there's a few transforms inside the HDA that can mess up the transforms…
User Avatar
Member
84 posts
Joined: Aug. 2008
Offline
Transform pieces usually is for destruction, in your case to address the requirement please use transform by attribute.

Check the file attached. You'll be fine even with points from volume, cache them before attribute copy SOP.

Attachments:
transformpieces_fixed.hip (334.2 KB)

https://vimeo.com/jacyslin [vimeo.com]
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
Thanks for the help! I didn't really get how houdini was storing the intrinsics, or how they work for that matter.. So I'm reading up on it now,
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
Here's what I ended up with, just an exercise, thanks again for the help!

Attachments:
melt4.mp4 (604.5 KB)

User Avatar
Member
191 posts
Joined: Oct. 2018
Offline
Looks cool, what did you end up going with?
User Avatar
Member
57 posts
Joined: Jan. 2015
Offline
i did the extract transform matrix from the intrinsics, and then attribute transform.

still not sure why intrinsic transforms have 16 values. but it works.
User Avatar
Member
18 posts
Joined: Aug. 2018
Offline
dim1984kimo
Transform pieces usually is for destruction, in your case to address the requirement please use transform by attribute.

Check the file attached. You'll be fine even with points from volume, cache them before attribute copy SOP.

Hello,Thanks for the cool solution. I don't understand why inv_tm was used, would help a lot, thank you!
User Avatar
Member
11 posts
Joined: Dec. 2017
Offline
dim1984kimo
Transform pieces usually is for destruction, in your case to address the requirement please use transform by attribute.

Check the file attached. You'll be fine even with points from volume, cache them before attribute copy SOP.


Works like a charm! Thanks for the tip.
User Avatar
Member
78 posts
Joined: Aug. 2013
Offline
So is there a more user friendly way of achieving this in Houdini?
User Avatar
Member
8833 posts
Joined: July 2007
Online
coccosoids
So is there a more user friendly way of achieving this in Houdini?
if you open the file from the first post in 18.5.311 or newer it should work

Houdini 18.5.311 The Transform Pieces SOP now supports using packed primitives in the second and third inputs to provide the transforms. Thu. August 20, 2020
Tomas Slancik
FX Supervisor
Method Studios, NY
  • Quick Links