Jump to content

Is it possible to recreate standard POPs as VOP POPs?


Recommended Posts

Just wondering if it's possible. If it's possible, it would be faster than the provided POPs, right? If that's the case, then wouldn't SESI do this before?

I am asking because I read here that POPs aren't threaded, or was it SOPs? :unsure:

Just curious about people thoughts on this matter :)

Link to comment
Share on other sites

From docs:

"The VEX POP allows you to do almost anything that POPs can do themselves. It is possible to write one single VEX function which performs the task of many POPs. Because the VEX code is localized to one single operator, the VEX code will typically run faster than a network of POPs."

http://www.sidefx.com/docs/houdini12.0/vex/

  • Like 1
Link to comment
Share on other sites

Very inspiring :)

I am not sure about the functionality of the built-in POPs, but are there operators to do inter-particle collision, avoidance, attraction, find target, go to rotation, etc?

Kinda like particle flow's operators?

http://www.orbaz.com/documentation/particleflowtools/box2/

I like that in Houdini you can just make your own POPs using the infinitely powerful VEX/VOPs.

Also are the built-in POP's threaded? I saw the H12 video where it was shown as half of them are, if I recall correctly.

Link to comment
Share on other sites

I am not sure about the functionality of the built-in POPs, but are there operators to do inter-particle collision, avoidance, attraction, find target, go to rotation, etc?

Goals are really pretty simple, it's just aiming the velocity or acceleration toward a goal point. There's not a stock POP for it specifically, you could use expressions in a Velocity POP or something, but it's easiest to just do it in VOPs. Rotation is avaliable through the Rotation and Torque POPs but you can allso modify the

rot

quaternion attribute directly in VOPs. Also you can raycast with the Intersect VOP so you can have Ray SOP-like functionality in POPs.

The key to a lot of this, is that any VOP that wants a geomtery file can be fed a sop node path as long as you put op: in front of it. Like op:/obj/geo1/OUT

As far as I know there's no easy way to do inter-particle collisions, you can use the Interact POP to create interparticle forces (avoidance, attraction) but spherical or ellicptical collisions are something I've always wished for in POPs. Also missing is the ability to query the incoming geometry as a point cloud, you can access SOP geometry, but not the incoming POP geo. Knowmsayin'? Also you're confined to excrutiatingly slow expressions for finding the nearest Primitive and Paremetric uv position from a particle, this is handy stuff but it's just not practical to access because it's not a vex function.

Oh and if anyone could correct me on any of this I'd be their best friend forever!

  • Like 1
Link to comment
Share on other sites

Thanks tjeeds, this is the sort of stuff I am looking to hear from expert users. By not being able to access the incoming pop geometry, do you mean the instanced objects onto the particles?

I am sure there are some people here who must have coded some nifty POPs that does the stuff you are talking about :)

Link to comment
Share on other sites

Thanks vi_rus, that looks amazing. What's the advantage of using the sop context for particles? Just wondering :)

1. You can use ALL sops nodes.

2. You can use point cloud feature in vex.

3. You don't have to use a poppoint() expression for custom variables. It's really mad me in pop)

4. It's fully custom system where you can control absolutely everything. And maybe it will be faster than pop. But I don't sure.

I think there is exist and others points for this)

But pop is more simpler than that solution. And if you need to do a simple simulation then better to use pop context. It was just my point)

  • Like 1
Link to comment
Share on other sites

Ah yeah, this too. Excellent point. I generally only use the SOP solver if I need a SOP node though, because most point operations that you can do with a SOP you can also do in a VOP POP. Also it takes care of all the acceleration>velocity>position integration and handles oversampling for you. Basically, with a few exceptions, POPs will be faster and more straightforward.

3. You don't have to use a poppoint() expression for custom variables. It's really mad me in pop)

I feel your pain, but I just wanted to point out that I've never seen a situation where you must to use this expression. VOPs supplies you with the Import Attribute node if you need a specific point and if you just need to map a local variable the Attribute POP with Write Values turned off will handle that with ease.

  • Like 1
Link to comment
Share on other sites

I feel your pain, but I just wanted to point out that I've never seen a situation where you must to use this expression. VOPs supplies you with the Import Attribute node if you need a specific point and if you just need to map a local variable the Attribute POP with Write Values turned off will handle that with ease.

Sure, if you're using only VOP there is no problem with this issue. Pop context is good but I just wanted to say that in some cases I prefer to use this technique)

Link to comment
Share on other sites

Thanks guys, great discussion. Another question: is there a different between POP's VOPs and SOP's VOPs? Because vi_rus you said "You can use point cloud feature in vex.", so they are not available in POP VOPs? I was thinking it's more of less the same in terms of functionality.

Also another thing I am wondering is if you use SOPs for particles, do you have your own particle SOPs to make things quickly? I imagine it would take a lot of time to redo all those steps from scratch to add force, drag, velocity, etc.

Like in your example scene, you have digital assets to create them similar to POPs, right? :)

Link to comment
Share on other sites

There is a thread about point cloud in vop pop.

Also another thing I am wondering is if you use SOPs for particles, do you have your own particle SOPs to make things quickly? I imagine it would take a lot of time to redo all those steps from scratch to add force, drag, velocity, etc.

Like in your example scene, you have digital assets to create them similar to POPs, right? :)

If I need to do some vop stuff I usually do this pretty fast, so it's not a problem for me)

  • Downvote 1
Link to comment
Share on other sites

Actually something else I don't understand is, how is the SOP version of particles allow scrubbing in the timeline, but POPs do not? Is it because SOPs are caching?

Isn't particles dependent on previous state, but SOP particles allow free scrubbing backwards and forwards?

Link to comment
Share on other sites

Actually something else I don't understand is, how is the SOP version of particles allow scrubbing in the timeline, but POPs do not? Is it because SOPs are caching?

Exactly! And that's one more advantage of this method.

Link to comment
Share on other sites

Thanks but how does that work? :) I don't understand why this difference happens.

Its the Dops which provide environment for caching and sop solver inside it just uses that.

You can also cache your particle system using pop solver inside Dops.

Set up pop object and pop solver inside the dops and point the pop solver to your particle system.

Particles will be cached next time you play the dop sim.

Cheers,

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...