What fluid sim tools are you using for your flipbooks?

Hi all,

the topic of fluid sim software came up during the roundtables at GDC, but I don’t think we got anything terribly concise out of it.

So, what fluid sim software are you guys using to render out your flipbooks (animated textures, whatever you want to call them), assuming you’re using this approach at all?

We used the choice we had at hand (Maya fluid sims) last time, but would like to try a more specialized (and streamlined) solution now. I’ve spent some time going through the usual sims tools google turns up, but the combination of a high price tag and common lack of a trial version makes it hard to see through the marketing talk on their sites and makes me wonder how many people are missing out/using the less optimal choice because they don’t get to try it first. The main purpose would be to render out a few variations of smoke, dust, fire and explosion, nothing you wouldn’t expect from such a tool.

thanks a lot in advance, I appreciate the advice!

I have never reviewed any stand alone fluid simulations tools. What would be some characteristics that would make Maya for example more streamlined for what you need?

I’ve used Maya fluids in the past. I’ve recently started learning a bit of FumeFX since my new studio is Max based.
Fume is brilliant for fire and smoke due to its initial settings. It’s flamelike from the start while maya takes some tinkering to get to that state.

The next thing I want to try is using the Soup plugins for maya. That wavelet uprez tool looks sexy…

I haven’t used any standalone tools for it though. Could you list what you are planning on trying since I’m quite interested to know as well.

Oh! And one last thing, am I the only one who’s still scared of fluid simulations? My reasoning tend to go something like this: I need a new smoke texture -> I’ll make one with fluids! -> Crap I have forgotten all about voxels again… -> Maybe I’ll get some video footage and paint my own alpha instead -> “Stay in frame you bastard cloud!!!” -> Finally got it in game! Aaand of course I screwed up tracking it in Vegas -> Now where did put that scene with a nice smoke preset… :rolleyes:

with maya I had a hard time getting predictable results even after working with it for a few days. I don’t expect a fluid sim to be straightforward tool that you can pick up and instantly create exactly what you imagined the result to be like, but the Maya tool seems to be on the convoluted side even for a complex tool - a host of sliders with names that all make sense by themselves, but play together in a way that is hardly documented and hard to predict. a lot of the settings seem to react quite volatile even to small numerical changes, too, so ‘playing around to figure it out’ turned into a quite frustrating game.

fumeFX on the other hand seemed a lot more straightforward. like Demno said, you pretty much get a presentable result from the start and the tweaking of values quite fast seems to get you at least a bit of insight what the values do.

which feed directly into the ‘scared of fluid sims’ part in the post: if the workflow is slow/hard to predict, then the whole thing turns a bit stale for me. spending too much time to set a sim up, render it, clean it up, get it in the engine and test it without being able to tweak exactly the thing that makes the in game visuals look off in a reasonably fast manner just means that I would rather do it with the in-game methods (UV distortion, some clever blending in the shader, whatever works). so I’m kinda on the scared side, with a dash of undecided.

I guess this reasoning gets less bad once you have a dedicated guy on your team (or someone who knows the tool very well at least). which we sadly don’t have at the moment, so I’d like to pick up the necessary basic skills to be able to make a judgement call on whether it should be used in game (and can be polished up to final quality without risking too much rework) without having to invest months of work. I’ve gone through a bunch of maya tutorial DVDs, but haven’t gotten to that point… maybe I just picked the wrong tutorials, but like I said, it seems convoluted in comparison to fumeFX, so I’m curious what else is out there. the main uses would be the cliche explosion, smoke and fire, with a bunch of other effects like water/blood splatters coming next on the list.

The problem with using this workflow in general is that the iteration time can be lengthy and as you mentioned the terminology and vary from package to package. I have worked with maya fluid for a long time and I will agree that it takes a while to become familiar with the values and what works. A lot of post and film fx artists spend their entire career mastering this side of things so that should speak to the difficulty in using fluids for any effect. I would never want to sound biased on any one technique but if you could open a dialogue with programmers about giving you a shader system that would allow you to plug in custom texture sources and manipulate uv’s you could use that to create any number for materials for your effects while also affording you more control over every attribute. I used to rely on flipbooks a lot and now I can’t imagine using this technique anymore because it is very restrictive in my own opinion. I hope that doesn’t come off as pretentious, I just want to promote more creativity on the fx artists side and less busy work trying to get things that may or may not work.

