[Sidefx-houdini-list] More time warp woes

Nicholas Pliatsikas nick_p102 at hotmail.com
Thu Jan 8 05:34:32 EST 2009


Hi grav
 
When your point count changes your timewarp freaks out due to the timeblend using the point numbers to track and interpolate point positions. Particles use a particle id attribute to tag and track particles in a simulation as point numbers always change if your particle dies. For example you have 100 particles numbered 0 to 99 in the order they where born, but if your particle with a point number of 0 dies, the point number 0 needs to be filled by another particle which may be the next particle in line i.e point number 1 becomes 0. So if the time blend depends on this and your particles are randomly spread all over the place when the point 0 dies, every other particle will shift its position to its tracked point number position. I hope that makes sense.
 
There is a few approaches to solves this. Number 1 is the easiest. Number 2 is pretty tricky and suffers from floating point accuracy works arounds etc.
 
1. On your popnet toggle off remove unused particles to keep dead particles, do your retime etc using the timetools. Then delete the particles when the particle state = dead. You may need to reorder the points based on particle id before hand i cant recall. If you point count doesnt change the time bend and shift will work fine by its self.
 
2. For changing point orders make sure your popnet oversamples by 10 and save out every 10 steps in your rop output driver (thats a 0.1 increment). You will need to use an expression to drive the correct increment number in the saver due floating point accuracy issues with $FF. I had some trouble getting this to be consistant, as it would skip the odd frame when it got to over a few thousand frames, but you may not have this issue. I think I ended up using a python expression to obtain and use the correct sub frame increment.
Then in your file Loader you can use the same expression as you did with the rop driver to load in the correct increment)
Heres the increment expression you can use, its the hscript one, i cant find the python version tho.
 
For the saver it would be. 
 
floor($FF * (1 / ch("f3"))) * ch("f3")
 
the result of this gets put into the filename where $F would be.
 
on the file loader you will need will need two other parms.
"targetFrame" is the frame you want to use. i.e the retimed frame number.
and "inc", is how many steps where saved out i.e 10
 
then this goes into another parm called "frameNumber"
 
floor(ch("targetFrame") * (1 / ch("inc"))) * ch("inc")
 
this also goes into the file name, where you would usually use $F. So all you need todo is animate the targetFrame to retime as needed.
 
There is a 3rd version i came up with which involved a mix of the increment saver, loader and chops but this is so slow and heavy on memory with large point counts it just isnt viable also its pretty complex.
 
I hope some of this helps, as we had a nice bit of fun with this on the last project we did. Its not nice at all!!
 
Cheers
Nick
 
> Date: Wed, 7 Jan 2009 22:45:42 -0500> From: sidefx at trinix.ca> To: sidefx-houdini-list at sidefx.com> Subject: Re: [Sidefx-houdini-list] More time warp woes> > Can you put your scene on the forum or send it to me so I can have a > look. I'm curious about it.> > Also make sure all your time frame are set properly on the cache node > and time blend.> > François> > Pablo Giménez wrote:> > Mmmm not pretty sure here, but particles systems reuse the point index, $PT,> > so maybe this is confising the time warp and time blend tools.> > I ma not sure how well these tools work with geometry that is changing> > topology along the animation> >> > 2009/1/7 <gravatar at gravatonia.com>> >> > > >> Okies Folks,> >> I am really getting frustrated with timewarp It works beautifully for> >> the> >> first 150-200 frames then it totally flips out, inverting a twisting my> >> particle> >> sim. I have tried applying it both to a bgeo sequence and a pop merge and> >> it> >> does the same thing. As suggested, I am doing File or Pop Merge -> Cache> >> ->> >> Timeblend -> TimeWarp. This did fix the problem with timewarp skipping> >> frames> >> instead of interpelating them, but this sim twisting is an even worse> >> problem.> >> Only other thing that I can think to do is rebuilding my pop networks and> >> perhaps> >> even the force sop networks they depend on, because they were originally> >> built in> >> Houdini 8. Has anyone else had a problem like I am describing? Any> >> suggestions> >> other that a network rebuild?> >>> >> Grav> >>> >> p.s. Where does the cache sop stash what it is caching? Just curious.> >> _______________________________________________> >> Sidefx-houdini-list mailing list> >> Sidefx-houdini-list at sidefx.com> >> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list> >>> >> > >> >> >> > > _______________________________________________> Sidefx-houdini-list mailing list> Sidefx-houdini-list at sidefx.com> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
_________________________________________________________________
Cut through the jargon: find a PC for your needs.
http://clk.atdmt.com/UKM/go/130777504/direct/01/


More information about the Sidefx-houdini-list mailing list