- Introduction to Advanced Tutorials
- "Hello" From the developers
- RealFlow's User Interface
- Adjusting RealFlow Preferences
The Export Central window
- General Structure
- Scene Tree Options
- Exporting Particle Emitters
- Exporting Grid Emitters
- Exporting Grid Domains
- Exporting Grid Mists
- Exporting RealWave Nodes
- Exporting Cameras
- Exporting Daemons
- Exporting Objects
- Exporting Meshes
- Exporting Job Files
- Exporting Log Files
- Exporting Previews
- RealFlow Emitters
- RealFlow Daemons
- RealFlow Objects
- RealFlow MultiJoints
- RealFlow Meshes
- RealFlow Cameras
- RealFlow Job Manager
- Curve Editor
- RealFlow Plug-ins
- RealFlow -nogui
- Python and RealFlow
- Script Types and Scripting Windows
- Common Settings
- Batch Scripts
- Simulation Events
- Scripted Nodes
- Hello World
- Scalar Variables
- List Variables
- Dictionary Variables
- Global and Local Variables
- Data Types
- Accessing RealFlow Nodes
- Accessing Particles
- Building Vectors
- Changing Attributes
- Changing Particle Attributes
- Custom Attributes
- Affecting Particles with Daemons
- Shifting Particles
- Custom Functions
- Using Modules
- Creating Graphical User Interfaces (GUIs)
- Final Notes
- Scripting - Examples & Ideas
- Tables and Values
- C++ SDK
1 . The Particle Fluid Interaction Panel
This panel is only visible with an emitter present in the currently opened scene. It governs and controls the interaction between particles and the object, and each object has its own Particle Fluid Interaction settings. These parameters are also responsible for surface properties, like friction.
One of the most common errors with particle-object interaction is interpenetration. In this case, particles can pass through a solid object and become isolated from the rest of the fluid. Such a behaviour is often related to “Collision distance”, substeps, scale and your object’s geometry. The following explanations do not only explain basic functionality, but also give you valuable tips on how to avoid these problems. Please keep in mind that RealFlow automatically adjusts “Collision distance” when scene scale becomes changed.
You can see five parameters with little chessboard icons. These symbols indicate that you’re able to load a RGB image map, representing different zones of friction or roughness, for example. RealFlow interprets the picture’s grey shades and translates them into values. This feature also makes use of UV coordinates, so please don’t forget to relax the object’s UV before export. To load a map please right-click on the appropriate parameter and choose “Load texture”.
This is probably the most important and most critical parameter. You can adjust the distance between the particles and the polygons of the object, and create gaps or perfect representations of the item’s shape. Lower values increase simulation time, but are also more accurate. Larger objects require greater values, but small bodies should have lower settings – something that’s especially important for scale changes, too. If particles are still penetrating the polygons, higher “MIN” and/or “MAX substeps” (see Related Tutorials below) should be considered. You can find an illustration of “Collision distance’s” effect in the images on the right.
RealFlow automatically adjusts “Collision distance” by default, but after scene scale changes, it normally has to be corrected. Good values are around 1% of the object’s largest “Scale” value found under Node.
Collision distance = 0.01 | Collision distance = 0.1
By increasing this value, RealFlow randomly spreads the particles to avoid perfect boundary layers. However the SPH specific layers cannot be removed completely with this parameter. If you want to get rid of these layers, you should consider a scale change, too. “Distance tolerance” ranges between 0.0 and 0.95.
This parameter provides three settings: “Both”, “Inward” and “Outward”. It controls which side of the object’s surface will interact with the particles and is great for filling containers from outside particle sources, for example.
“Collision normal” set to “Inward” allows the filling of closed objects
If you have to create porous or leaky objects, this value is the perfect choice. With 0.0 you can completely prevent particles from passing through the object. A setting of 0.5 will cause 50% of all particles to go through the object’s surface. 1.0 completely suppresses interaction. “Collision tolerance” supports image-based parameters.
Here the resistance of a surface is specified. A value of 0.0 creates absolutely no friction and a perfect surface. In nature, objects always have a certain amount of friction, because there are no perfectly even surfaces. Higher values can even completely stop particles from moving. With very high settings above 2.0 you may see exploding or escaping particles. Friction is very sensitive and should be changed carefully. Please also consider using an image map instead of a global value.
Bounce represents an surface’s elasticity in terms of object-particle interaction. It does not affect rigid body object-object interaction and elasticity. A value of 0.0 creates perfect elasticity; higher settings make the particles lose appropriate amounts of their energy. Extreme values should be avoided. The best working range is between 0.1 and 0.8. Instead of entering a global value, you can also use an image map.
It can be seen as a “glue factor” to make particles stick on the object’s surface. This parameter accepts very high values and can also be adjusted to negative settings for repelling effects. Completely exaggerated values may add high accelerations to the particles and lead to unwanted results. Use a value similar to gravity as a reference and then adjust it until you get the desired effect. Please note that sticky only works with static objects. By right-clicking on the little black and white icon, you can load a bitmap to replace the given setting.
Similar to friction, each surface contains a certain amount of roughness. In RealFlow, this value adds some randomness to the object’s polygon normals to produce a slightly different collision direction. This leads to a much more realistic behaviour. High values can cause the same problems as friction, and it’s also a very sensitive parameter, ranging between 0.0 and 1.0. This setting also supports image maps.
The example on the right shows an image attached to plane. The stripes indicate different zones of roughness, leading to variable flow rates. The black parts are the areas with the lowest roughness, increasing from dark to light. The underlying map is visible in RealFlow’s “Flat Shaded” mode. When you have a look at the Node Params settings for “Roughness”, you’ll also see that the parameter now has a purple colour, telling you that a map is used.
RealFlow’s mapped parameters allow the creation of zones with different properties
This value only affects gas particles. Gas particles strongly react to temperature changes. Higher temperatures make them rise due to higher (internal) pressure, while low settings are responsible for cooling effects, causing the particles to sink. “Temperature” is measured in Kelvin and therefore no negative values are allowed. 0° K represent -273.15° C or -459.67° F.
Again a value that’s only valid for gas particles. Here you can control the transfer of heat between the particles and the object. A value of 0.0 means that there’s no heat transfer at all. “Conductivity” accepts very high values and is directly related to “Temperature”, which is a measure for the object’s heat energy.
Thin face test
You can choose between “No” and “Yes”. Normally, this parameter isn’t needed, but there might be cases when the particles are separated by a thin wall. Under such a circumstance the particles would interact with each other, though they should not do so. To avoid these interactions, “Thin face” test must be enabled.
Each particle carries a certain amount of motion energy related to its velocity. With activated rigid body dynamics, this energy can be transferred to the object making it move. By altering “Particle force” you can decide how strong the object will be moved by the fluid.
This setting works like a repulsion force, similar to a jet or a rocket engine. It can only be set to “Yes” or “No”, without options to control the strength of the impulse.