Retiming simulation changes sim behaviour

   5089   6   3
User Avatar
Member
3 posts
Joined: April 2013
Offline
Hi guys,

I am quite a newbie on Houdini, and I am actually working on my first project.

This projects basically consists of an egg being hit by a bullet, with consequent exploding behaviour of the shell, yolk and albumin.

The whole shot is retimed by approximately a twenth of the speed and that's where I got my problem.

On specific frames the simulation kind of changes behaviour. So, for example, the shattered pieces of the shell are following a precise direction and on frame 20 they suddenly change direction. The same thing happens for the yolk and the albumin.

More technically, yolk and albumin are FLIP Fluids, and the shell is prefractured in the SOP network. The whole simulation is retimed with TimeBlend/TimeShift Nodes.

Watching the shots several times, I realize the change of direction occurs on the frames that already existed in the shot that was not retimed. So I guess this has something to do with the interpolation, but I can't find a way to fix it.

Any suggestions?

Thank you
User Avatar
Member
390 posts
Joined: Jan. 2012
Offline
if you are retiming a flip sim in sops, make sure that you either have reseeding turned off or that you are creating an ID attribute for the particles.

not exactly sure what the issue is with the egg shell, unless you are merging it with the flip sim and then retiming it.
.
User Avatar
Member
3 posts
Joined: April 2013
Offline
Reseed particles is already off, as I had this sort of strobing on the fluids. Turning off that fixed the problem.

Nope, all the sims are cached separately, I am not merging them. Also, all the sims are retimed before I cache them.

Anyway, if it is of any help, I'll post the HIP file.

Attachments:
egg_20_firstGoodRender_02.hipnc (5.0 MB)

User Avatar
Member
8 posts
Joined: Nov. 2012
Offline
I've been playing with retiming simulations and have found flip fluids a particular pain to retime. The fluid seems to glitch when they are stretched out of the time range they where simulated in.
I have found a work around that seems to work and maintains the behaviour of the fluid and other simulated objects.

Here's what I did to halve the speed of my sim:
-Firstly set the substeps of the Autodop to 2
-In the Global Parameters, under Playback, uncheck the Integer Frame Values and set the value to 0.5
-Now whenever you render, in the Frame Range area make sure you set the rendered to render 0.5 frames.

Play the sim back and see if it works, it will have to be recalculated to included the half frames, but this should effectively doulbe the length of you sequence.

When rendering, don't use $F as it saves 0.5 frames and won't playback as desired.
Best thing to do is use $N, so that it labels the file to “filename.1.tif, filename.2.tif…etc”
This way when the file is read in as a sequence, it will play in order.

This way, Houdini will calculate the frame inbetween the existing frames, thus doubling the sequence yet, hopefully, retaining the original simulation.

Hope this works for you!
User Avatar
Member
3 posts
Joined: April 2013
Offline
Ok, so you're basically saying that I shouldn't cache the retimed sim, but to retime the all simulation using the render settings?

Am I right?

Thanks for your reply, by the way.
User Avatar
Member
8 posts
Joined: Nov. 2012
Offline
You can cache it, just make sure you cache it with the 0.5 framestep with the $N method of numbering and you should be good. It will set your sims to start from 1, but you can use a timewarp node when you read in the cache to make it start from the desired frame.
User Avatar
Member
22 posts
Joined: Dec. 2009
Offline
What you're describing in op is what linear interpolation between cached frames. You can think of it as looking at a polygon circle. The motion is a smooth circle but since you are discretizing the motion into specific points it has to interpolate between what are essentially “keyframes” of motion.

You can either do what earlier posts suggest which is generating more “key” frame data to linearly interpolate from, or alternatively load the position data into CHOPS and apply some filtering to smooth the motion. It'll be slow if you have a lot of points obviously.
  • Quick Links