attribute interpolate with object merge
3078 9 0- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
HI, so I'm trying to get spawning pop particles to follow the position of a deforming mesh that has been bought in through an object merge node. I am using attribinterpolate but it seems to ignore it. It works fine when I use a standard geo node or a .abc file. Is there something im doing wrong with the object merge?
- jsmack
- Member
- 7762 posts
- Joined: Sept. 2011
- Online
- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
- jsmack
- Member
- 7762 posts
- Joined: Sept. 2011
- Online
- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
- jsmack
- Member
- 7762 posts
- Joined: Sept. 2011
- Online
The setup in your scene has numerous issues.
To achieve the effect you are after, an attribute interpolate is insufficient. A technique that may work for you is advecting(pop advect by volumes) the points by the velocity field created by the flip simulation, and then projecting the points onto to the surface(minpos() in pop wrangle). It won't be exact, but it will more or less stick the points to the moving surface.
- The dop io node for importing the flip simulation is not configured to import anything, so no simulation data is copied back to your object ‘mesh’
- The attribute interpolate inside the node with the pop simulation has no attribute name set for the uvw value, and this is where the error arises from. The parametric uv is required for interpolating surface attributes.
- The setup as designed cannot work because a surface mesh created from a vdb is not a deforming mesh, it is unique topology from frame to frame. There is no surface from which to correlate uvw and prim number with as each frame presents a surface that is completely different from the frame before.
To achieve the effect you are after, an attribute interpolate is insufficient. A technique that may work for you is advecting(pop advect by volumes) the points by the velocity field created by the flip simulation, and then projecting the points onto to the surface(minpos() in pop wrangle). It won't be exact, but it will more or less stick the points to the moving surface.
- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
Thank you ever so much for the reply, truly grateful! I have tried to implement your suggestions and i'm not being very successful.
So in my popnet I assigned a the popadvectvolume node, the advection type is set to update force as i only want to change the particle acceleration value, the velocity source is set to SOP (I think this is right)
Then directly below it i have added a popwrangle and added the vex code you suggested. minpos(). Im relatively new to Houdini and my vex knowledge is very very limited but realised that this will identify the closest point on my surface?
Anyways i have done all of this and nothing happens. I assume its my newbie knowledge that is letting me down here. is there a glaring embarrassing mess up that im doing here?
So in my popnet I assigned a the popadvectvolume node, the advection type is set to update force as i only want to change the particle acceleration value, the velocity source is set to SOP (I think this is right)
Then directly below it i have added a popwrangle and added the vex code you suggested. minpos(). Im relatively new to Houdini and my vex knowledge is very very limited but realised that this will identify the closest point on my surface?
Anyways i have done all of this and nothing happens. I assume its my newbie knowledge that is letting me down here. is there a glaring embarrassing mess up that im doing here?
Edited by lemmingsammy - Feb. 8, 2018 12:23:11
- jsmack
- Member
- 7762 posts
- Joined: Sept. 2011
- Online
The code example is just for a rough idea, you'll need to fill in the details.
http://www.sidefx.com/docs/houdini/nodes/vop/minpos.html [www.sidefx.com]
http://www.sidefx.com/docs/houdini/vex/functions/minpos.html [www.sidefx.com]
For the advection type, you'll want update position, as updating acceleration or velocity won't keep the particles in sync well enough. You don't want v to be non-zero either as that will make the particles fly off like sweat droplets.
http://www.sidefx.com/docs/houdini/nodes/vop/minpos.html [www.sidefx.com]
http://www.sidefx.com/docs/houdini/vex/functions/minpos.html [www.sidefx.com]
For the advection type, you'll want update position, as updating acceleration or velocity won't keep the particles in sync well enough. You don't want v to be non-zero either as that will make the particles fly off like sweat droplets.
- lemmingsammy
- Member
- 37 posts
- Joined: Jan. 2017
- Offline
-
- Quick Links