Fire & Smoke Generator 1.0
user's manual

1. Installation

Copy the plugin and its key file wherever you need (for instance into LightWave plugins directory).
Important for Mac users: copy your key file into the Current Project directory, as defined by the Content Directory. You need to copy it to each project directory you want to use F&S in it.
Start Layout. Use Layout->Plugins->Add Plugins or Edit Plugins (Alt+F11) and select smoke.p file. You will be told that 6 plug-ins have been successfully added. You will find 4 of them in Object Properties panel in Custom Object pop-up menu, one in Generics pop-up and one in Procedural Texture pop-up.

Keep your key file in a save place. Updates will not work without it. Free future updates will be available in download section at www.polas.net

2. Components
There are six plugins in the package for various purposes.  
Control Center details
This Generic plugin allows you to control all Fire&Smoke components from one panel. You can find here all common settings and main controls (that are not available in other plugins), as well. Common tasks here are: Add/remove plugins to/from objects, start/reset simulation, copy/paste plugin's settings etc.  
Generator (Emitter) details
Attach this plugin to an object from which you want to emit particles. Particles will be emitted from the surface of the object. You have many controls here for particle and environment (wind, random vortexes etc) here.  
Collision details
if you need your particle collide with something in your scene add it to the collision object. The collision objects can be animated in any available way in LW.  
Vortex details
it allows you to create custom vortex that you can place anywhere in your scene to swirl particles.  
Player details
Plays baked particles from a file.  
Opacity details
It is procedural texture plugin to fix the problem with HyperVoxels opacity. Use it to smoothly fade in and out particles. It uses Appear/Dissolve settings from Fire&SmokeGenerator.  
3. Quick Start

- Draw any shape in Modeler to create an emitter. Only quads and triangles should be used. There are no other limitations. You can use nurbs patches.
- Load this object into Layout. You can animate it in any way including bones, displacement, 3rd party plugins, etc.
- Check if you have disabled "Play at Exact Rate" in your LW properties ('o'). It should be DISABLED.

- Open Fire&Smoke Control Center from Generics pop-up menu.
- Attach Fire&SmokeGenerator plugin to the emitter from ControlCenter panel or Select Fire&SmokeGenerator from Custom Object popup menu from item properties panel ('p').
- Click 'START/STOP Simulation' button (Control Center) to start simulation. You can also use LW Play button it is recommended to use START button from Control Center.

Once particles are computed their movements are cached and will be recomputed only after you Reset Simulation.

important: If your emitter/collision objects are animated you should avoid skipping uncomputed frames. When you skip uncomputed frames they would be computed based on last know emitter/collision object geometry (without their movements) and you would get unexpected results. It is important to compute frames continuously (frame by frame) to retrieve proper objects geometry. The best method is to use Control Center and its START/STOP Simulation button or LW play button. You should also disable 'Play at Exact Rate' in LW Properties panel ('o'). In other case LW can skip frames during play.
4. Color Gradient usage

Usage of color gradient is very easy but it is slightly different from LightWave built in one so you may have some problems at the beginning. Gradient area is divided into three horizontal segments.

