Explosia FX: Solver
This page contains the reference manual for the Solver tab in the Explosia FX object.
The tab interface looks like this:
For the buttons at the bottom of the interface, please see the 'Common interface elements' page.
This is the voxel size within the boundaries of the solver. The solver volume is divided into cubes of this size. Smaller values result in more accurate simulations but are slower to playback and render. As the voxels get smaller, more particles are required to generate the smoke, etc.
These are the coordinates of the solver in local space, representing the minimum X, Y, and Z values. If you move the solver in the editor these figures stay the same, because they are local to the position of the solver. In the default state, with the solver at the world centre, the 'left-hand' boundary on the X axis is at -200, and the same applies to the Y and Z axes.
The size of the solver along any axis is therefore the maximum value for that axis minus the minimum value (in the default state that would be 400 scene units on each axis, which is 200 minus -200 = 400).
These are the coordinates of the solver in local space, representing the maximum X, Y, and Z values. If you move the solver in the editor these figures stay the same, because they are local to the position of the solver. In the default state, with the solver at the world centre, the 'right-hand' boundary on the X axis is at 200, and the same applies to the Y and Z axes.
The size of the solver along any axis is therefore the maximum value for that axis minus the minimum value In the default state that would be 400 scene units on each axis, which is 200 minus -200 = 400).
Smoke, Heat, Fuel
These checkboxes indicate which channels are used in the simulation. The default is for smoke, heat and fuel to be checked.
As an example, suppose you have the Display tab set to display fuel and smoke. If you uncheck 'Smoke' in this tab you will only see the fuel display as no smoke will be generated. But note that, if you turn off 'Fuel' you won't see anything, because without fuel there can't be any burning or any smoke. If you look carefully though, and you have adaptive bounds enabled, you can see that something is happening because the adaptive bounds are visible. You can see why this is if you change the display to temperature: this shows that you still have heat but no smoke or burning.
If you check this switch, to add the colour channel to the solver, you can specify a specific colour to be used in the display. To do this, you would also turn the 'Display' setting in the 'Display' tab to 'Color'.
Where does the colour come from? This is set in the Explosia FX Source tag. See that tag for details of how to specify a colour to use.
If this switch is checked, UVW data is generated so that textures such as noise can be mapped to the simulation for extra detail.
Smoke Adv, Heat Adv, Fuel Adv, Velocity Adv, UVW Adv, Color Adv
Advection is the process of the transport of some quantity - e.g. smoke or velocity - through a fluid or gas by motion. You can read about the technical aspects in this Wikipedia page.
Explosia FX carries out advection for six different properties. For each one there is a drop-down menu giving a choice of algorithm. In each case the options are:
The fastest algorithm but tends to lead to blurring. The best choice for heat advection and is also recommended for color and UVW.
A slower algorithm giving less blurring. Recommended for fuel advection.
The slowest algorithm and the most memory-intensive. It is the most detailed of the three and is therefore recommended for smoke advection, for which fine detail is important.
The simulation can only take place within the bounds of the solver. But what happens when the smoke (or whatever) reaches the boundary?
Compare these two videos. In the first, none of the Container switches is checked. In the second, the Y+ (i.e. the top) container is checked, effectively adding a 'wall' at the top of the solver:
You can see that when a container switch is set the smoke collides with the wall and moves over it, but when it is not set, the simulation is simply cut off at the top of the solver.
Note that setting these container walls will slow the simulation, which is why they are not set by default.
Adaptive Bounds Settings
When solving the simulation, we could simply solve each voxel inside the bounds. But that would be slow and inefficient. Instead, we could solve only those voxels where something is happening, adjusting the volume to be solved as the simulation progressed. This is what adaptive bounds does. In general you should leave this enabled unless you require the whole solver volume to be solved each iteration. Doing that will be significantly slower than using adaptive bounds.
Check this switch to enable adaptive bounds.
This is the size of the additional 'padding' around each active voxel as the simulation progresses. In most cases the default setting is fine and there is no need to change it.
To adjust the bounds the solver must keep track of some parameter, such as smoke or fuel. With these switches you can choose which parameters the solver will track.
Smoke Thresh, Heat Thresh, Fuel Thresh, Velocity Thresh, Color Thresh
These are the minimum values of a tracked parameter which must be present in a voxel before a change in bounds takes place. If these values are never exceeded, the bounds will never change.
For example, if you track only the heat, the heat value in any voxel must reach the heat threshold level to trigger the adaptive bounds. If the Explosia FX Source tag has a Heat value set to 100%, and you set the threshold in the solver to 1.1 (i.e. 110%), nothing will happen because the threshold will never be exceeded. But if you set the tag's Heat value to 120%, the simulation will run again.
Initial State Settings
One problem with any simulation is that each time you make an adjustment you have to play it again from the beginning. Sometimes though, you would like to start the simulation already part-way through and proceed from there. This is what the initial state controls do.
With these controls you can run the simulation to a point you like, then set the initial state and rewind the animation. When you play it again, it will start from the point you saved it rather than from the original start point.
Use Initial State
Check this switch to use an initial state once you have set one. If at any point you want to run the simulation from the beginning but not lose the save state, uncheck this switch.
If this switch is checked, the saved stated will be compressed to save memory.
Run the simulation to the desired point then stop it and click this button to set the initial state. This will also automatically check the 'Use Initial State' switch for you.
Click this button to clear the initial state.
Load State... & Save State...
If you save a scene file with a set initial state, the state is saved with the file. But you can also save and load the initial state independently, so that you could load the state into a solver in a different scene.
Click the 'Save State...' button to save the state to a filename of your choice. Click the 'Load State...' button to load a saved state.