PDA

View Full Version : Fluids - Why does a higher resolution destroys my fluid?


sixtees
04-29-2010, 12:40 PM
Hi
When i make an explosion with maya fluids, i usually start with a resolution of 20-40-20 because of performance issues.

After a few hours of tweaking, i changed the resolution to 40-80-40 to get a better quality. But sadly, this destroyed my explosion... it now looks completly different :(

What is the reason for this and how to avoid that?

vfxectropy
04-30-2010, 02:42 AM
My usual suspect for changing sim shapes is the units emitters use for emission. You might notice that emitters emit into your fluid in units of <attribute>/Voxel/Sec

More voxels in a sim means more density/heat/fuel being emitted overall.

Also, I usually find that anything below about 60 voxels in any dimension for testing is so low res that any results you get are unreasonably inaccurate. Try bumping up your test resolution.

tpalamar
04-30-2010, 02:36 PM
You are also changing the pressure inside of the container. Think of it as the pebble thrown into the pond. One change has a rippling effect on the entire system. The fluid container is a world unto itself. Change the dimensions and your fluid will act differently. Add more density and it will act differently, etc...

HowardM
04-30-2010, 02:50 PM
is there a formula or perhaps some genius has made a script, that will allow you to easily take a low res test at 40x40x40 for example and upres it to 160x160x160, and all the attributes change accordingly?

its not as simple as multiplying all attributes by 4 is it?

stooch
04-30-2010, 04:52 PM
technically that is impossible. unless you do a low res simulation and advect it, a higher res simulation will always be different.

At every voxel, the vector of movement is evaluated and has a chance to veer off course, especially when the random nature of diffusion and turbulence is added into the mix. Also, since any external forces are applied at every voxel, when you have more voxels, there is more opportunuties for these forces to become apparent.

I think that for you to get the most controllable shape for sims, you have to emit out of a surface that is blocking out the general idea for the simulation, with the simulation merely filling in all the details. that is the direction that im going. Otherwise, it becomes just like any other simulation, more like game of chance than art.

HowardM
04-30-2010, 05:00 PM
ok, so what about this?

is it possible to create a solution that sims a very low res overall shape and velocity, then you upres and do a 2nd pass that uses all the data from the first to speed up the high res sim... basically filling in the blanks... but in the end taking alot less time to sim...

:)

ganzo
04-30-2010, 06:19 PM
is it possible to create a solution that sims a very low res overall shape and velocity, then you upres and do a 2nd pass that uses all the data from the first to speed up the high res sim...
:)

Can that be possible? I'm not so sure because each cache file has data for all voxels at a given time step. In a low rez version you might have data on a specific voxel, but if you up rez it...that specific voxel might have become 4 voxels which means that one vector in the voxel now got divided into 4 different vectors with possibly completely different direction. Something like that ...not sure if I explained myself correctly. It would be cool if it were possible though.

I've gotten used to just work in baby steps....first do a very very rough rez around 60 ... just to test speed and click play.....once I'm happy with that I go double 120 playblast and re-check speed and adjust it accordingly and also start checking the overall shape and begin displaying velocity draw, isolate temperature, density and fuel displays and see behavior. Keep doing playblast until you get disired shape. Then increase between 160-180 playblast one last time and see if you see any breaks in velocity draw or fluid shape in general and tweak....then increase your rez over 200, cache it....wait some some hours see the result and it should not be too far off from your lower rez version...do a simple tweak and uprez again and see the version and you should be close to an end result.

Again this is the workflow that has worked for me and prevented me from doing lots of iterations on cache writing. But it only works if you know what you want in the fluid and know the optimum parameter to affect it since you know that tons of things can make the fluid react in a specific way.

Hope this helps

sixtees
05-03-2010, 05:59 PM
As if life wouldn't be hard enough :(
Thanks for the tips. In between, I have found a post of duncan:

If you use the high detail solve (particularily on the velocity grid) then the fluid may blow up at high velocity relative to the voxel size. As the fluid resolution gets greater then the velocity in "voxels per step" is greater and blowups more likely. Substeps (caching oversample) are one way around this problem, because it lowers the velocity per step. Also if you are using swirl it might be good to make it zero, as it can also cause instability with high detail solve.
If your animation is long enough that you need to use single frame caches, you can still get do oversampling by setting your frame rate to double before caching then setting it back when done. Another thing that can help prevent blowups is damp, but use VERY low amounts so that your motion stays lively.
Duncan
sadly, nothing worked for me. I used 3-4 Substeps, shouldn't that be enough?
I'm close to give up my plan to learn that...maybe I'm just too stupid for that

