March 28, 2017 22:55:53
So I'm trying to UV some animated geometry and the UVs are all over the place (even worse with a uv layout node as it packs it differently each frame). I would like to the UVs to be “fixed” and use the last frame (the completed circle) but I'm not sure how to do that.
UPDATE: added example file
March 28, 2017 23:55:26
Just do the math yourself.
@uv = set(@P.x,-@P.z)/radius/2.0 + 0.5;
March 29, 2017 00:27:50
in your network replace the uvtexture SOP with a uvproject SOP. Use the initialize options on your last frame, that's it.
The uvtexture SOP will use the whole uv space for your geometry, since that is changing every frame that's why it's also changing the projection. The uv project SOP stays in a fixed position and size.
March 31, 2017 14:31:59
So how would unwrapping (specifying seams) work for alembic animation? If new geometry is created, you can't unwrap each frame.
March 31, 2017 14:44:39
UV unwrapping isn't applicable to animations with non-consistent topology. You would have to unwrap each frame with a changed topology. For things like fluid simulations or other procedural geometry that has inconsistent topology from frame to frame, uv coordinates are not typically used, shaders would typically be created to use a 3-space like a rest field to get procedural patterns to stick. If textures need to be applied, you could look into a planar mapping such as triplanar mapping. I speak from a VFX perspective, I don't know how inconsistent topology is handled from a realtime perspective.
March 31, 2017 16:39:42
Hrm. I suppose one workaround would be to hide geometry (ie. inside existing geometry or WAY off screen) until it's needed. But that's not practical and would negatively impact how I use Houdini. For example, to create the ring animation I animate the carve from 0-1. Now I would have to completely rethink my approach.