The top area is for adding new colors. Click in any place there and a new color will be created in clicked position. The middle area is where you can see your color gradient and you can select colors to make adjustments. The bottom area is for deleting colors. Click the box and clicked color will be removed. There is only one disadvantage - moving existing color. You cannot simply drag it inside gradient preview (unfortunately LW doesn't allow this). There is a slider above the gradient preview for moving actually selected color. You will get the feel of it shortly. Just select the color you want to adjust and move the slider. The color will follow the slider movements.
If you are satisfied with your gradient or you need to try different combination of colors and don't want to loose currently created you can easy store it in presets system.

5. Miscellaneous
Modeling - emitters and collisions objects should have no non-planar polygons. For the best results use quads and triangles only. Nurbs patches are also supported.
Animation
The most important advantage of Fire&Smoke is that you can animate emitter and collision objects using any LW tool. This plugin doesn't limit you! You can use bones, displacement maps, morphs, motion designer, 3rd party plugins like Impact3 - anything. You can create you scene and animation and add fire&smoke at the end - it will work with any object you created.
Vortex - what is this?
toroid
(with cut part)
vortex area it is radius of the ring
vortex radius it is radius of cross section

In order to work with Fire&Smoke you need to know what a vortex is. How it looks in 3D space. It may be comparised to toroid shape. If you are not sure how toroid looks in 3D just open the modeler and use appropriate command in Create/Objects menu.
Only three settings are needed to describe a vortex:

Vortex Area - it is radius of overall vortex shape.
Vortex Radius - it is radius of vortex cross section.
Vortex Spin - maximal velocity of vortex's swirl.
Particles that are near vortex "surface" get maximal swirl velocity. Particles inside vortex get smaller velocity. Influence of vortex fall off with distance to it's surface.
Particle velocity got from twister may be lowered by 'Max Speed' setting from particle tab. This setting it is limiter for particle speed - to slow down particles that moves too fast. Without it particles under influence of many twisters in some cases may get really big velocity and overall look of a fire/smoke may be worse.

Appear/Dissolve

dissolve 30%

dissolve 50%

dissolve 100%

Those two settings allow you to fade in and out particles at the beginning and end of their life. Appear setting gets value in frames. In most cases particle should appear really fast in 3-4 frames and this is why you can specify it in frames. Dissolve it is an opposite parameter to Appear. It allows to fade out particle at the end of its life. It is percentage setting. You can adjust particle life span and don't need to change dissolve it is always in % of particle life time. Maybe you think that it isn't constantly - one setting in frames and second in percent - but you find it useful I think.
Unfortunately the current version of HyperVoxels don't read this value from LW Particle. You can use Fire&SmokeOpacity plugin to fix this HV feature.

Disslove is non-linear to give more natural look of fade out.

Controlling wind by an object

wind in world coordinates

when you move the object wind vector will not change. blue line indicates global wind direction.

wind in local coordinates

when you move the object wind will change to point to null object.

You can control wind by setting its velocity in axis direction and you can control wind by a null object. Both settings will be mixed to set final value of wind direction and velocity. I found that it is much easier to control wind by an object then by setting numeric values.

Wind direction is drawn as a blue line. All emitters have also blue arrow that indicate wind direction. Using 'wind controlled by an object' you can easy control global wind that affects all emitters. Sometimes it may be difficult to control wind velocity by object distance. For your convenience there is 'manual velocity' setting. Set it to 0 to disable it. Non zero value overwrites wind velocity.
You may need also control for a wind in local emitter coordinates.

Emission WeightMap
You can paint a weight map on your object to specify areas with different particle emission.
weightmap painted on an object in modeler
weightmap used as an emission weightmap in layout
there will be maximum emission on the areas where weightmap has +100% value. There will be no emission where weightmap has -100% value. If 'Weight Cut off' is checked weight map will be taken like two values - there will be no smoothing between +100% and -100% values.
Propagation with Emission WeightMap
emission starts where weightmap value is near +100%

emission area extends in time

emission area covers finally whole weightmap

In real world fire extends during burn. It is possible to simulate this effect in Fire&Smoke. When you set 'propagation' value to non zero particles emission starts on areas where weightmap is set to 100% and will be smoothly extended to areas where it is set to 0% and then to areas with -100% value. 'Propagation' parameter controls duration of this effect (in frames).

Collisions
too big bounding box

optimized bounding box

object divided into two separate pieces

too big bounding box

optimized bounding box

nurbs object divided into two separate pieces

Try to create collision object as simple as possible to speed up simulation. Try to break apart collision object to pieces with smallest bounding box.

Of course you can use not optimized collisions objects but it slows down computing time. All particles inside bounding box are checked for collisions.

6. HyperVoxels

To allow HV to see particles from Fire&Smoke you need to check 'Show LW Particles' in F&S settings. When this feature is turned on HV will work with F&S identical like with LW built-in ParticleFX. For faster preview you can turn it off - this hide LW Particles and HV drawings and have no influence on rendering session. 'Show LW Particles' will be automatically turned on during rendering session so you don't need to turn it on manually.

You can force HV to use particle colors data. Check 'Use ParticleStorm Color' in HV settings. It forces HV to read color from LW internal buffers. If you get color flashing errors during animation you can use Fire&SmokeOpacity plugin on a color channel. It is a bit slower but it gives proper values to HyperVoxels.

The primary task of Fire&SmokeOpacity is to pass opacity values to HV. You can add it to HV Dissolve texture channel.

In order to use information about particles you have to select apropriate 'Data Object' in Fire&SmokeOpacity settings. Plugin is unable to find data object automatically. As a 'Data Object' choose the emitter (or Player) your texture is attached to. You can select different object and then colors or opacity values will be taken from selected object and you get different results. Second setting of F&SOpacity is 'Particle range' it should be similar to HV particle size.

7. Contact

If you have any questions, comments, suggestions, problems, etc. feel free to contact me:

e-mail: olo@polas.net
ICQ: 81081247
IRC (ircnet): channel #idreams