Jump to content
magneto

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 :)

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

That's amazing. There must be some Houdini experts who wrote their own POP collection I am sure then :)

Share this post


Link to post
Share on other sites

That's amazing. There must be some Houdini experts who wrote their own POP collection I am sure then :)

Yep you are very right here :)

  • Like 1

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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 :)

Share this post


Link to post
Share on other sites

You can even recreate your own particle system with sop solver! I usually do this if I need a total control of particle behavior. In this case you can use full power of sop context.

sop_solver_particle_system.hip

  • Like 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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)

Share this post


Link to post
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? :)

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

This is so inspiring, Peter's post on recreating all POPs using SOPs. Also scrubbing particles from the timeline is awesome. There is so much to learn :)

Share this post


Link to post
Share on other sites

You can even recreate your own particle system with sop solver! I usually do this if I need a total control of particle behavior. In this case you can use full power of sop context.

+100

Share this post


Link to post
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?

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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,

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×