Jump to content
Sign in to follow this  
markb

accumulating or adding deforms over time?

Recommended Posts

Hi everybody,

Wondering about the best way to accumulated a deformation over time in some additive manner. I'm using it on a variation of a footprint deformer. At the moment I'm using a RAY SOP to get my data and LAG CHOP to "accumulate" but it's kind of a cheat and will only work for limited situations. I'm new to all this so other solutions are eluding me.

I see this kind of thing done in Houdini all the time so I'm sure it's fairly straightforward. Any help is much appreciated!

Mark

Share this post


Link to post
Share on other sites
Hi everybody,

Wondering about the best way to accumulated a deformation over time in some additive manner. I'm using it on a variation of a footprint deformer. At the moment I'm using a RAY SOP to get my data and LAG CHOP to "accumulate" but it's kind of a cheat and will only work for limited situations. I'm new to all this so other solutions are eluding me.

I see this kind of thing done in Houdini all the time so I'm sure it's fairly straightforward. Any help is much appreciated!

Mark

have a look at the Sop Solver in DOPs. There are a couple examples in there which demonstrate a feedback loop.

Share this post


Link to post
Share on other sites

Both approaches will work, but neither of them is intuitive. Could anyone here suggest a pure SOP approach for this ? Thanks,

Share this post


Link to post
Share on other sites

Isn't the ForEach SOP a pure SOP approach? ;)

As Spencer mentioned, you need a feedback loop so you have to use the ForEach SOP or SOP Solver. There's also a Feedback SOP in the proto install.

Cheers!

steven

Share this post


Link to post
Share on other sites

I'm wondering if by using a ForEach SOP you mean I would simply rebuild the deforms up to the current frame, accumulating them myself. That does sound pretty straight forward if it's possible.

Share this post


Link to post
Share on other sites

Trying a similar task myself right now, with a sphere that extrudes a random primitive face for each frame.

That portion of the setup works fine, with a random primitive chosen every frame and then a polyextrude SOP pushing it out, but I can't get any sort of iterative feedback accumulating the result into a big mess.

I've tried the Feedback proto SOP but the lack of docs makes it very cryptic. The For Each does repeat the operation, but no accumulation so far.

Any thoughts?

Share this post


Link to post
Share on other sites

I'm finally able to get back to this. Here's a quick example pic. Sphere is animated, pushing at the grid with ray node. Trying to get a mole trench affect with it, by accumulating the deform. Can anyone tell me what I might be missing here? Thanks!

post-4578-1242856528_thumb.jpg

Share this post


Link to post
Share on other sites
Sorry, here's the little hip file in case anyone was interested. Thanks again.

footForeach.01.hipnc

I have found it more intuitive to use a sop solver like in the attached file.

If you want the foreach way to work, load the swiss cheese example and compare your settings to that, foreach and feedback loop stuff is frustrating sometimes .. :/

shancock_deformFeedback_v001_001_sk.hip

Share this post


Link to post
Share on other sites
I have found it more intuitive to use a sop solver like in the attached file.

If you want the foreach way to work, load the swiss cheese example and compare your settings to that, foreach and feedback loop stuff is frustrating sometimes .. :/

Oops! I got a bit mixed up there! How would the foreach SOP work at all for this?

Share this post


Link to post
Share on other sites
Oops! I got a bit mixed up there! How would the foreach SOP work at all for this?

Hey thanks, Sam, for setting all that up. I'm trying to wrap my head around it now!

Surely this kind of looping/feedback is used all the time for tons of things using many different methods.

Mark

Share this post


Link to post
Share on other sites

I need to chase down a way to use the foreach sop here, if just to really learn it. I will learn how to repeat this with DOPS and if I ever figure out what a proto install is, I'll look at the feedback loop as well.

The only problem in my little network above is that although I AM calculating the ray deform once for each frame up to the current, I'm NOT actually sampling the deformation AT THAT POINT IN TIME. The framehead doesn't move. Heh heh. So I get the same result for each iteration. So the question is...

How might I tell houdini to sample ALONG the timeline? Is that a CHOPS thing? A lag node?

Share this post


Link to post
Share on other sites
I need to chase down a way to use the foreach sop here, if just to really learn it. I will learn how to repeat this with DOPS and if I ever figure out what a proto install is, I'll look at the feedback loop as well.

The only problem in my little network above is that although I AM calculating the ray deform once for each frame up to the current, I'm NOT actually sampling the deformation AT THAT POINT IN TIME. The framehead doesn't move. Heh heh. So I get the same result for each iteration. So the question is...

How might I tell houdini to sample ALONG the timeline? Is that a CHOPS thing? A lag node?

As far as I know, the foreach SOP doesn't get the feedback input from the last timestep, so it won't be possible with just that.... you can just use a file node at the end of your tree to write the current frame and then a file node at the start to read in the previous frame. This is really what DOPs are for though, and with DOPs you get the benefit of substeps as well....

I could be wrong about the foreach SOP...

Share this post


Link to post
Share on other sites
I need to chase down a way to use the foreach sop here, if just to really learn it. I will learn how to repeat this with DOPS and if I ever figure out what a proto install is, I'll look at the feedback loop as well.

...

why are you trying to do this with forEach SOP?

it can be easily done(even with substeps) see the attacheh file, but it will build every frame from the ground

it means at frame 1 it will be lighting fast

at frame 2 two times slower

frame 100, 100times slower

but if you want to play this or cache it will take you 1 + 2 + 3 + ... + 100 iterations to get to frame 100, which means 5050 iterations

and when you are using 10 substeps this is equivalent to 1000 frames which will be 500500 iterations as opposed to 1000 in sop solver or feedback SOP

so you better take a look at sop solver, it is very straightforward and very cool.

forEach_accumulate_substeps.01.hipnc

Share this post


Link to post
Share on other sites
why are you trying to do this with forEach SOP?

it can be easily done(even with substeps) see the attacheh file, but it will build every frame from the ground

it means at frame 1 it will be lighting fast

at frame 2 two times slower

frame 100, 100times slower

but if you want to play this or cache it will take you 1 + 2 + 3 + ... + 100 iterations to get to frame 100, which means 5050 iterations

and when you are using 10 substeps this is equivalent to 1000 frames which will be 500500 iterations as opposed to 1000 in sop solver or feedback SOP

so you better take a look at sop solver, it is very straightforward and very cool.

Ah! Thank you for that! It seemed that it was more of a "many paths to the same result" until you mentioned this! SopSolver it is then. I'll save the foreach for another time, another problem.

Thanks again guys! Back to Sam's SopSolver example for me.

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
Sign in to follow this  

×