Basic Tutorial 1: Emitters (Geyser) |
||
![]() |
||
|
preview video clip of final animation RealFlow3 Final Project Files for this tutorial ObjectivesIn this tutorial we’re going to create a scene of a jet of fluid that models a geyser which is a useful starting point for a number of common fluid effects like rocket engine exhaust, a flame thrower, or a fountain. Although a simple scene to set up, it produces a rich range of fluid motions and delivers something that looks a lot more difficult to do. We’ll build on this tutorial in future tutorials, to produce some fun and more exotic effects. The work will focus on emitter features and controls, but will also introduce other areas of RealFlow such as parts of the interface, the scene tree, particle export, basic animation of parameters, and strategies for running simulations (workflow) things you have to deal with in virtually every scene. The tutorial will not touch on meshing, waves, objects, rigid body dynamics, constraints, other types of fluids besides liquid and dumb, transferring data between RF3 and 3D applications, and rendering. The scene consists of an emitter that shoots liquid particles upward at an accelerating rate, forming a cap. At the base of the geyser we'll apply a second emitter shooting out dumb particles more or less horizontally to produce basal spray. The particles will be controlled by gravity, noise, drag and surface tension daemons. IntroductionThe most basic components of a typical RF3 scene are emitters and daemons. Emitters generate fluid particles, and their settings dictate the basic behaviour of the fluid. Daemons allow you to selectively add effects, like forces, that control and sculpt the behaviour of the fluid particles. In this tutorial, we’re going to focus on emitters and touch on daemons only briefly they will be covered in some depth in the next tutorial. The tutorial is designed for beginners who have done little more than install the software, but we expect the user to be familiar with common 3D graphics and computer concepts. The structure is designed for quick navigation depending on your level of experience with RealFlow, and your level of learning interest: - For those wanting to quickly cover the basics and like to learn by doing and experimenting rather than get into details, just follow the bold steps giving simple instructions. Or, download the project files and examine them, running test simulations and tweaking parameters. - If you like more detailed instructions and explanations, follow the main body of the tutorial text. Sections devoted to explaining how RF3 works or relevant aspects of physics are broken out in dark-blue italics and indicated with the bold subheading “Explanation”. - For more experienced users who feel they know how to do this kind of project, but want to gain a better understanding of aspects of RF3, scan the bold instructions and then check the explanation sections. A number of these link to relevant support resources and contain advanced material. - Finally, at the end are notes giving useful tips and alternative approaches, potentially useful to users of any level. If you want additional help during the tutorial or are looking for other tutorials, there are a lot of resources available to you. Under Help>contents… you’ll find the online manual that is packed with information, and is a good place to start (if you’re a total beginner, check the Getting Started section). Second, check the Next Limit website for more tutorials, as well as example scenes that are great for learning. Third, there are a lot of very good user tutorials accessible from Next Limit’s RF3 forum, in the tutorial section. These tutorials have been checked over and rated by experts, and a good place to start is in the index of tutorials in that part of the forum. Finally, take advantage of the user community in the forum to ask questions and gain a variety of insights. While working in RF3, use the tooltip-style help when you need reminding or definitions of functions: hover the cursor over a parameter and hit F1 to get a popup giving you info on it. If the element is a sub-panel tab, RMB-click over it for information. For more shortcuts, check go to Help>Key Shortcuts… Before we start, let’s define some common abbreviations: RF3 = RealFlow version 3.x UI = user interface LMB / MMB / RMB = left, middle and right mouse button, respectively Ctrl = the control button on your keyboard Alt = the alt button on your keyboard Shift = the shift button on your keyboard 1,2,3,4,Q,W,E,R = those buttons on your keyboard (e.g., W = the W button on your keyboard) OK then, let’s get started. |
|||
1 Initial setup and the user interfaceStart up RealFlow, and at the opening dialogue window create a new project called “geyser”. Also set up the workspace using File>Preferences…, to give the view setup you want.
The opening panel always comes up first and is a nice way to create a new project. RF3 projects are not single files, but a collection of files and directories, created automatically by the software, where all your various results get organized -- also automatically -- by the software. Don’t fool around with the structure since RF3 expects it a certain way, instead work with it. The lower window shows recent projects so you can open them easily with a double-LMB-click. Or, you can close this window and use the File menu (top menu bar, upper left) to open, save and save as… Or, use the 3 icon buttons in the icon bar along the top left part of the interface. But let’s use the initial Project management dialogue for now. In the opening dialogue type the name of the new project where it says <type name here>, putting in “geyser” and hit the create new project button in the upper left corner. The dialogue should close, and you should now have a directory in your scenes directory called “geyser”, containing a geyser.flw file and a few other directories and files. Explanation: RealFlow project structureIf you create a new project and call it the same thing as one you already have in your scenes folder, RF3 will over-write the pre-existing .flw file but nothing else in that directory. This is useful if you want to start a scene fresh. Doing a save as… allows you to save a new version of the .flw file. If you save it in the same project hierarchy as the original version, you need to remember that when you simulate you’ll overwrite result files like particle bin, mesh and dynamics files. You can avoid this if you want, by renaming the emitters and meshes, or byrenaming the output files in Export Central (see info later in the tutorial) or just moving the pre-existing particle and mesh files to another directory. If you save as… and place the .flw file in a directory elsewhere with nothing else in it, when you run that file RF3 will automatically create all the other files and directories it needs in that location to accompany the .flw file - so this works out to be a convenient way of creating a new version or backup of the project, that allows you to keep whatever work you already did in the earlier version. But, be careful doing this if your scene file makes use of exported scene data files (.sd files) containing objects, as RF3 will lose the link to those files when you separate the .flw file. You can backup this kind of scene by copying both the .flw file and the objects directory containing the .sd file to the new location. So, to create a “safe” backup, and prevent loss of good data, save backups to a different folder.
Now to customize the view. Go to file>preferences, and you’ll get a dialogue to customize your views for this project and default views as well, so you can set things up the way you like. I am leaving most things at their default, except for setting up to have a 3-view viewport (top, side and perspective). Do the same for your set-up so you can follow along easily. Normally I use just one view at a time to maximize the view size, and I switch rapidly between views as needed using the hotkeys 1,2,3 and 4 (top, front, side and perspective). The 5 key takes you to the camera’s view, but only shows you anything if you have imported a camera from your 3D application.
Another useful facility in the file menu, mostly for when you get into doing serious projects, is the Summary Info or Scene Information (file>summary info…). Go there now. This brings up a dialogue with two panels, one giving an automatic run-down of what is in your scene, including full paths to any polygon objects you’ve imported. This is important for when you move project files around but forget to move the objects and RF3 tells you they are missing. In the lower window is a space where you can write your own description of the project, and that will be saved with the project. Very useful for when you get multiple versions of files and are doing lots of tweaking. Put something descriptive in there now, like “Tutorial project on emitters: creating a geyser.” |
|||
2. Create and set-up the main emitter
Create the main emitter that will make the core part of the geyser: a circle emitter. Rotate it to face vertically upward. Leave the other parameters at their default settings.
At the right side of the interface you’ll see sets of panels with parameters for the various components of your scene, and you switch between between panels using the little icons along the top, to gain access to settings for emitters (F2), waves (F3), daemons (F4), objects (F5), constraints (F6), meshes (F7) and options (F8). Click on the far left icon (3 dots) or use F2 to see the emitters settings. Currently, you’ve got nothing in your scene but when you do, the emitters will be listed in the little window below the icons. Use the pull-down menu between the row of icons and the window to create an emitter by simply selecting it: choose a circle emitter. The emitter will now be shown in both the viewport and the emitter window. Active emitters have their checkbox checked (enabled). This means they will emit and their particles will interact with things in the scene. If unchecked, the simulation will make nothing happen for that emitter. This is very useful if you want to test things in a scene by isolating them, such as rigid body dynamics or separate emitters. We’re going to make the circle emitter shoot upward. Try running the simulation now by hitting Action (lower right corner of UI), and after waiting for it to run through 20 or 30 frames hit Action (hotkey A) again to stop the simulation. You will see a couple of problems the most important being that it doesn’t look very realistic. It just forms a vertical fluid pillar going up into the vacuum of space. The reason for this is that there are no forces, fluids or objects interacting with the particles. We want to give the impression of a jet shooting into a thick ambient atmosphere, that applies shearing drag on the edges of the jet. We could do this by copying reality and filling a big tank with particles and shooting the circle emitter into that, but it turns out to be challenging in RF3 primarily because of the large number of particles you need in the tank, making simulations take a long time. Also, simulations slow down considerably when fluid particles interact with objects (tank walls) because the collisions are computationally expensive to get right. If you can get away without object interactions, you should try. In this scene we’ll take a simple approach that semi-copies reality, which is a good way to think when working with RF3. We’ll apply the most basic of forces (gravity, drag, surface tension and noise), and simply accelerate the emission with time so that new particles slam into a slower-moving cap of older particles. This cap of slower particles will look like it was slowed by drag with surrounding atmosphere and will form the fluid that faster particles coming up from below push against. This will give us a nice mushroom-shaped cap and rich, realistic motion. Feel free to run test simulations as we go, but we’ll do plenty of that later after doing the basic set-up so you might as well wait. If you do want to do some experimental runs, use the Action button to start the simulation (or just hotkey “A”), hit Action again to stop it (hotkey A), and Reset to wipe the timeline clean and start again (ctrl-A).
Go to the emitter panel (F2). Select the circle01 emitter in the emitter panel with a LMB click, and you’ll see in the viewport that it is selected by the red (X), blue (Z) and green (Y) axes on it. You can see the direction of emission from the arrow coming out of the emitter, which should be straight down. We want to rotate it so it will shoot straight up, and scale it up. Look along the top icon menu bar of the interface and LMB click on the 6th icon from the left, the curved arrow, to switch to rotate mode. The cursor will change to a similar icon. You can get to this also with the E hotkey. Now click on the X-axis (red) arrowhead of the emitter and drag up/down to rotate. Alternatively, you can work in the Node sub-panel. It might not be expanded, so expand it by clicking on the Node sub-panel’s title area in dark grey. Everything has a Node sub-panel where you can change the position, rotation, scale, link and color properties. Emitters also have a Xform particles setting (default = No), which means transform particles. When enabled, this allows you to move particles along with an emitter. For now, set the rotation X value to an exact 180. In the text boxes, rather than enter the values you can LMB-click to make it active and then MMB-scroll to change values if you have a scroll mouse; or LMB-click and drag up or down to alter values. A similar set of values boxes is shown along the bottom of the UI, below the timeline, and labelled X, Y and Z. In rotate mode, these are the same as the Rotation X, Y and Z in the Node sub-panel. Leave the other parameters at default, we’ll tweak them later. |
||
3. Add the daemonsCreate gravity, noise, drag, surface tension and ~volume daemons. Leave the values at their defaults, and resize the ~volume daemon to encompass what you estimate the scene size is going to be, just as a first estimate.
Switch to the daemons tab, the icon that is 3rd from the left that looks like 3 dots stuck to a cube (F4). This is where you add effects and controls to your fluids, such as gravity, wind, surface tension, additional attractors and noise generally called force daemons as they apply forces. There are also daemons that can be called killer daemons, whose primary purpose is to kill off particles (remove them from the scene) when particular conditions are met. All killer daemons have a “~” at the start of their name. We’ll focus on daemons in tutorials 2 and 3, for now let’s just go along and not worry much about their details. Many of the daemons are use-able straight off the shelf, with their default settings. From the pull-down menu, select the following 4 daemons: ~volume, gravity, noise, drag and surface tension. The ~volume daemon is something you should consider adding to every scene. It will kill particles that leave (or enter) a box volume. Surrounding your scene with one of these means that stray particles that would otherwise fall away uselessly to infinity are cleaned out and not calculated. The computation time goes up with the number of particles in the scene, and also with the volume those particles take up. The volume mainly hits RAM as the 3D space is gridded and held in memory, so even a small number of particles spread widely will be hard on RAM. Smart use of killer daemons lets you optimize the running speed. Use the ~volume daemon’s Node subpanel to enlarge it to fit around the emitters, with some extra space around, or just hit the ~volume daemon’s Fit to scene button as a first approximation. No need to worry over the size now, as we’ll fine-tune it’s dimensions later on. Gravity daemons are obviously basic stuff and needed in most simulations, but avoid getting into the habit of automatically applying them as they aren’t always needed. We do need one here, though, because we want the particles to fall back to the ground after shooting up. The noise daemon is used to add interesting random-like motions to the fluid, so things don’t get too symmetrical. The motions are not too random, and in fact have a distinct 3D structure that is constant in time (unless you animate them). This is another very common daemon to add to scenes. You could get similar effects by having interacting fluids, but a noise daemon is faster to calculate. Drag is another daemon needed in most scenes since it acts as a friction force, damping down the motions and momentum of particles that would otherwise move about wildly and sometimes even shoot off to infinity. Even tiny values of drag can greatly improve a scene’s behaviour. Large values will make particles appear to move in slow motion. Surface tension is a surface force that tries to pull clusters of particles into spherical shapes, removing sharp corners. It’s a very common feature of fluids and can be used to get nice water droplets. Here, we’ll use it to increase the cohesion of the fluid into blobs. It isn’t completely necessary but does seem to improve the realism of the flow. |
|||
4. Check the Scene TreeUse the Scene Tree to apply all the daemons to the circle01 emitter.
The Scene Tree is an important area in RF3 as it allows you to control what things interact with each other. Using it, for example, you can apply noise to just one emitter, or different gravity daemons to different emitters. Access it via the button along the top of the UI, from the Tools menu, or with the hotkey F11. The dialogue window shows all components of the scene in the right window, the hierarchy or tree of interactions in the left window, and buttons in the middle allowing you to perform useful functions. The pull-down menus above each window allow you to simplify the display by filtering for just one kind of scene element. For a daemon to affect an emitter’s particles, it must be placed under that emitter in the left window. For typical, simple scenes, hitting Add All is the right thing to do and makes everything interact with everything in a physical way. You should see, however, that in this scene the daemons are already under the circle01 emitter. This gets done automatically by RF3 when only 1 emitter is in the scene, as you create daemons if that isn’t the case, hit the Add All button now. If you create more than 1 emitter, you have to remember to come back to the Scene Tree to set up the interactions a very common beginner mistake is to add things and then run the simulation, and wonder why particles don’t fall down under gravity or go straight through objects. It’s a good practice to check the Scene Tree prior to hitting Action. Close the Scene Tree by hitting the Done button. |
|||
5. Add a second emitter for the spray componentAdd another circle emitter by cloning circle01, call it “spray”, change its colour to green, set to dumb particles and with side emission “on”. Scale it up by 30% to avoid ugly interaction at circle01’s source. Use the Scene Tree to apply all daemons except surface tension.Now we’ll add an emitter that will generate the spray you often see at the exit point of the nozzle of jets of fluid, that usually blast at nearly right angles to the jet direction. It’s easier to break this out as a separate physical effect rather than try to get the full range of motions out of a single emitter. When working with RF3, it’s always worth trying to do this kind of breaking apart of parts of the motion, as it allows you to focus on simulating the effects as you want them, quickly and efficiently. Sometimes it’s also possible to make these additional effects computationally cheap, as we’ll see here: in this case we can use dumb particles rather than fluid particles.
Return to the emitters panel (F2) and select circle01. We could do this by adding another circle emitter as done before and then rotating and moving it, but let’s use another method: cloning. This is a nice way to quickly reproduce scene elements. Select the element, then go to Edit>Clone Selected (or use ctrl-D). You now have a copy of circle01. Click on the circle02 emitter’s name to show its sub-panels of parameters. Click on its name again to allow you to rename it, and call it “spray”. Doing this is useful to make working in areas like the Scene Tree, Export Central and Curve Editor easier. In the Particles sub-panel change it’s Type from Liquid to Dumb by clicking on the Liquid field beside the word Type and selecting from the sub-menu. Explanation: Fluid typesLiquid particles behave like a set of sticky, compressible balls. You can visualize these like gas-filled balloons coated in a film of glue. The balloons bounce and stick to objects and each other, producing chaotic and complex motions and when there’s enough of them, they work well to simulate a body of liquid. When the particles pile against each other as a result of forces like gravity, they compress under the forces. Stronger forces mean greater compression, but it also depends on the settings for internal and external pressure. Reducing internal pressure allows masses of particles to compress more under the influence of forces. The stickiness of the particles allows groups of them to stick together, just like real fluids, and also generates particle-to-particle friction as they attempt to slide past each other. This sliding friction between particles is a good way to imagine fluid viscosity. Dumb particles, on the other hand, are like standard particles in 3D applications. In RF3, these are affected by most daemons (but not all), they have mass, they bounce off objects, and fluid particles are affected by them. But they don’t affect the motion of objects, nor are they affected by other particles, nor do they interact with other dumb particles. They probably sound useless, but they are often very useful. Dumb particles work well in scenes wherever you don’t need lots of interactions between fluids, and where you don’t need objects to be affected in their motion by fluid. Most of the time, this corresponds to spray and small splashes. If you look at the spray from crashing waves, around waterfalls, or at the base of geysers, it has little effect on its surroundings but instead is affected by its surroundings. Spray bounces off and shoots away from car tires going through puddles, but doesn’t appreciably push back on the tires. They also work well to influence fluid particles, so can be used to set up a kind of complex flow field, like an advanced wind or drag effect. Dumb particles also work very well to add rich detail to turbulent flows, and help with the speed of your production since they are much, much faster to compute then liquid particles due to the far simpler interactions. This means you can sometimes get away with lower resolution in your liquid, and can add in additional dumb particle effects after the fact it’s a sort of fluid dynamic version of animation layering or compositing. After adding the dumb particles, you can combine them in a single mesh with your liquid particles to get a single fluid body. We want the spray to shoot out at right angles all around the emitter perimeter, which in RF3 is called Side emission. In the spray emitter’s Circle sub-panel, toggle the Side emission from no to yes. Increase the scale of the spray emitter to 1.3 for all its scale values. The reason we are doing this is to avoid ugly interactions with the circle01 emitter particles as they are created. Wherever things happen in a discontinuous way in RF3, is where you will hit sources of instability. The creation point of particles is one place where sudden changes are likely because particle creation is, by definition, not continuous. One frame there is no particle, the next there is. If another emitter places particles at the same place on creation, you get an instantaneous overlap that produces huge forces between the particles and launches them off at hyper speeds. You can see these instabilities in your scenes as totally chaotic motions of particles, and you'll also notice that RF3 will slow enormously as it tries to track things, and it may crash. There are ways to get through these tough patches but it’s best to avoid them entirely by giving emitters a bit of space to work their magic. In this case, we want to avoid placing both emitters right on top of each other as that’s asking for instability. If we increase the scale of the spray emitter, it will displace the creation location enough even with particles moving around quite noisily. Leave the other emitter parameters at their defaults, for now.
Then open the Scene Tree (F11). The daemons should already be added to the spray emitter because we created it by cloning. But, the emitters themselves have not been added to each other. This means there won’t be any interaction, and we’d like the Dumb particles to affect the circle01 particles. So, hit Add All, and in the left window remove the surface tension daemon from the spray emitter. Surface tension is one daemon that cannot be used on dumb particles leaving it in would have no effect but you would get a warning message in the Messages listing (small window at the bottom right of the UI LMB-click to see the accumulating messages for your session). Close the Scene Tree. |
|||
6. Use Export Central to tell RF3 to save the particle .bin files for both emitters |
|||
7. Keyframe the speed for circle01Set-up some simple keyframe animation: Control the emission of circle01 by setting the speed of the circle01 emitter so it starts at zero, accelerates to 10 at frame 50, then drops off quickly to 0 at frame 60. Set the max particles of the spray emitter so it will shut off by running out of particles at about the time the other emitter does.
Now we’ll do a little keyframe animation, and introduce you to the Curve Editor. This dialogue controls most aspects of animation. You can open it by hitting the button along the top of the UI, or via the Tools menu (Tools>Curve Editor), or with the hotkey F9, or perhaps most conveniently by RMB-click on the parameter of choice and selecting “open curve” from the context menu. Do this now with the speed parameter of the circle01 emitter. Not all parameters can be animated in RF3 - most can, but there are certain common parameters that cannot, such as resolution and density of fluid particles. The reason for this is generally stability, since altering such values in time could lead to discontinuities that could cause a crash. There are two basic ways of animating, either by keyframing or expressions. For keyframing you set values at particular frames, and control the style of interpolation between those frames. Using expressions means setting values in some mathematical or procedural way, for example making an object’s height some function of time, or making it driven by another parameter’s setting. Expressions in RF3 can give you sophisticated and precise control, but we’ll focus on them in another tutorial, along with other advanced aspects of animation. For now, we’re going to do some simple keyframing. In the main window of the Curve Editor dialogue is the time versus parameter graph, often called “f-curve” space in 3D applications for “function curve”. To the left is a window showing the animated parameters that are on display in the time window, and in the lower left are all the nodes of the scene. You can unfold each node to show their parameters, and move those parameters to the animation window above by LMB-dragging, in order to start setting keyframes. If you opened the Curve Editor by RMB-click on circle01’s speed value, you will already see it on display in the graph and the upper left window, with an initial keyframe set at frame 0. If you used another method to open the Curve Editor, the graph will be empty so you have to look in the lower window and find circle01. Then, unfold it with a LMB-click on the + symbol beside the emitter name, find the speed value, and drag it to the upper left window. Now in the graph, right click anywhere and select Create key. LMB-click the key you just created on the curve, and in the lower display's text boxes you can see the settings for the value, frame and type of interpolation. Set the value to 0 at frame 0, either by typing in the relevant text boxes or LMB-dragging the keyframe in the graph. Create another keyframe and set it’s value to 10 at frame 50. Create one more key, setting the speed to 0 at frame 60. The speed of emission will now go from 0, ramp up to 10, then drop off rapidly. Keyframing the speed of an emitter is one basic way of controlling it’s on-off state, so you can shut off the flow when you want to. We’ll now use the other way of doing this for the spray emitter. |
|||
8. Set optionsSet options for the simulation so you get the right number of frames and autosave backup files.
A final important few parameters to set-up before getting to the testing stage is a few options that should be on your list of things to always do in RF3 work. Go to the options panel, the last icon on the right of the panels icons, or use the F8 hotkey. In this panel are a variety of options. The first and most basic is the scene frame rate, and length. Using the frame rate, you can generate slow-motion fluid animations by setting higher frame rates than the final rendered animation. For this scene, leave the frame rate at 30, and alter the frame end to 160, which is all we need. You’ll see this immediately reflected in the length of the timeline. Now go to the Backup sub-panel and set the auto backup to Yes, leaving the other settings at their default. RF3 will now automatically save out up to 3 backup copies of the .flw file, doing one file every 10 minutes. The files will be placed in the same location as your current .flw file. This is a very useful feature since it’s possible to set up parameters that lead to instability, and you’ll want to be able to recover earlier states of the simulation. |
|||
9. Perform test runs and tweak settingsRun test simulations and alter the emitter settings to get good-looking results:- Reduce the resolution of the emitters to get fast runs for testing the basic motion.- Adjust the ~volume daemon so it lies under the emitters and kills particles as they fall through the “ground”.- Adjust the viscosity and speed of the geyser, the speed of the spray, the strength of gravity, noise, drag and surface tension.- Give the emitters random speed values to make them look more natural.After doing all the basic setup of scene components, it’s time to run some tests and tweak parameters. This stage can take up a lot of time as there are a lot of parameters in RF3, and if there are many particles in your scene each test can be slow. For this reason it’s wise to start with low resolutions on your emitters, and perhaps even to disable all but one emitter at a time mainly useful in complex scenes. In this case, let’s proceed by reducing the resolution of the emitters. Go to the emitters sub-panel and select the circle01 emitter. Change the resolution to 0.5.
After the change, you’ll see that the Particle mass value in the Statistics sub-panel has increased, and is now 2 (kilograms). This value is inversely proportional to the resolution, so the smaller the resolution the greater the particle mass. Since the particle volume is mass/density, you can see we’ve now got particles of 2 liters volume, something like a volleyball size. You can’t expect a lot of rich detail to come out of a simulation with volleyball-sized particles, but it will run much faster since there are fewer particles, and will behave crudely like it’s high resolution version. This means you can tweak parameters in much less time, and then up the resolution for final runs.
Also to keep things moving fast, let’s focus on just the circle01 emitter go to the emitters panel (F2) and disable the spray.
You can alter the display of the particles to reveal more about the flow by editing the display properties. Select circle01, and then LMB-click the small monitor icon below the emitter window. This brings up the particle visualization dialogue so you can alter how the particles are shown: their size, colour, which property is mapped, and whether velocity arrows are shown. Enable the display arrows option, and leave everything else. Now we’ll see the geyser’s particle velocities. Run the simulation now by hitting the Action button or the hotkey A. The simulation will run quite fast, so you get a good feel for the dimensions and behaviour of the flow in a short time. You can see from the simulation that the geyser shoots up, develops a reasonable cap, but quickly goes through the edge of the ~volume daemon, prematurely chopping off the head of our geyser !
You can increase the vertical scale of the ~volume daemon by going to the daemons panel and increasing the y-scale to make sure the geyser will fit, or you can do this: flatten the ~volume daemon in the vertical direction, move it down to mimic a floor layer for the emitters, and set it’s inverse parameter to yes. This means that particles will be killed as they fall down and enter the box instead of as they leave it, as though they are disappearing as they fall back to Earth. This seems a reasonable place to kill them. Test it again to check and increase the horizontal scales to make sure they will catch widely-flung particles. Try a few runs at different viscosities for circle01, say between 0.1 and 10. Higher values give a better development of the cap, as you might expect from the effect of viscosity, making the particles more “sticky”. I settled on a value of 10 because I wanted a nice cap and to have a look more like a coherent fluid be careful with going too high or RF3 will have a hard time jamming out the particles from the emitter. If you wanted something more water or vapour-like, use a lower viscosity. Also adjust the maximum speed in the Curve Editor to get good motion although I left it at a max of 10 and felt it looked good. Now work on adjusting the values of the daemons leave the surface tension strength at default (5), and try lower gravity strength (say, 6) and higher noise strength (try 10) for less regular movement. Gravity in particular can be reduced to effectively make the simulation look larger in size, since particles will take longer to fall a given distance. Perform test runs as you adjust values to see their effects.
Next, you can see that the particles are very nicely ordered as they leave the mouth of the geyser, and don’t look very natural despite the noise daemon deflecting the motion from being in straight lines. Geysers are wildly turbulent so let’s make it so: you can change this in most emitters by changing the values of H and V random upward from 0. These values add random components of velocity, up to a maximum of the value you set, to the departing particles. So if the emitter speed is 1, setting values of 0.1 for H and V random will be hardly noticeable. Setting values of 10 will produce chaotic emission. For an emitter speed of 100, H and V random = 10 will be small again. In this case the emission speed varies, so test out a few values I got good results for values V= H=3. Next, let’s look at the spray emitter: in the emitter panel, enable it. Run the simulation and you can see quickly what you need to adjust to get nice looking spray behaviour: I set the speed to 4 and the V random to 3, but left H random on 0 since we didn’t seem to need it. Let the simulation run through to frame 50 at least, when you can see how many particles the spray has put out (should be about 10,000). LMB-click on spray in the emitter panel, and set its max particles value to 10,000. This value is exactly what you might expect: it sets the maximum number of particles that an emitter will produce. Note that in earlier versions of RF, this was the maximum number of particles in existence at any time. In RF3, the statistics sub-panel shows you the difference between the number so far produced, and the number currently in existence, which can differ because particles can be killed. Setting the max particles to low values means the emitter will be on from frame 0, and will shut off automatically once the max particles value is exceeded. So, this is a way to control the on/off state of the emitter. Also, setting very large values is the way to ensure that the emitter won’t stop during the simulation.
Run the simulation again to test that the spray emitter shuts off at around frame 50. Explanation: Particle emission conditionsEmitters can overshoot the max particles setting by a significant amount under certain conditions. This happens because of the way emitters create the particles: the emitter acts as a sort of window or hole through which particles are poured in a zero-force configuration. That way, as particles emerge there are not large forces between them that would cause explosive expansions, contractions or deformations right after they appear. Visualize this like the gas-filled sticky balloons we mentioned earlier, flying through space and only just touching their nearest neighbours but not really pressing on them, nor moving relative to them (no shearing). As a result, only as many particles will emerge as the area of the emitter allows, for particles to be in a zero-force configuration, and they will shoot away at the speed you set for the emitter. If the emitter area is very small, you may get only a few particles emerging at any time because only that many can fit through the emitter. If you scale emitters down enough, you can reach a point when the emitter is too small to allow more than a single particle to squeeze out. You can change this by increasing the resolution, which reduces the particle size, or scaling up the emitter. If you scale up the emitter a lot, then you can get a massive number of particles created per frame since many can fit through and the entire area of the emitter will be filled. In this case, you can overshoot the max particles significantly because the number of particles shot out in a single frame may be much greater than the max particles setting. Then, RF3 will shut off the emitter after that frame, so you’ll be left with more particles than you wanted. Now increase the resolution to get more particles and see more details of the behaviour. To make sure the spray emitter shuts off at the right time, multiply the max particles by the same factor you change the resolution. So going from resolution = 1 to 4, go from max particles = 10,000 to about 40,000. This means you'll emit the same mass (or volume) of particles. You’ll see how much faster Dumb particle simulations run, by comparing their run time with that of circle01. Adjust the number of particles and the resolution to get the spray to look good, and also to run out of particles and shut-off around the time you’ve keyframed the circle01 emitter to shut off. Getting the max particles just right to shut off when you want is a trial-and-error process and not very precise, but it works fine if it doesn’t need to be that precise. One thing you will notice when you simulate is that the circle01 particles fall into the flow of spray particles, and get caught up and carried by that flow just as you’d expect in the real world. This effect will increase as you increase the resolution of the circle01 emitter relative to the spray, since the particles will each have less mass and be more susceptible to deflection. You can control this by altering the density of the particles, but we’ll take what we get for this scene at the parameters we have already set. After getting the parameters to what you’d like, increase the resolution to what you think will look good for the circle01 emitter by now you should have a reasonable feel for that (I used 3 for circle01, 4 for spray). Check in Export Central one last time to confirm that everything will be saved, and finally run the simulation. Congratulations, you’ve now created a geyser complete with spray ! We’ll re-use the saved particle files in a later tutorial, so if you have the hard-drive space, don’t delete them. Note the size of the data files, it’s easy to see that for complex projects you need to keep hard-drive space in mind: 6 Gb project sizes are common. For this project, the total was 217 Mb with particle bin files from both emitters (202 Mb) and saved preview image files. The time to run the final simulation was 10 minutes on a 3.6 GHz single processor PC. |
||
|
Tips: - There are other ways to get a geyser-like effect, which you can explore. For example, simply setting up with a higher gravity value and no accelerated emission will create a fountain in this scene. You could also have the geyser shoot up into an object to create the cap, or a bounded drag daemon, or a tractor daemon, or a bounded ~speed daemon set to limit and keep, or fluid particles shot downward against the flow from the circle01 emitter. It’s worth testing other ideas in simple experiments as they all produce slightly different-looking simulations. Experimentation is by far the best way to learn about RF3, in fact it should be a part of any production workflow to ensure you get the results you want and the fastest possible simulation conditions. - You can open multiple instances of RF3, so you can be running a simulation and still open and setup another scene. Of course, you may find this strains your CPU or graphics card. - If you want an additional floating viewport, say to work on 2 displays, go to View>New Viewport or hit alt-N Stability issues: new users often find RealFlow frustratingly unstable, but there’s a good reason for this. The complex physics of fluids lends itself to highly chaotic situations, and this can be made much worse by setting parameters to physically nonsensical or conflicting values. RealFlow gives you the ability to set many parameters to very wide ranges, which is great for flexibility. But it means you can easily wander into a setup that drives the software crazy. With experience you rapidly learn. Remember to save your work often, use the automatic save feature, and do lots of experimentation on simpler, lower resolution scenes. |
|||