While I agree with you on principal, isn’t the shaderbased approach a bit restrictive aswell? If you have a flipbook animation, it will only be a texture on a flat shader and the only thing you need to worry about is your normal overdraw.

If you do it with a complex shader you add a whole lot of pressure on the CPU/GPU to do all those calculations on every sprite. It may be I have only worked with slow and unoptimized shaders. Very interesting to hear that this technique is a serious option! I do love to tinker with uv distortion combined with scrolling uvs and eroding alphas. Beautiful, unpredictable results :slight_smile:

UDK Shaders on Sprites optimization

Overdraw is definitely something to factor in when using this method so you have to pick your battles. We do several things to help with this. If you stack a bunch of expensive materials on top of each other yes overdraw will kill you but if you have only a few then it isnt an issue. This is also based on fill rate so if you plan on filling the entire screen with particles and they have expensive shaders, that would be a problem. But if you have the particle fade in and out at certain distances preventing them from filling the entire screen as the camera get closer than you are fine. There are all sorts of techniques to optimize this approach and we use them all. 90% of the shaders used on particles in Uncharted 3 averaged about 17 cycle/instruction counts. We rely on shaders that convey movement and interest and try to keep our counts down. We also have metrics to see how much we are impacting the gpu in a given frame and decided early on what an acceptable amount was for us to take. We would keep it within that amount of allotted response time and if the framerate was tanking determine whether or not it was us causing it or another department. I guess what I am saying is yes. Overdraw is a factor with more expensive shaders but it’s something you can work within and the result would surprise you.

I’d have to agree that for my common workflow, I haven’t had time to generate flipbook textures in quite a while. Instead, I tend to have some favorites that were either hand drawn, or are taken from practical effects and then modified in after effects to have an alpha channel. Then I usually pipe those through various shader tweaks distorting the uv’s, messing with the blendmode, tweaking lighting, etc… to create a look that works.

And if can get away with applying those same tricks on a single sprite image then all the better.

However I’d also confess that the biggest motivation for me to take this approach has been iteration time and speed. Even if I did have time in the schedule to generate new sequences from an offline package, I’m kind of spoiled with my realtime editing. I don’t know how the movie guys do it. I want to see the results of my tweaks instantly!

heh, no reason to worry about sounding biased, Doug! I’m very much for getting the results through shaders - we’re working with unreal, so iteration time and just messing around like Drew said is no problem and generally leads to great results. I very much see Andreas point though, especially for those corner cases where entire levels are supposed to be filled with smoke/fire/whatever. It would be nice to be able to just cover those (rather extreme) situations with the flipbook approach or just have a handful of nice looping noise/dust/cloud flipbooks for overlays etc handy to use throughout the game.

I’ve seen great and shoddy stuff come out of both approaches, so I’m a bit reluctant to flat out dismiss/hype either of them (especially once someone shows up at my desk and would like a well formulated justification for one or the other). If given the choice I’d take shader manip and smart textures over a flipbook for my workflow any day, I would just like to get a better insight into what is feasible on the other end as well.

Thanks for the replies and input so far by the way, it’s great to hear all of your opinions on this stuff!

I’m with you. The shaderbased approach is way quicker to iterate on and more flexible. It just haven’t been an option with the editors I’ve worked with in the past.

I need to step it up and join this brave new world :slight_smile:

Or just use flipbooks in your shaders, best of both worlds :slight_smile:

What I’ve been doing a lot on our most recent project is making greyscale flipbooks and mapping a color gradient to them. The variation with this approach is extremely useful, especially on a game with alien technology that needs weird colors; 3 textures run the majority of my fx. I use a lot of shaders on planes as well, but it can never match the motion from a good flip in certain situations.

As for the sims, I use Maya fluids as well. Great for fire/smoke, horrible for liquids. I don’t have access to Realflow or Houdini (a guy can dream), so I make do.

