General


Fire/Smoke

  1. Bi-color

  2. Burning liquid

  3. Freezing flame

  4. Nuke

  5. PFsource

  6. Simple

  7. Rotate

  8. UVW

  9. Candle

  10. Rocket

  11. Multicolor

  12. Multicolor2

  13. Burning Plane

  14. Dissipation

  15. Cascade Smoke

  16. Clouds

  17. Propagate

  18. Mirage

  19. Fireplace

  20. Vent

  21. Fine Smoke

  22. Heavy Smoke

  23. Pillar


Liquids

  1. Pool

  2. Surf

  3. Beer

  4. Groove

  5. Paints

  6. Fountain

  7. Viscosity

  8. Burning liquid 2

  9. Vortex

  10. Cascade

  11. Cascade2

General

The following samples are provided to illustrate the usage of the different features in Phoenix. They are installed by default in the following folder:




Bi-color

How to start:


You have just to start the simulation, no additional actions are needed.


How it works:


This sample illustrates how to obtain age dependent coloring of the fluid. The core function used to achieve such effect is the cooling, it affects only the temperature channel and this gives the opportunity to "measure" the age of the fluid. Without cooling, the temperature and the smoke channels are decreasing with equal rates due to mixing with the environment air which means that the temperature/smoke ratio remains the same. The cooling causes the temperature to decrease faster than the smoke, and this changes the ratio in the time. In this sample the opacity is determined by the smoke and the emission is determined by the temperature. In the upper part of the flame the fluid with the same smoke concentration has lower temperature than the fluid below and this causes different coloring.

 

Burning liquid

How to start:


First start the simulation of the FuelSim node, and after finishing start the simulation of the FlameSim node


How it works:


The liquid is simulated using very low temperature of the released fluid and high conservation value (20 instead the default value 8). The "Smooth" conservation type also plays an important role since it's the strongest conservation type. The rendering of the liquid uses the solid mode option with transparent refractive material.
The flame is simulated using the the FuelSim node as source.

Freezing flame

How to start:

 

Start the simulation from the Ice node.

 

How it works:

 

There are two overlapped nodes in the scene, representing the flame and the ice. Both nodes use as render input the simulation output of the Ice node (see the "Input" rollout). The opacity of the flame is animated in the transparency diagram, and the ice is animated via the refractive index. The slowing of the flame is made via the time scale parameter of the simulation.

 

Nuke

How to start:


Just start the simulation.


How it works:


This sample shows how the displacement technique can be applied, to achieve fine details over the smoke. The grid contains 25M cells, but still, a small random noise can be added to get more hires overall look. To make the detail move with the fluid (which is preferred for animation), particle texture can be used. However it's slower, and better solution is to use wavelet turbulence.

 

PFsource

How to start:


Just start the simulation


How it works:


This scene demonstrates how to use particles as source. Each particle emits fluid with a random color. PhoenixFD Texture is used to multiple this color by the emission. See also the Multicolor example.
If you want to use per particle radius, make sure "Use Particle Size" of the source is turned on. To add per particle discharge variation, use the ParticleSampler texture (similar to the per particle color).

 

Simple

How to start:


Just start the simulation


How it works:


This is the simplest simulation that can be made. All the settings are the default simulation and rendering settings, except the additional lights.

 

Rotate

How to start:


Simulate the the simulator instances consecutively.


How it works:


Two instances of a simulator are rotated around the up axis. Each simulator instance have it's own simulation (i.e. it's own unique interaction with the scene). The grid is adaptive and it starts from a very small size. Wind From Movement is used to take into account the rotation of the grid in world space.

 

UVW

How to start:


Just start the simulation


How it works:


In this scene no fluid sources are present, all the activity is produced from the body-fluid collision. To visualize the fluid's movement UVW channel is exported and used as texture mapping coordinates in the rendering.

 

Candle

How to start:


Just start the simulation


How it works:


This illustrates how the flame can be influenced when the simulator is moved in the scene. Additional lights are used for more realistic lighting.

 

Rocket

How to start:

 

Just start the simulation

 

How it works:

 

The source is material sensitive and the fluid is emitted only from the bottom of the rocket. The Vorticity parameter is set to a relatively low value in order to produce a displacement friendly surface. In order to produce the jet a high value for the Discharge was used. The SPF upper limit is set to 40 because of the high speed of the fluid.

 

