pyro FX animation skipping

   14446   16   2
User Avatar
Member
3 posts
Joined: March 2010
Offline
I did the pyro FX ten tutorials for beginners then I rendered out 100 frames to see how it looked animated. Looked great but every 20 frames or so the fire fire part would skip ahead like it was skipping a bunch of frames at certian intervals. The smoke animation stayed somooth all the time. I'm a new user and wouldn't even know where to start debugging and would really appreciate the help.

Love the quality of the somke and fire on my first attempt and can't wait to really start messing things up.
User Avatar
Member
28 posts
Joined: Sept. 2008
Offline
I believe that what you are experiencing is the changing of your rest position when it reaches a certain threshold.

Here is someone's post that was experiencing similar problems, and their solution:

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=16117&start=0&postdays=0&postorder=asc&highlight=dual+rest [sidefx.com]

Look through some of the PyroFX documentation as well.
www.earthfixed.com
User Avatar
Member
3 posts
Joined: March 2010
Offline
I looked at the dual reset for the shader and the pyrosolver1 and they were already the same so that wasn't an option.

The other thing they mentioned was to turn off the dual reset so I did that and it made things even worse. Instead of just skipping it skipped frames then did a studdering effect on the next frames after the skip.

Now I am trying to render out with the reset at 60 like someone mentioned.
User Avatar
Member
3 posts
Joined: March 2010
Offline
Tried different reset times and no luck with that either.

I looked at the masterclass-onfire video and near the end when he is first adding noise there is the same skipping that I'm getting at the bottom of his smoke. On the next render he fixes it but I can't understand his explanation as a new user.

So the next thing I will try is to recreate the effect without any noise and then add back the different noise fields I had in the first attempt one by one to try to isolate which one if any is giving me the problem.
User Avatar
Member
28 posts
Joined: Sept. 2008
Offline
Peter Quint has recently made some videos on smoke that talk about the rest field. I highly recommend watching those as he gives a very good explanation of what the rest field is doing.

Here are his videos:
http://vimeo.com/user2030228/videos [vimeo.com]
www.earthfixed.com
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
I'm actually using a smoke shader (made of VOPs) to shade something using a Pyro solver. So, I'm wondering how easy or hard it would be to replicate the dual rest computation with VOPs (can't follow the vex too well in the pyro vex pyro shader).

I can see where I need to plug in the dual computed rest instead of the plain rest, Can anyone outline the blending method the pyro shader uses for me?
User Avatar
Staff
809 posts
Joined: July 2006
Offline
Hey Andrew,

Mario can answer this best of course, but the code for the dual rest noise interpolation looks like this:

float drw = modulo(drframe-drstart,drrate);
drw = smooth(0,drrate*0.5,drw) - smooth(drrate*0.5,drrate,drw);
chaos = lerp(chaos2,chaos,drw);



where drframe is usually the current frame, drstart is the dual rest start frame, and drrate is the reset rate. Chaos and chaos2 are noise values generated with identical input parameters except the two different rest values as the input positions (with rest2 possibly being further offset by a constant value).

So it calculates a smooth interpolation between those two noise values based on how far along the reset interval the current frame is. Shouldn't be too bad in VOPs.
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
ah awesome I was digging all around looking for that, thanks for the explanation 8)

With the lerp, is there a way to do that with VOPs?
User Avatar
Staff
809 posts
Joined: July 2006
Offline
Mix VOP.

Come to think of it, you could also just stick that code snippet in an Inline VOP. Might be helpful to ensure you got identical results from VOPs, at least.
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
yeah used the inline .. hmmmm seeming to get identical results wether I use 0 or 1 (instead of the mix), makes me think my rest and rest2 are a bit weird.

I'm using the billowy smoke material, I put two identical AA noises (with the -.5 .5 smooth) .. but the only difference was the rest and rest2 being used. Rendering out a sequence now to see what happens.

Has anyone else made their own rest/rest2 interpreter? Just want to make sure I'm not spinning my wheels here :p
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
also .. my scene doesn't start until 1190, my reset frame is at 1, should it be on or after object creation to initialize correctly?
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
ahhhhhhhhh ha! … yeah don't have it working yet but it's pretty clear that even if the “initial reset frame” is set to 1, it won't actually start until the object creation frame, in this case 1190.

then it will go 50 from there. So, that's a bit deceiving … if the start frame is also set to 1 in the VOPs or Material, than you'll get a ramp isn't valid, or am I wrong on this?
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
by the way … HUGE gotcha here, or at least it was for me.

The “reset frame” … isn't an absolute frame. It seems to correspond from the start of the simulation. So, if the sim starts at 1190, a value of 1 would be 1190. The shader would need to start at 1190 here though I think. Still working on this but think I might have found a fix for the particular situation I'm in right now 8)

Anyone have any more info on Dual rest feilds, my vops were somewhat unsuccessful, I'd really like to know how I can get this info in other shaders. thx!
User Avatar
Staff
809 posts
Joined: July 2006
Offline
Hi Andrew,

The Pyro Solver does the rest field resetting with two Gas Intermittent Solve nodes. Sounds like you've already figured this part out, but I had no idea how that node responds to changing the start frame of simulations, so I put together a quick test.

Looks like changing the “Start Frame” of the entire DOPNet works best, if that's an option. If you change that to 40, for example, and have a Start Frame of 1, reset rate of 50, then the initialization of the Rest frame should be on frame 41, then every 50 frames thereafter.

But if you're using Object Creation frame, the Intermittent Solve doesn't pay any attention to that, it just tries to solve based on the sim Start Frame and its Offset time, even if no objects have been created yet.

Attached is the test I used; it just sets the density and heat fields to 1 using overlapping Intermittent Solves and visualizes that. Setting the Frame Offset and Frames Between Solves parameters in gasintermittentsolve1 should let you experiment.

I haven't had a chance to try a custom shader yet. Just curious, are you using this on top of upres'ing the smoke?

Attachments:
vis_intermittent_solve.hip (361.4 KB)

User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
Thanks I'll check this out! .. yeah I was using the start frame + object creation frame. Often studios start their shots at frame 1000 etc
User Avatar
Member
44 posts
Joined:
Offline
Hey Andrew,

Sorry if I am missing something, but why are you even starting at frame 1190? I understand that some studios start their shots at frame 1000, but that doesn't mean you have to do everything at that frame.

From my experience, we just run our simulations at whatever frame we want and then use a renamer program to rename the padding of our renders to match the start frame. As long as it matches the camera and actions there should be no issues.

regards
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
finally got the dual rest features working in other shaders. Yeah used VOPs to blend between rest and rest2 before the noise is applied.

Yeah renaming utilities are fine if that's the workflow but to make things like background plates, cameras, fbx, and all the rest of it line up correctly it's just best in my view to start at the exact frame that it will start on in the rest of the pipeline.

With the reset frame in dops … probably would have confused me a lot less if it would have said “Simulation Reset Frame” or something to that effect. Frames always implies an absolute frame number to me but yeah nothing else in DOPs works with actual frames so I shouldn't have been so quick to assume that those were in frames lol.

But yeah if you're starting your DOPs Sim at 1190, and your reset frame is at “1” … than in your material your blending should start at 1190, and then 1190 + increment.

glad that's sorted out
  • Quick Links