SheepFactory
05-03-2010, 06:06 PM
This was the biggest frustration with fluids for me as well. I would do something I like with the default settings and when I upres it looks and behaves totally whack. :(

ganzo
05-03-2010, 07:40 PM
Yeah I remember caching my fluids through the night only to wake up and see a really screwed up fluid and never knew what was causing it to blow up until I started observing velocity arrows. I have not used substeps since I fear that might make the caching process slower (correct me if I'm wrong), but what has worked for me is using damp between .1-.2 That does seem to keep things under control when using hds...it also works with high amount of swirl, but that leads me to the next question:

Using greater resolutions and high detail solve should produce more detail in the fluid as well as movement....so is using swirl kinda against the purpose of it? Should I set that to zero and turn off texture opacity(never use this anyway) and just let higher res dictate the details and swirl of the fluid?

sixtees
05-03-2010, 08:12 PM
Yeah Gonzo that's exactly what I feel every morning.
Thanks for the tipp with dump. I'm using it too but only 0.001 - 0.025. I will try that out, however it's courious that I never see higher dump values in scene files of others.

I slightly remember that duncan's recommendation on the maya fluid nuke thread was to use fuel and heat for the "rolling/swirl" effect instead of swirl and let the high quality solver do the rest...as far as I understood but please correct me if I'm wrong, since my English is anything but good.

destruct007
05-03-2010, 10:15 PM
well the nature of the solve is to be different at different resolutions to a degree. 20x40x20 going to 40x80x40 is a huge jump in the fluids "mind" where 100x200x100 to 200x400x200 is going to look close to the same with more detail.
Think of it like a picture 20x40 pixels can't make out what that looks like, 40x80 is now a tall icon and you can see a little more, once you get to a certain rez you can see the full image. Anything more will just be more clear/sharpness to the image. Fluid solve is kinda like that.
Now think about painting an image in photoshop. if you have 20x40 pixels how you paint that image and how you exaggerate colors and contrast to get it to show up and read is quite different then how you would paint it if you had more resolution.

Exploding can happen for a number of reason. Thats more a trouble shooting issue more than it is the uprezing. Its not exploding at the low rez b/c there's not enough information/voxels to explode.

wizlon
05-04-2010, 03:53 PM
Houdini does this well.
See post below.

wizlon
05-04-2010, 03:54 PM
Houdini does this well.

'For the renders shown above only the low resolution version of the simulation is used. One of the nice features of the PyroFX tools in Houdini is that you can simulate a low res version that determines all of the basic behavior and look of the results, while being fairly light weight. This low resolution can then be fed into a high resolution simulation that ‘only’ adds detail, but keeps the global behavior and shape of the low resolution version. This two-step approach adds a lot of efficiency to the process of coming up with the right look of the simulation.'

http://blog.dutcheffectsfactory.com/?tag=houdini

HowardM
05-04-2010, 04:01 PM
yeah, that! ;)
would love to see this in Maya ...

ganzo
05-04-2010, 10:18 PM
Houdini does this well...


Yeah, I use houdini and I love it for its particle control, but with regards to fluids....I keep going back to maya because houdini fluids are not multithreaded and is just too damn slow. Distributed fluid processing in pretty nice...but I don't have tons of computer to farm out the sim, so mayas multi processor fluid cache system is still my first pick.

SheepFactory
05-04-2010, 10:28 PM
Houdini does this well.

'For the renders shown above only the low resolution version of the simulation is used. One of the nice features of the PyroFX tools in Houdini is that you can simulate a low res version that determines all of the basic behavior and look of the results, while being fairly light weight. This low resolution can then be fed into a high resolution simulation that ‘only’ adds detail, but keeps the global behavior and shape of the low resolution version. This two-step approach adds a lot of efficiency to the process of coming up with the right look of the simulation.'

http://blog.dutcheffectsfactory.com/?tag=houdini

This is exactly what I want maya fluids to have. Hopefully for the next version.

Aikiman
05-05-2010, 12:08 AM
One method that isnt always effective is to create your container at your final res but make the Z resolution only 10 voxels wide for example, so at least you can get a general feel for what you are doing. Like I said not always effective but can be helpful.

Also Maya 2011 has auto-resize which means the first 5 seconds of your sim is really fast compared to before, and thats the part of the sim thats the most important I feel especially for explosions. There are some teething probs with using auto-resize but there are workarounds also.

arkangel-fx
05-08-2010, 08:05 PM
One method that isnt always effective is to create your container at your final res but make the Z resolution only 10 voxels wide for example, so at least you can get a general feel for what you are doing. Like I said not always effective but can be helpful.

Also Maya 2011 has auto-resize which means the first 5 seconds of your sim is really fast compared to before, and thats the part of the sim thats the most important I feel especially for explosions. There are some teething probs with using auto-resize but there are workarounds also.

Auto-resize is pretty good, but if you have a really fast fluid (like flames) they tend to swirl at the top, like they were colliding to the boundry. I know you can increase the substeps and the autoresize threshold but in terms of sim speed its a counter. I prefer using the Z res method. I've been doing some testing on what dave shoneveld said about fluid res's and he's right, if I start working with a base res of 80 o 100 I can get the overall shape of the fuild and it will stay pretty much the same when I upres my fluid to 200, its a really good workflow!

CGTalk Moderation
05-08-2010, 08:05 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.