vel vs collisionvel , and staticObject node's collision and source volume node's collision

   7008   5   1
User Avatar
Member
13 posts
Joined:
Offline
Hi, I have a question about velocity and collision for dopnet sim, especially flip and pyro sims.

When taking a dynamic collision object into dopnetwork, there are 2 ways, using staticObject and sourceVolume nodes.

1 - I wonder how houdini exactly handles vel vs collisionvel to make a differences. I know vel field could be from noise or emitter or etc. And collisionvel is from moving collider. But what happens if we feed collisionvel as just vel, or other way around?! Does collisionvel take special treatment during solving?

2 - There are also 2 ways to feed collision surface, staticObject node and source volume node. People says staticObject's collision makes more accurate collision result. I wonder how houdini handle and make differences.


I would like to hear technical answers, instead of how to create/use nodes, thanks!
User Avatar
Member
74 posts
Joined: Dec. 2009
Offline
Static Object works for all solver. Source Volume works only for the solver the volume plug into.

Static Object, if deforming/translating, takes the trajectory into account, while Source Volume is not.

Static Object takes physical properties ie bounce, friction, etc, while Source Volume doesn’t.

vel is used for advection, pressure solve etc. collisionvel is only for collision detection.

Hope this helps.
https://www.linkedin.com/in/kelvincai/ [www.linkedin.com]
User Avatar
Member
13 posts
Joined:
Offline
>>Static Object works for all solver. Source Volume works only for the solver the volume plug into.
yes

>>Static Object, if deforming/translating, takes the trajectory into account, while Source Volume is not.
I am not sure trajectory means. But I guess collision detection>use surface collision, then it can track collision's surface points. Use volume collisions won't work for it.

>>Static Object takes physical properties ie bounce, friction, etc, while Source Volume doesn’t.
yes

>>vel is used for advection, pressure solve etc. collisionvel is only for collision detection.
I think collision detection should come from just collision attribute (surface), not necessary to have collisionvel attribute, right? I feel collisionvel create bouncing velocity, instead of directly merging into advection/pressure solve.
User Avatar
Member
6485 posts
Joined: July 2007
Offline
collisionvel is important as it defines velocity inside of collision field and therefore velocity of the collision object so that solver can enforce proper boundary velocity for vel field rather than 0
for collisions sourced from Objects collisionvel is created from object velocity according to solver settings

while using DOP objects as colliders has some advantages like:
- no need for recomputing collision volume if DOP object is nondeforming and taking all animation from scene level object motion
- no need to compute collisionvel as this is taken care of during the solve

for heavier sims I usually avoid using DOP objects as colliders at least for for Flip or Pyro as Build Collision Mask node has insane overhead with high resolution volumes and whether your DOP Object collision volume is reused or not you always pay the price of Build Collision Mask as that takes care of building collision* fields every timestep
In the end it may be much faster to just have precached collision and colisionvel attributes sourced from SOPs directly iinto those fields rather than through DOP object like Static Object despite the fact that that's what seems to be recommended and shelf tools create as well
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
13 posts
Joined:
Offline
to Tamte,
Thanks for your explanation, and I was late to reply here. This is because I have been watching webnair collision vimeos, which is related to this topic. It's very interesting that static object can takes velocity of dynamicObject. However, it only works with some solvers, not always. Thus I try to figure out what's the best way to bring dynamic objects per solvers.

From your thread,
>> solver can enforce proper boundary velocity for vel field rather than 0…
Ok, you mean the handling of collisionvel field are different from that of vel field near collision field, right? I am not 100% sure how much sim result makes change, but I will remember it. And also:
vdbfrompolygons > exterior band voxels. Default is 3 and surface attribute v to vel.
Then, if I change the band voxels, vel field also accordingly get thicker. As a result, the length of vel field in dop also is changed/increased. It's kind of sad because we don't know what's the true setting of proper dynamic velocity. (and probably velocity fed from staticObject could be different from sourceVolume's one although it uses same animated object.)

>>while using DOP objects a…
I don't understand what node you imply “Dop objects” in general . Do you mean rbdobject node, or rbd pack object node?

>>Collision Mask node has insane overhead with high resolution volume
are you talking about a sourceVolume node > Masks > DOP field to use as Mask ?

>> just have precached collision and colisionvel attributes sourced from SOPs directly iinto those fields…
I guess you are talking about building up manually GasMatchField and SOP_solver's objectMerge stuff, instead of using sourceVolume node, right?
User Avatar
Member
4 posts
Joined: Dec. 2017
Offline
tamte
collisionvel is important as it defines velocity inside of collision field and therefore velocity of the collision object so that solver can enforce proper boundary velocity for vel field rather than 0
for collisions sourced from Objects collisionvel is created from object velocity according to solver settings

while using DOP objects as colliders has some advantages like:
- no need for recomputing collision volume if DOP object is nondeforming and taking all animation from scene level object motion
- no need to compute collisionvel as this is taken care of during the solve

for heavier sims I usually avoid using DOP objects as colliders at least for for Flip or Pyro as Build Collision Mask node has insane overhead with high resolution volumes and whether your DOP Object collision volume is reused or not you always pay the price of Build Collision Mask as that takes care of building collision* fields every timestep
In the end it may be much faster to just have precached collision and colisionvel attributes sourced from SOPs directly iinto those fields rather than through DOP object like Static Object despite the fact that that's what seems to be recommended and shelf tools create as well

Hello there!!!
I'm new here. Saw the post very useful. Im trying a FLIP SIMM. Ship is cached as VDB for Static object Collision. If I use Volume Velocity Collision option it takes forever. I've been using Point Velocity Collisions lately. To use the Volume Vel Collision, Im trying to source the collision. The ship is cached with collision and collisionvel. Am I going right????
  • Quick Links