This section provides an assortment of miscellaneous advice to help you get great results while avoiding possible problems with FumeFX.
Shadows and "spiky" AFC
The image below shows an example of a "spiky" AFC. If the overall smoke opacity is also high, it may produce unpredictable results with Illumination Maps and Multiple Scattering. To fix this, soften the AFC a bit and reduce opacity. If the light strength in the smoke diminishes to 0 in less than a few voxels, you may experience unpredictable results, such as sudden changes of illumination in some areas.
As smoke drops to 0, opacity increases to maximum, and suddenly to 0. This may be desirable for the Fire AFC, but use cautiously with smoke
Here the problem is the same, except the spike is offset to the right.
If you need to follow FumeFX movement, export the FumeFX Velocity channel. Record caches and then play them back. Make sure to set cache updates to Manual in Particle Flow. Rely on Cache recordings in TP, as well; otherwise you may experience severe slowdowns.
In the case that you're using Matte/Shadow Material and you get shadow artifacts in the color channel, there is an easy fix. Open the Matte/Shadow Material and change the Color Value to 1. This will result in properly working material.
Adaptive Grid Practices
Adaptive Grid #1
If there is a source (Simple, Object, or Particle) that has no effect over a specific time range, set its Active key to off in that range. If you don't, then in every frame FumeFX will repeatedly stretch its adaptive grid over the area, only to immediately shrink it back again when no values are applied. This obviously results in a waste of memory and time.
Adaptive Grid #2
If you are using Object or Particle Sources, and that source's bounding box stretches beyond FumeFX' bounding box, FumeFX will, at every step, stretch the adaptive grid over the source and then, if no values are applied, shrink it back again. This results in a waste of memory and time.
Adaptive Grid #3
How do you enlarge the adaptive grid through forces or turbulence? Set the grid's adaptive sensitivity to 0,0. If there are no active sources in the grid, you will have to create one FumeFX Source. Set the source to Free Flow and set all its values to 0 (so it won't change anything). Attach the source to FumeFX and the adaptive grid will start growing from that source's location.
Running simulation on 3ds Max slaves
The FumeFX SL can be used to run FumeFX simulations on any machine with BackBurner Server running.
There are just a few things to consider.
Make sure that the FumeFX Simulation License (SL) is installed and authorized onto a network slave so it can receive the job. FumeFX SL can be authorized from the FumeFX About Box. FumeFX installed on the network slave machine has to be in SL mode.
On your workstation, turn ON the BackBurner toggle button in the FumeFX UI Dialog.
Clear the Use All Servers checkbox in the BackBurner Parameters for the job that will process the simulation and choose a machine with the FumeFX SL plug-in installed and authorized to receive the job.
It is enough to submit just one frame for rendering. After the render job is accepted, 3ds Max will start, the scene will load, FumeFX SL will run simulation and rendering will follow.
It is not possible to track simulation progress through BackBurner Manager or Monitor and the Job Progress will stay at 0% during the whole simulation. FumeFX will display its simulation progress window on the local machine. Also, it is possible to cancel, stop or pause simulation locally.
One simulation can be done on only one machine - parallel simulation is not supported. Simulation must finish before rendering can take place. If you intend to use one and only one machine for simulation and then rendering, just set up the normal rendering job and before submitting it, turn on the BackBurner button on FumeFX floater.
If you plan to render with more than one machine, or use another machine for rendering, you will have to set up two jobs. The first simulation job will be passed to one machine only and it will run simulation (and render just one "dummy" frame for example). The second job will be a usual rendering job and must be set to depend on the first one.