Multicolor

How to start


Start the simulation from the "sim" node.


How it works


A texture with four colored dots is set as discharge modulator and as UVW source. As a result only the dots are releasing fluid, and the UVW content of the fluid has the RGB values of the texture. The shading is done in a second Phoenix simulator. To achieve clearly visible smoke and fire, the emissive color is formed multiplying two textures exported by the simulator - the UVW channel and the emissive channel. The first one gives the color, the second one gives the power of the light.

 

Multicolor2

How to start


Start the simulation from the "sim" node.


How it works


This is the same as the Multicolor example, but without using 2 simulators. To achieve this, the emission channel is directly modulated by the uvw texture. To better preserve the color, the luminance is decreased from the simulator itself, the emissive color is set to white, and the intensity is increased from the "Color Gain" of the texture.


Burning plane

How to start

 

Just start the simulation.

 

How it works

 

This example shows simulation of convection cells over an infinite plane. To achieve a pseudo infinite behavior the X and Y boundaries are set to "wrap".


Dissipation

How to start

 

Just start the simulation.

 

How it works

 

This example shows how to create mappable smoke dissipation. It's achieved with a PhoenixFD Mapper and projected ramp texture. When the Time Constant of the mapper is decreased, the dissipation rate is increased, and vice versa.


Cascade Smoke

How to start

 

First simulate the PhoenixFDSimulator1 node, then the PhoenixFDSimulator2 node.

 

How it works

 

Similar to the Cascades2 example, here is shown how to do two pass simulation with smoke. However, the seam between the two simulators is more visible than with liquids, and special care must be taken.


Clouds

How to start

 

Just start the simulation.

 

How it works

 

A low temperature fluid is released randomly from a flat surface, slowly moving upwards. Using modulation, the transparency of the bottom part of the simulator is removed to achieve the look of clouds forming a storm.


Propagate

How to start

 

Just start the simulation.

 

How it works

 

A small cylinder of fuel along of the longest axis is initialized using script code. Than a source is brought near the simulator, and it ignites the fuel. The fire propagates to the other end of the simulator.


Mirage

How to start

 

Just start the simulation.

 

How it works

 

A source with low discharge is releasing slowly a fluid with 600K temperature. This fluid is heating the air above a plane, and Heat Haze is used to present realistic atmospheric disturbance of the objects behind.


Fireplace

How to start

 

Just start the simulation.

 

How it works

 

This example shows how emissive lights can be used to approximate GI lighting from the fire.


Vent

How to start

 

Just start the simulation.

 

How it works

 

The scene have two sources. One of them emits fluid, and the other one absorbs fluid. The first one is active at the beginning and fills the grid with smoke. At some point the second source is started and it absorbs the smoke, clearing the air.


Fine Smoke

How to start

 

Just start the simulation.

 

How it works

 

This example shows how to render fine detail smoke with low resolution grid using particles. The particle emission of the source is turned on, and the particle type is set to "Drag". See also Particles of the PhoenixFD Simulator. Then PhoenixFD Foam shader is used to render the particles as fog. As Fog If Below must be tweak in order to make all particles render as fog. Fog Resolution and the number of emitted particles now control the level of detail of the smoke (instead of the grid resolution). At last the Size Multiplier must be tweaked also to get the proper scale of the particles. Big particle size will cause high rendering times, and wrong appearance of the smoke. It's better to start with small values and increase the size progressively to hide the individual particles. Motion blur is used to further blend the particles.


Heavy Smoke

How to start

 

Just start the simulation.

 

How it works

 

A low temperature smoke is emitted and it slowly falls down. The Time Scale parameter is decreased to slow down the simulation. The SPF Lower Limit is decreased to 0.5, to allow really slow movement of the smoke, even at a half step. A discharge modifier is used to increase the randomness during emission.


Pillar

How to start

 

Just start the simulation.

 

How it works

 

DMM is used to break a pillar. In order to be able to calculate properly the speed of each broken piece, PhoenixFD must use Per Vertex Velocity. But since the vertex count can't changed during the simulation range, the pilar DMM object is set to start with splintered object. Then the source can be the whole pillar, and only modulate the emission based on the calculated speed of each piece. This is achieved with Discharge Modifiers. The effect is that the pillar do not start emitting until it's broken, and only the flying pieces emit smoke while falling.


