SPH - Binary Loader

This type is an incredibly versatile helper. Actually a "Binary Loader" should not be considered as a typical emitter, because it is not capable of creating particles, but it can be used to load previously simulated BIN file sequences into RealFlow and perform very interesting post processes. "Binary Loader" contain very strong features.

One of these features is the ability to load a sequence and determine a certain point in time where the imported particles become released. From this point they can interact with other particles and objects again or existing structures can be dissolved. The released particles can accept any of RealFlow’s fluid types, react to daemons and obey fluid equations. The "Binary Loader" can only process one bin file sequence at a time, but it is still great for side-by-side comparisons of different simulations in a single scene, because you can use multiple loaders per scene.

Another advantage is that the binary loader does not care from which source the data has come from. You can use splash or mist particles from grid fluid simulations or fibres. If you have a plugin or script that converts particles from other sources into BIN files (e.g. Maya particles, ThinkingParticles etc.), you can use them inside RealFlow with a "Binary Loader".

Retiming is possibly the strongest function. In some cases it is necessary to change a simulation’s frame rate or the fluid’s overall velocity. A "Binary Loader" provides a method to perform changes in time without having to simulate the entire project again. When you use the "Binary Loader's" retiming parameters you will only see the results directly at simulation time, but not when you scrub the timeline.

 

  

BIN sequence

From this field you can load the desired bin file sequence. For best results the file names should follow RealFlow’s rules for naming and padding. The function opens a file picker for you to browse to the directory containing the bin files.

Mode

You can choose from: “Normal”, “Hold”, “Loop” and “PingPong”. With “Normal” the sequence simply ends with the last file. “Hold” saves the last BIN file and displays it in the viewport. With “Loop” the files sequence starts again with the very first frame. “PingPong” is a nice mode that plays the series of BINs forth and back. The last three options are only visible if the frame range of the current scene is longer than the loaded BIN file sequence.

Reverse

If this setting is switched to “Yes”, RealFlow will playback the sequence in reverse order. “No” deactivates this feature.

Number of files

It is not possible to change this value – it is only for your information and shows how many files from the specified BIN sequence were found by RealFlow.

Frame offset

You can specify the frame from which the files are loaded. This value does not truncate the sequence, but only shifts the starting frame to the entered value. An example: a file sequence consists of 50 files and you want to start at frame 30, instead of frame 0. With “Frame offset” = 0, the first file is shown at frame 0, the last one at frame 50. If offset is 30, the sequence still contains 50 frames, but playback starts with frame 30 and ends with frame 80. Frame offset can either be positive or negative.

Release particles

By default, this field is set to -1. This means that the particle are not released and the entire sequence is read from disk. By defining a new value, RealFlow will stop reading further files with this particular frame and the particles will be released, obeying the fluid engine and the scene’s forces. From that point on you are about to create a completely new simulation.

Load particles

By clicking on this button you can either reload the existing sequence or load a series of files if you have replaced the previously displayed data. 

Reset xform

For side-by-side comparisons it is normally necessary to reposition the binary loaders and the key here is that the particles are emitted at their new position, taking the emitter’s offset into account. To reset to its original position, click on “Reset xform”.

First frame

This is a read-only value for informative purposes. It helps you to define an appropriate offset. If you load a sequence called “Circle0100000.bin”, this parameter will be set to “100000”. To get a correct simulation again, “Frame Offset” must be set to -100000.

Time multiplier

The Binary Loader has its own retiming functions and “Time multiplier” is actually the most important parameter. A value of 1.0 will keep the current time scale of the imported BIN sequence. Values greater than are used to create a time-lapse effect. With a value of 2.0, for example, the retimed simulation will only have half of the length of the original sequence. Values smaller than 1.0 will create a slow-motion effect and create a longer simulation. With 0.5 you can double the length of the simulation.

Interpolation method

When you extend a simulation, RealFlow has to add new particles. The process of adding new particles to fill in the gaps between the frames is called “interpolation” and you have several options how these particles should be created. The standard method is “Linear interpolation”. Here, the values of the previous and the following frame are used and RealFlow simply calculates an average. Finally, there is “Cubic interpolation”. This method can be used to achieve smoother results. If you do not want to use any interpolation method and RealFlow should just add the new particles, please select “No interpolation”.

Readjust magnitudes

When a simulation is accelerated or decelerated, velocity, forces and vorticity of the affected particles will change. An example: let's assume that you want to make a particle-based simulation two times slower (Time multiplier = 0.5) than the original, so all velocities, forces and vorticity will be decreased. If you want to accelerate the simulation (e.g. Time multiplier = 2.0), then all attributes must be increased accordingly. It is also possible to do this in the opposite direction – e.g. when a simulation has to run backwards then the properties will be flipped. The scale factors will be automatically determined and depend directly on the “Time multiplier” value. With “No” you can disable this option. 

Kill particles at

Dying or killed particles have to be treated separately. Since there is no possibility to find out the exact age at which a particle will finally die, a simple but effective method is used: the tool evaluates the previous and subsequent frames of the current frame. An example: the currently evaluated frame is number 126. The “Binary Loader's” retiming function will have a look at frame 125 to check if a certain particle exists. If it does not exist in frame 127 anymore then it has died and been removed at some time during frame 126. Filtered particles can be problematic, because when a particle is just transferred to another emitter, the positions of the dying or born particles are ambiguous and the interpolated particles cannot be placed correctly.

"Frame beginning": in this case, the currently observed (dying) particle will not exist in any of the interpolated frames. If the "Frame middle interpolating" option is active, the observed particle will keep its velocity and move with the fluid until halfway through the interpolated frames, and will then be removed. If "Frame middle freezing" is checked, the dying particles will not be deleted but frozen, and will keep their positions at the time of death for all interpolated frames. "Frame end interpolating" will keep the observed particle's velocity and motion throughout all interpolated frames. When dying particles are not frozen, but killed at the middle or the end of the frame, then they do not just move at their latest speed. They are affected by the “latest” force and a particle will keep moving because the forces still accelerates it. "Frame end freezing" is the last method and works like “Frame middle freezing”, but here the particles will be frozen at the end of the frame.

Time warp

With this option it is possible to perform a more sophisticated retiming process that is based on a curve or function. When you set “Time warp” to “Yes”, you have access to the associated “@ Time function” parameter which holds the retiming curve or expression.

@ Time function

You can change this value only when “Time warp” has been set to “Yes”. The “@ time function” parameter makes only sense if you animate its value(s) or add an expression. To add a curve or expression, please double-click on the parameter name to open RealFlow's "Curve Editor". There, it is possible to define a custom animation curve or an expression (it is even possible to mix both types) that will be used for the retiming process.

This parameter works exactly like the "Retime Simulation" tool's “Time factor” and “Edit function” parameters.