so, i've been trying to figure out how to enter and exit “bullet time” or how to achieve a matrix effect were you freeze the time for all simulations but not for the camera.
the best way i can figure out is to work in higher frame rate, and then later in post adjust the playback time.
is there an other or better way ta achieve the effect were time freezes but the camera still moves around?
thanks for a great community
cheers
bullet time, "matrix effect"
48353 41 6- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
I used for this simulation:
http://vito.lucuslegion.com/post_fball.html [vito.lucuslegion.com]
the TimeShift node:
http://www.sidefx.com/docs/houdini9.5/nodes/sop/timeshift [sidefx.com]
http://vito.lucuslegion.com/post_fball.html [vito.lucuslegion.com]
the TimeShift node:
http://www.sidefx.com/docs/houdini9.5/nodes/sop/timeshift [sidefx.com]
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
Thank you, perfect! I'm looking in to in right now, do you know if you can ease in on the effect?
and wow, beautiful portfolio you got!
any change you want to let me know how you did this? http://vito.lucuslegion.com/post_fluidcrossfire.html [vito.lucuslegion.com]
just stunning!
thanks
and wow, beautiful portfolio you got!
any change you want to let me know how you did this? http://vito.lucuslegion.com/post_fluidcrossfire.html [vito.lucuslegion.com]
just stunning!
thanks
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
klasseI have not tried it … get the node, and play with it !
Thank you, perfect! I'm looking in to in right now, do you know if you can ease in on the effect?
klasseThanks man.
and wow, beautiful portfolio you got!
klasseDifferent techniques used there, chops for music syncro, cops for “flare” effects … but I think that you want get into the fluid shaping, for this thing I implemented this Siggraph paper:
any change you want to let me know how you did this? http://vito.lucuslegion.com/post_fluidcrossfire.html [vito.lucuslegion.com]
just stunning!
http://www.cs.huji.ac.il/labs/cglab/research/tdsmoke/tdsmoke.pdf [cs.huji.ac.il]
This is the Houdini magic, zero coding lines for that … only DOP nodes, only possible in Houdini world.
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
Hey, thanks!
well, you can ease it in to a stop, just have to figure out the right formula :-)
and that pdf is just crazy, thanks a lot, but i'm still pretty confused how i will implement this in dops.
but i understand that you don't want to let out the secret of how you manage to achieve the effect. it's a really good effect, keep the good work up, you inspire me!
thanks again!
well, you can ease it in to a stop, just have to figure out the right formula :-)
and that pdf is just crazy, thanks a lot, but i'm still pretty confused how i will implement this in dops.
but i understand that you don't want to let out the secret of how you manage to achieve the effect. it's a really good effect, keep the good work up, you inspire me!
thanks again!
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
klasseAlmost all Siggraph papers seems crazy at first, but if you read it again and again, at last you get the idea.
Hey, thanks!
and that pdf is just crazy, thanks a lot, but i'm still pretty confused how i will implement this in dops.
klasseThe trick is the next, you get a fluid and you need a force to move it, ok?
but i understand that you don't want to let out the secret of how you manage to achieve the effect. it's a really good effect
We will use a FieldForce node to apply this force.
But hey! … How to calculate this force ?
We will use the gradient of the model, in this case the car.
Wait! … a gradient from polygons ? … we need to convert the car into a volume to get the density gradient.
This density gradient is the key force that we apply to the fluid using the FieldForce node.
Instead of I upload a scene is better that you think about it and to try make it for yourself. Really, it's the only way to learn, to squash your head against the monitor and not saving another scene in your ../nicescenesfromforumguystostudy/ directory.
And is a pretty houdini homework, isn't it?
You would be impressed how easy is to do this in houdini, try it! and ask all your questions.
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
- sasali
- Member
- 3 posts
- Joined: March 2009
- Offline
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
- klasse
- Member
- 60 posts
- Joined: June 2008
- Offline
- dim1984kimo
- Member
- 84 posts
- Joined: Aug. 2008
- Offline
- vmur
- Member
- 82 posts
- Joined: Nov. 2005
- Offline
- koen
- Member
- 792 posts
- Joined: April 2020
- Offline
- koen
- Member
- 792 posts
- Joined: April 2020
- Offline
Hello Victor,
Thanks for the tips for this setup so far. I have the forces working based on a sop scalar field based an inverse sdf as the input to feed the field force.
I am trying this in a smoke simulation. Currently I am having a hard time making the smoke really hit those shapes. Is this the gather term from that paper. (Basicaly my smoke overshoots the shape, there is never a clear read of the target object.)
Can you give a hint on where to look for this?
Any help is appreciated,
Koen
Thanks for the tips for this setup so far. I have the forces working based on a sop scalar field based an inverse sdf as the input to feed the field force.
I am trying this in a smoke simulation. Currently I am having a hard time making the smoke really hit those shapes. Is this the gather term from that paper. (Basicaly my smoke overshoots the shape, there is never a clear read of the target object.)
Can you give a hint on where to look for this?
Any help is appreciated,
Koen
- koen
- Member
- 792 posts
- Joined: April 2020
- Offline
- johner
- Staff
- 821 posts
- Joined: July 2006
- Offline
Hi Koen,
Jumping in here… I read this paper after it was mentioned here and did a quick implementation in DOPs. It generally maps really well. I don't currently have it in a form I can share, but I can tell you how I did it anyway. I'm away from my computer with Houdini on it for a few days, so this is from memory, so I might have left out a step, but this should get you close.
If by “fog” above you mean blur, I think that's the way to go when dealing with smoke or other grid-based fields (like fuel or something). I ended up with four fields for the driving force part: goal, goalblur, densityblur, and goalgrad. So each timestep, use Gas Calculate to copy density to densityblur, goal to goalblur, then blur them both with GasBlur. Turn “Use timestep” off since you're blurring a fresh copy of the field each time. Take the gradient of the goal blur with Gas Analysis, then write short GasFieldVOP which applies the formula in the paper, i.e. divide the gradient by the blurred goal and multiply by the blurred density. You'll need to check for zero values in the goalblur since you won't want to make the radius for GasBlur big enough to cover the whole field. That's the only part of the paper that's hard to duplicate out of the box: you can't do a Gaussian blur that has a really wide support but quick falloff. But you can still make it work. Anyway, by the end of this, you've got the force in goalgrad that you can pass to a Field Force DOP the next timestep or just apply a scaled version of the force directly to the velocity field yourself.
You will need a Drag force as you've realized. I've done it with an external Drag Force DOp and also as part of the asset that applies the above force as well.
For the gather term, you have all the terms you need. In the paper, the gather term becomes part of the material derivative of density, which just means that at each voxel point the density changes by the amount advected in and the gather term. So once it's calculated you'll want to scale it (a lot, like by 1e-5), multiply by the timestep and add it to the density directly. The effect is to “diffuse” the density back towards the goal shape, since some of the gather term will be negative.
To do the calc, create gather and gathergrad temporary fields (with GasMatchFields). Store density minus densityblur in gather, take its gradient into gathergrad. Multiply by density and goalblur as in the paper, then the divergence into gather. I had more luck updating the density field during substepping by using VOPs and the “timeinc” global parameter.
I ended up with an asset to attach to the “Velocity Adjustment” input to the Smoke Solver, since I was updating the velocity field directly with both the driving force and drag term, but you certainly don't have to do it that way. In that case the only other DOP to set up is a SOP Scalar Field with the goal shape(s).
I've got sporadic net access but can answer any questions when I get back on.
Good luck
Jumping in here… I read this paper after it was mentioned here and did a quick implementation in DOPs. It generally maps really well. I don't currently have it in a form I can share, but I can tell you how I did it anyway. I'm away from my computer with Houdini on it for a few days, so this is from memory, so I might have left out a step, but this should get you close.
If by “fog” above you mean blur, I think that's the way to go when dealing with smoke or other grid-based fields (like fuel or something). I ended up with four fields for the driving force part: goal, goalblur, densityblur, and goalgrad. So each timestep, use Gas Calculate to copy density to densityblur, goal to goalblur, then blur them both with GasBlur. Turn “Use timestep” off since you're blurring a fresh copy of the field each time. Take the gradient of the goal blur with Gas Analysis, then write short GasFieldVOP which applies the formula in the paper, i.e. divide the gradient by the blurred goal and multiply by the blurred density. You'll need to check for zero values in the goalblur since you won't want to make the radius for GasBlur big enough to cover the whole field. That's the only part of the paper that's hard to duplicate out of the box: you can't do a Gaussian blur that has a really wide support but quick falloff. But you can still make it work. Anyway, by the end of this, you've got the force in goalgrad that you can pass to a Field Force DOP the next timestep or just apply a scaled version of the force directly to the velocity field yourself.
You will need a Drag force as you've realized. I've done it with an external Drag Force DOp and also as part of the asset that applies the above force as well.
For the gather term, you have all the terms you need. In the paper, the gather term becomes part of the material derivative of density, which just means that at each voxel point the density changes by the amount advected in and the gather term. So once it's calculated you'll want to scale it (a lot, like by 1e-5), multiply by the timestep and add it to the density directly. The effect is to “diffuse” the density back towards the goal shape, since some of the gather term will be negative.
To do the calc, create gather and gathergrad temporary fields (with GasMatchFields). Store density minus densityblur in gather, take its gradient into gathergrad. Multiply by density and goalblur as in the paper, then the divergence into gather. I had more luck updating the density field during substepping by using VOPs and the “timeinc” global parameter.
I ended up with an asset to attach to the “Velocity Adjustment” input to the Smoke Solver, since I was updating the velocity field directly with both the driving force and drag term, but you certainly don't have to do it that way. In that case the only other DOP to set up is a SOP Scalar Field with the goal shape(s).
I've got sporadic net access but can answer any questions when I get back on.
Good luck
-
- Quick Links