Join Aaron F. Ross for an in-depth discussion in this video Introduction to 3ds Max Fluids, part of 3ds Max: Tips, Tricks and Techniques.
- [Instructor] 3ds Max 2018 update three introduced 3ds Max Fluids, which is an implementation of the Bifrost dynamic simulation engine. Let's get acquainted with Fluids using this motion graphic style effect of a text object made of clear liquid. This is the first version of Fluids and it's likely that the workflow will change slightly in the future. I've got a scene laid out so that I can drop the text onto a background object.
And behind that background object is another plane, which is going to be used as a kill plane to remove particles. We need to create the liquid object first. Go into the Create panel, Geometry, and from the pull-down list choose Fluids, click on the button labeled MaxLiquid, and then click to create that in the Top viewport. I'll create it off to the side here. Click and drag and release the mouse, then right-click to exit creation mode.
With that object still selected go to the Modify panel, and we have the ability here to choose different Icons for the Emitter of the fluid. We can assign an object as the Emitter. Let's do that. From Icon Type choose Custom, and now we have a section that says Add Emitters. Click on the Pick button, and then select the text object in any viewport. And it's listed here, TextPlus.
Click the Pick button to turn it back off again. And now we can go into the Simulation View, which is a window dedicated to managing the liquid simulation parameters. Click Setup, Simulation View. And here we see that there is an area at the top with the name of the object, Liquid001. Below that is a Solver, and this is where we can create a cache on disk. The way this works is that you calculate the simulation and it stores the results on disk and then to play it back or render it the cached disk files are read back into 3ds Max.
Let's go into the Liquid Attributes tab in the Simulation View. We can see that our Icon Type is Custom and our Text object is listed. We also want the liquid to collide with the background, so under Colliders/Kill Planes, Add Colliders click the Pick button and select the background object, and then click again to turn Pick off. Scroll down a little bit. We can add this second plane as a Kill Plane, so that when particles fall off the edge of the first plane they simply disappear when they cross this Kill Plane.
So click the Pick button under Add Kill Planes, and then select the killplane, and turn the Pick button back off again. So those are the three objects that are going to participate in the simulation. We don't need the Text object geometry anymore, so we can select that and hide it. Right-click and choose Hide Selection. And we can reselect the Liquid object if we want, but we don't need to, because the Simulation View will still work even if the object is not selected. Let's move to the Solver Parameters tab.
And here's where we can determine the most basic parameters, such as the size of the world and the accuracy of time samples. We don't need to change very much here. We're going to leave all of the general parameters here at their defaults. Most importantly, we have the scale of the world and also the size of a Voxel. A Voxel is a volume element, just like a pixel is a picture element. A Voxel is the smallest cube in the lattice of this volumetric simulation.
We will leave that at its default, which is 0.5 centimeters. And this value is hard coded in centimeters cubed. Then we have Gravity, which is also hard coded to meters per seconds squared. My scene is built at Unity scale, in other words, my text object was less than one meter on one side. Scroll down into the Simulation Parameters. We do need to change this in order to improve the accuracy of collisions.
If your fluid is going through the collider objects then that means these Transport Steps or possibly Time Steps need to be increased. Time Steps can be left alone in this case, because the fluid is not moving that quickly, but Transport Steps should be increased, otherwise we'll have problems with collisions. Transport Steps have to do with the speed of particles only. And this is a much faster optimization than Time Steps, which are subdivisions of the frame. So increase the Transport Steps, the Minimum Transport Steps to 100.
And then we want to increase the Adaptivity. This is a non-linear parameter that increases the likelihood that more Transport Steps will be subsampled within the current Time Step. Set the Adaptivity to 0.9. Moving onto the Liquid Parameters. Over on the left we can choose Liquid Parameters and we can choose a Preset from the list. Let's just choose Water. And that's all we need to do there. The rest of it is taken care of for us.
Moving onto Emitter Objects. We do want to change this as well. The Emit Type is defaulted to Emitter, which is a continuous stream of liquid. I only want the Text object to act as a container, so choose Container from the list. And we can check in on the Collision Object section as well. And it doesn't need to be changed, but if you use different types of objects you might need to change the Mode or some of the other parameters here.
But that looks pretty good as well. Then we can move to Caching. This is how we can determine the naming convention for cache files. Then we have the Display Settings tab. And we have the Size of a point. Let's bring that down a bit to 0.2. And we've set up all of our parameters. We can now create our cache. Go up here to the top area and just press the play button. And the solve begins, we can see it says fluid sim 0%.
And we get to see the particles on the current frame. We can also open up under Options there's an Output Window. And this just tells us what's going on. We're on frame six right now. So, in fact, if we scrub in the timeline we can actually see the fluid at that point in time. But it doesn't automatically update to the next frame in this version. We can also press play and it will continue to loop, but that might put a little bit of load on the machine, so I'll just stop that and rewind it.
And wait for a few minutes while the simulation calculates. When the simulation is completed and fully stored on the disk as a cache then the readout up here will say sim idle once again. We can go ahead and play this back in the viewports. Let's close some of these windows, move the Simulation View out of the way, and press play. I've set this up so that we can see playback in all viewports in the time configuration dialog. So that looks pretty good.
We can now try rendering this. Back in our Simulation View we have our Render Settings. I want to render this in Arnold, so down here under Liquid Settings, Render As, instead of Cache Mesh I'll choose Arnold Surface. And this is very important, because doing it this way we don't have to build an additional mesh cache, we can just render the surface directly. For Surface Type we want Mesh, Render Component should be Voxel.
And one last little thing in here, we want to increase the Dilate just a little bit to 0.01. This is just going to expand the volume of the fluid a little bit, so that when we have thin film of liquid on the surface it will still render. And finally, very importantly, we don't have any foam or bubbles in this shot, so in the Foam Settings we need to set the Render As type to None. Otherwise we'll get an error message and the shot will not render in Arnold.
I've got a material prepared for the liquid also. I can close the Simulation View and open the Material Editor. And here it is, I can double-click it to load its parameters. And also assign it to the selected liquid object by clicking Assign Material to Selection. Its an Arnold Standard Surface with no Base Color, so this is going to be a transparent liquid. It's got Specular Reflections at maximum with a very low Roughness.
And then most importantly, it's got a high Transmission value, .95, almost the maximum. And I've also tinted it with some Transmission color. And by the way, the liquid object is unique. It's already not opaque. All other object types in 3ds Max need to have the Arnold properties modifier applied if you want to make them cast transparent shadows. But the liquid object is already not opaque by default.
So we can go ahead and do a test render. I can close the Slate Material Editor and let's do an ActiveShade render of the PhysicalCamera view. And there it is in all its glory. And as we scrub through the timeline we can preview the rendering. And if I go down to frame 15 or so we can see that it's splashing. And there's actually some motion blur on this by default, because I'm using a PhysicalCamera. That's a quick introduction to 3ds Max Fluids.