Pool

How to start:


Just start the simulation


How it works:


The content of the simulator is initialized using script code. Then a ball is dropped in the liquid, creating foam and splashes. Splashes use motion blur, even the rest of the scene doesn't. Note that in this scene, the bottom plane do not interact directly with the liquid, but a proper boundary conditions are set. This is faster and helps preserving the liquid volume (i.e. don't disappear during interaction calculations).


Surf

How to start:


Just start the simulation


How it works:


The content of the simulator is initialized using script code. Only the left side of the grid is filled with liquid, and when released, it creates a huge wave that breaks into the opposite side of the grid with foam and splashes.


Beer

How to start:


Just start the simulation


How it works:


A beer is poured into a glass. B2B Interaction is increased to 5000 in order to simulate realistically the bubbles. To fix the grid artifacts that can appear between the liquid and the glass, inscribed voxels are used, and then the extra fluid content is cut out with a render gizmo (that is the glass itself). Foam also uses glass and liquid geometry to increase the realism when rendering.


Groove

How to start:


Just start the simulation


How it works:


A liquid is slowly released at the top of a huge spiral groove and fills a bucket at the bottom.


Paints

How to start:


Just start the simulation


How it works:


The uvw channel of the simulator is initialized using script code. Half of the cells are made blue, and the other half - red. Then the a liquid is released from two pipes - one on the left, and one on the right. The colors start to mix with the fluid flow, like if the released liquids were with different colors. There is a second example that do not use script, but releases two different colors from the different sources.


Fountain

How to start:


Just start the simulation


How it works:


A liquid is released from a pipe, filling a container. To achieve more realistic effect, the emission is modulated by an animated noise texture. The simulation also use foam and splashes.


Viscosity

How to start:


Just start the simulation


How it works:


An example of high viscosity cream like liquid. High quality "Smooth" conservation method is used for the simulation.


Burning Liquid 2

How to start:


Start the simulation from the FuelSim node. FireshaderSim is used only for shading the fire part of the FuelSim simulation.


How it works:


The Fuel simulator injects fuel inside the scene from a pipe, and in parallel a sphere is put on fire with very small discharge. When the liquid touches the sphere, the burning process starts. Since the liquid and the fire are shaded in different ways, a second simulator is used only for rendering the fire. Unlike the Burn Liquid sample, fire and fuel are simulated inside a single simulator, and the fuel is a true liquid.


Vortex

How to start:


Just start the simulation.


How it works:


The content of the simulator is initialized using script code. Then a vortex is created inside the liquid using a maya vortex field. PhoenixFD Turbulence is used to present random waves.


Cascade

How to start:


Simulate first the PhoenixFDSimulator1 node, and then the PhoenixFDSimulator2


How it works:


Two simulators are used to optimize the simulation of a non-rectangular area. A liquid is released from a pipe, and flows downwards creating a L-shape. The top part must be simulated first as normal. Then the top simulator is used as a source for the second one (PhoenixFDSource2 and PhoenixFDSimulator2 nodes). To achieve this, a surface level of 0.5 is set, and the discharge of the source is set to a very small value. As a result, in the bottom simulator, a new liquid will be released along the normal of the surface of the top simulator. Note that the simulators must overlap a couple of cells, and there will be always a noticeable seam between them if no special care is taken for that area. Cascade2 example shows a different approach that can achieve a better result.


Cascade2

How to start:


Simulate first the PhoenixFDSimulator1 node, and then the FireshaderSim node.


How it works:


Two simulators are used to optimize the simulation of a non-rectangular area. A liquid is released from a pipe, and flows downwards creating a L-shape. The top part must be simulated first as normal. Then the top simulator is used as a source for the second one (PhoenixFDSource2 and PhoenixFDSimulator2 nodes). This example differs from the previous one by a couple of things. First, the "Transfer" method is used by the source instead of "Inject". This means that the content of the first simulator is directly transferred to the second one. Second, the first simulator must export it's velocity. Third, you need to have the same cell size in both simulators, and their cells must overlap perfectly. If these steps are not executed properly, the result will be wrong. The overlapping area of the 2 simulators must be removed from one of the simulators when rendering. This is achieved with a render gizmo.