Network flow. SOPs - DOPs.

   10990   7   4
User Avatar
Member
20 posts
Joined: Dec. 2011
Offline
Hi.
I have a problem understanding the order the nodes are executing. It is simple in SOPs - top to bottom, left to right. But what about several networks with links (fetch, import etc) to each other?

1) DOP Import SOP. Does it just import geometry from dyn. objects or all DOP network is being executed. I mean is it importing whatever geometry and position data already exist or does it push to run all DOP network and get the resulting data?

2) What is the proper way to use SOPs to calculate something for DOPs.
Let's say i have a sphere and a bunch of boxes. I need every box to follow one point of sphere. For this simple task i can use the same order of dyn objects as order of points in sphere so $OBJID == $PT or even pull that data from SOPs to new custom data on dyn. objects.
Then i can use expressions in Motion, RBD State, Force nodes to calculate vector and use it as velocity or force.
But what if i need some more complex calculations i can do in SOPs (VOP SOP for example). How and when should i bring it in?
I attached example, where “tforce” Sopnet inside Autodopnet is working just fine, finding the right force. But if i copy all these nodes to new Geometry node the same level as Autodopnet it's just stop working. I even Object merged the result back in tforce sopnet - it's not working.
Is there some rule of scope where i need all stuff be inside its “mother” network or something??

Hope someone could explain to me when this tforce sopnet is being executed, and what is the overall flow of the network.

Any info will be greatly appreciated.

p.s. There is problem sometimes where cubes are just stuck on random frame - i change solver rbd-bullet and back and it solves the problem, Is it bug or all my setup is just wrong?

Attachments:
3ak_moveToGeoPonts2.hipnc (336.8 KB)

User Avatar
Member
20 posts
Joined: Dec. 2011
Offline
Anyone?
Are there no people using DOPS in Houdini?
User Avatar
Member
10 posts
Joined: May 2012
Offline
1) the DOP import SOP pulls in the data that already exists in your DOP network. In the node, you specify which DOP object you wish to copy the data from and what data you want to copy. For example, if I was pulling my FLIP fluid particles in from a DOP simulation. In the DOP import node, I would specify that I want to get information from the flip fluid object (by default this is usually named “fluidfluidobject1”), and the data that I want to copy, which is Geometry. Geometry in this case being the name in DOPs for the FLIP fluid particles.



The DOP import just pulls information from the DOP network, so if you advance a timestep and the DOP network hasn't cooked, the DOP import will cause that DOP network to cookm unless you have disabled simulations.

2) The simplest way to pull SOP geometry into DOPs is with the SOPgeometry node. This node asks that you specify the path to the SOP you want to import. You can use this data to calculate forces, masks, scalar/vector fields, etc.

If you want to do something as specific as having each DOP object follow a different point on a sphere, you can use a SOP solver. The SOP solver create a SOP network inside of your DOP network that is evaluated at each time step. This lets you use SOP nodes to influence your DOP simulation during the solve.



inside the SOP solver, you have just a regular SOP network. By default it puts down several DOP imports that bring in your DOP simulation information. These are the same nodes that you put down at the normal SOP level, the only difference is that they are evaluated at every timestep and the output is then piped back into the simulation. So you could have your animated sphere inside your SOP solver (or bring it in with an object merge), and you could set the velocity of your RBD points to point towards a specific point on the sphere.



Alternatively, you could use a VOP force DOP node (which allows you to use all of the awesome VOP nodes you'd have in a VOP SOP) to create forces in DOPs. You could have create a force that brings in the appropriate point on the sphere and then creates a force towards that point.
User Avatar
Member
20 posts
Joined: Dec. 2011
Offline
Thanks for detailed answer.

1) So pulling geometry data out to sops will not force dopnet to cook(recook) unless you advance timestep and dopnet just doesn't have data for that time.

2) As for using sopsolver vs sopnet in dopnet - it's at least twice slower. I don't know why.
Another reason why i'm asking all that is sopgeo, sopsolver creates some data on my dyn. objects, while sopnet isn't. It leads to more memory consumption and slower calculations.

So to calculate for example some vector to use as force on my dyn objects i can use sopsolver which creates new geometry data or adds attribute to default geometry data (it may be inefficient ) only at solve stage - so my rbd solver will solve force data from previous step only.
While using sopnet in dopnet i can import geometry data here - use point per object with vector attribute and then some force dop will pull out this data using point() expression. It works faster (2x+) but sometimes just errors out, i don't know why (it may be some kind of circular dependency - sopnet import data from dopnet and then dopnet uses result).
So the main question is about using sop solver or just sopnet (faster sopnet in dops.

For example several shelf tools uses sopnets, not sopsolvers - Make Breakable etc..

Big thanks in advance.
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
As for issue 2, a SOP Network inside DOPs is just that, a local SOP network. If any of the containing SOPs have dependencies that change from anything, the SOPs marked dirty have to evaluate.


A SOP Solver DOP is an entirely different thing. It is a DOP solver. It needs to evaluate with every timestep in the simulation. It will fetch various types of geometry data from each DOP Simulation object in turn, process them, then write it back to the DOP simulation object.

If there are other solvers that reference that modified geometry (Cloth Solver, RBD Solver, Bullet Solver, Wire Solver, FLIP Solver, Another SOP Sop solver, etc), then those solvers may need to have additional features enabled and account for the deforming and topology changing geometry.



Knowing this, you can choose to use a local SOP Network if all you are doing is geometry analysis or constructing geometry to feed in to a source type DOP node (SOP Geometry DOP, etc).

You choose to use a SOP Solver DOP if you want to modify simulation geometry on the given DOP objects as the simulation marches forward. That's why it's called the SOP Solver DOP.
There's at least one school like the old school!
User Avatar
Member
41 posts
Joined: March 2018
Offline
old_school
You choose to use a SOP Solver DOP if you want to modify simulation geometry on the given DOP objects as the simulation marches forward. That's why it's called the SOP Solver DOP.

Does modify include translate? Or is it just more complex stuff or deformations etc? Is there a simpler way to just translate an inactive object as the simulation marches? Use a static object? But I want constraints to active packed geo to be dragged by an animated piece of geo.
User Avatar
Member
8575 posts
Joined: July 2007
Online
I'd suggest continuing in your original thread if you need more clarification or even posting a simple file with description of what you are after

since resurrecting ancient thread that was abandoned even before packed rbd times may be confusing

but yes, it can include translate for packed RBDs, since they are part of DOP Object's Geometry data, so they can be manipulated with SOPs
However for animated packed RBDs its much easier to use RBD Configure SOP and set them to active=0, animated=1 and solver will automatically update their transform from input
Just make sure your geo is packed before animated, so that transform on top of packed primitive (packedfulltransform intrinsic) represents the animation
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
41 posts
Joined: March 2018
Offline
Ah OK. Apologies on making zombie thread lol!
Thanks for the advice, seems I must now know all I need to to get this to work.
  • Quick Links