Jump to content

Are CHOPs faster than SOPs in general?


Recommended Posts

Hi,

In one of Ari's recent videos, he was using CHOPs to calculate the minimum and maximum of an attribute using icmin, icmax. At first I was skeptic, because he was importing the geometry using the Geometry CHOP so I thought this will be a slow operation, even though I don't know CHOPs.

But after I tried it, it was faster than using the AttribPromote SOP. I also remember seeing in another video where the author was saying CHOPs are by far faster than in any other contexts.

Do CHOPs have some sort of unique evaluation that gives them the speed advantage?

In my "Jiggle" thread, a few people mentioned CHOPs being slow if the geometry is heavy, so is there a trade off for CHOPs? Is it recommended to use CHOP techniques like icmin, icmax, etc for digital assets, when there are clearer/standard ways of doing these in SOPs, i.e. using the AttribPromote SOP in this case? I never saw them being used in HDAs, unless there was a predefined CHOP that you don't have in SOPs.

Would using CHOPs for things that can easily be done in SOPs be considered unusual, or unnecessary?

Thanks :)

Link to comment
Share on other sites

CHOPs tend to evaluate over the entire timeframe so can cause any dependencies to the CHOP network(s) to evaluate as well.

Some of these CHOPs have a timeslice mode where they only evaluate over the time interval that they require.

  • Like 1
Link to comment
Share on other sites

Thanks old school. I didn't realize this. But this timeframe is defined by the current timeline? Because by default it seems like they are configured to do that.

Btw I ran out of "likes" for today so will have to do that tomorrow per forum restrictions :)

Link to comment
Share on other sites

I think lot of people are unfamiliar with CHOPs or are afraid of using them

CHOPs are very powerful and fast I usually don't know upfront which operation is faster if CHOP or SOP method if I'm doing something for the first time, but that's easy to measure so it's always good to try more solutions when you are developing something and then pick the best

the timeframe for CHOP is set directly in generator CHOPs or in Fetch CHOP or simply any CHOP that is creating or bringing in the channels (it's in Channel tab) and in many of them (not all) is set to full animation range by default as you said

in case of static geometry from Geometry CHOP the timeline represents points instead of time so you have just one channel per each float attribute component and getting min/max from that is extremely fast

Jiggle on the other hand needs per point animation for whole input range so that can be quite heavy

- so if you can let it to process, you will get jiggle computed for whole range as well and you can scrub the timeline without any need for recomputing jiggle until source anim changes, so you can even save the channels to disc and use them later as a sort of pointcache or process even further, very powerful

- as Jiggle CHOP doesn't seem to be able to run in Timeslice mode, Lag CHOP can so you may try to use that to save resources (and of course for Geometry CHOP set Use Current Frame instead of Full Animation Range)

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...