Smoke VEX node

Generates a material that simulates clouds, smoke, fire, and other gaseous phenomena on small spheres.

See also: Alpha Mix, Anti-Aliased Noise, Clouds

This operator generates a material that simulates clouds, smoke, fire, and other gaseous phenomena on small spheres.

The Lighting Model defaults to constant which is best at simulating light emitting gases. You have the option to use two other lighting models, Lambert or Oren-Nayar, with the latter offering the ability to flatten the light with increasing values of roughness (a nice effect, but will increase rendering time).

Alpha Para (apara), Alpha Perp (aperp) and Alpha Roll (aroll) control the rolloff of the smoke to the edges. See the Alpha Mix operator for a definition of these three controls. You will generally want to leave Alpha Perp at zero. Alpha Para is the density control. Alpha Roll should be a very small value (0.001 to 0.1), serving to concentrate the density near the center of the spheres. If you start to see the silhouettes of the spheres, decrease both Alpha Para and Alpha Roll.

Scale the Noise Frequency (nfreq) of the smoke to correspond to the average size of your particle spheres. The default noise is scaled to work well with spheres of radius 1. The Noise Amplitude (namp) scales the peaks of the noise. For soft smooth smoke, set this value lower. For fire and sharp effects, increase it. If too large (above 1.5), the amplitude will generate edge effects in the smoke.

The Time (time) value is meant to have a parameter input that animates the noise to create evolving smoke effects.

To make the noise “stick”, you need to wire a Rest Position operator into the “P” input. When rest attributes exist in the geometry (highly recommended), the noise will move with the geometry.

To inherit Cd and Alpha on geometry you have to wire in the correct parameter and multiply it into the output color tab. The Parameter operators should enable the “Use Input Value If Parameter Not Bound” toggle to provide a fallback input.

If the Position (P) or the Normal (N) inputs are not connected, the global variables by the same names will be used instead. Typically, you will leave “N” alone unless you want to add displacements to the surface before the final color calculation (see Bump Noise). If you need to access the global variables directly, they are available from the Global Variables operator.

Render Tips:

Usages in other examples

Example name Example for