Ooh - i love the idea of using grayscale flipbooks and remapping them with a color gradient in the shader. I’m definitely filing that one away for later.

On this topic, one thing i’ve always wondered is why there aren’t any commercial flipbook texture libraries for games. Given how time consuming they are to make, and how different you can make the end result look through shader trickery, it seems like it would be quite popular.

I made a video a little while ago demonstrating a fire material in UDK for use on particles and demonstrating dynamic parameters. I slapped the textures used in the example together rather quickly so the final result isn’t perfect but it’s good reference on the technique we use at our studio. It might be useful here too.

Dynamic Materials UDK

We used the mapping of grayscale flipbooks (and regular textures) via LERPs/LinearInterpolates to blend between two colors quite a bit as well. it’s really simple and straightforward to set up, but gives a lot of those ‘simple’ effects (dust blowing, impacts on the ground…) a nice color variation. if you’re piping in the alpha of the particle into the lerp you can end up with quite subtle but nice side effects pretty much for free.

on the note of the flipbooks: I guess there’s always the option to build the effects in the shader, polish it up real nice and then framedump it out out and make it a flipbook. it would be a nice alternative for those scenes where you don’t have to worry about the memory but are focused on keeping the shader complexity down…

off to watch Doug’s video now, thanks already in advance for putting it online.

Maybe it’s a little bit later to reply to the first post… :slight_smile:
Here I’m developing a custom C# tool to simulate and render 2d fluids.
The fluids rendered frames will be used by the artist to create flipbooks for realtime use or directly in AfterEffect for prerender.

The studio artist (and myself too) worked with FumeFx for a past project, but to achieve simple results it needs too much tweeking time.
The Milan studio is 3dsMax based, so we cannot use Maya as we want.
This is a screenshot of the WIP fuild tool.

Building a custom tool isn’t the best solution to every graphic pipeline bottle-neck, but I was sure to build this kind of tool in few time and it took less than two weeks to reach the usage-ready status.

That looks ace! Will you be releasing it?

I can’t…I don’t own the rights to publish it, sorry.
But if you want to approach the building of such tool, we can talk about the problematics I resolved buinding it.

I have the evaluation install of Houdini sitting on my machine taunting me, it’s one more piece of complicated software to learn. Having to be current on Max, Maya, Photoshop, Zbrush, Unreal, and all the various plugins for everything is quite enough without having to learn why Houdini wants me to confirm my delete action with the enter key :laugh:

Most of our current flipbooks come out of personal video footage, stock footage, or Maya fluid sims. We have one license of Fume but none of us are really experts yet.

I’d love an in house tool to generate simple sims.

I’m currently using Maya’s fluid sims, and I’ve done shader tricks. It pretty much depends on the strengths of whatever realtime engine I’m working on and leveraging it. Some of the issues I’ve run into have been mentioned (iteration, time) I’ve been looking at soup-dev - home for their wavelet turbulence, but I haven’t had a chance to try it yet.

I’m also looking at Houdini right now. I’ve heard (whisperings) of people using it directly in their pipelines, but I haven’t heard of any use cases from anyone. Evaluating it for their fluid sims. SideFX is starting a webinar starting next week, so I was going to follow along to see if I can get the basics in. :cool:

Finally got around checking out the soup tool for maya that was mentioned a few times now. looks pretty sweet and seems to take care of one of the things that threw me off about the maya sims - changing the container res fundamentally changes the dynamics. I never quite got how to work around that, I guess you can’t really.

the more I think about the option of creating the flipbook data in the game engine the more I like it. getting stuff like an explosion flipbook that dissolves into smoke and can keep up with a fluid sim could actually work nicely with the proper masks and distortion - no real limitations on the instruction count, texture dependencies etc. combined with a tool that takes the screengrabs and allows you the just keep every nth frame (to accommodate memory a bit better) it should result in quite a nice turnaround time for adjusting the flipbooks, the engine tools are already known and understood and it’s pretty easy to maintain a consistent look with the rest of the game. hmmm, tempting to at least give it a good go to see if it’s a viable option for production…