Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The instructions on this page guide you through the process of creating a Collapsing Building collapsing building effect using Chaos Phoenix 4, V-Ray Next and Thinking Particles 6.

...

UI Text Box
typeinfo

This is an Advanced Level tutorial. The workflow for setting up the shot, and the Phoenix settings involved in the simulation are explained in detail. However, creating a production quality shot of a similar nature may require some tweaks to the lighting, materials and/or the Phoenix simulation. An understanding of thinkingParticles is beneficial but not required.

Section
Column
width45%40%

This tutorial demonstrates how to work with Thinking Particles in tandem with Phoenix. The fragments coming from the Thinking Particles simulation are used as Source Geometry for the Phoenix Fire/Smoke simulation. Each fractured piece is represented as its own shape for a realistic interaction between the geometry and the smoke. The fractured geometry is used to drive the simulation by injecting velocity into the grid. Finally, all scene elements are cached to disk and rendered with V-Ray.

This simulation requires thinkingParticles 6, Phoenix 4 Official Release and V-Ray Next Official Release for 3ds Max 2015 at least. If you notice a major difference between the results shown here and the behavior of your setup, please reach us using the Support Form.

The Download button below provides you with an archive containing the start and end scenes.

 

UI Button
sizelarge
icondownload
titleDownload Project Files
urlhttps://drive.google.com/uc?export=download&id=1DKUtYyICA1efM4P3dH9UbcnbCURguIZD

Column
width55%60%
videoautoplayloop
Align
0building_collapse_small.mp4
1100%
2100%
3true

 

Units Setup

aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/eTi_XUI1e3o?version=3&loop=1&playlist=eTi_XUI1e3o" frameborder="0" allowfullscreen></iframe>

 

Units Setup

...

Section
Column
width40%

Scale is crucial for the behavior of any simulation.

Section
Column
width40%

Scale is crucial for the behavior of any simulation. The real-world size of the Simulator in units is important for the simulation dynamics. Large-scale simulations appear to move more slowly, while mid-to-small scale simulations have lots of vigorous movement. When you create your Simulator, you must check the Grid rollout where the real-world extents of the Simulator are shown. If the size of the Simulator in the scene cannot be changed, you can cheat the solver into working as if the scale is larger or smaller by changing the Scene Scale option in the Grid rollout.

The Phoenix solver is not affected by how you choose to view the Display Unit Scale - it is just a matter of convenience.

As the focus of this tutorial is a large-scale ship simulation, setting the units to Meters seems like a reasonable choice.

Go to Customize → Units Setup and set Display Unit Scale to Metric Meters.

Also, set the System Units such that 1 Unit equals 1 Meter.

Column
width60%

Image Modified

 

Scene Layout

...

Section
Column
width40%

Go to Modify Panel → Create → Geometry → PhoenixFD → FireSmokeSim.

The exact position of the Phoenix Simulator in the scene is (X, Y, Z): (17, 2, 0 ).

Open the Grid rollout and set the following values:

  • Cell Size: 0.3m.
  • Size (X, Y, Z): (150, 60, 130) - we keep the Simulator size smaller than the entire building during the R&D process. For the final simulation, the Size is set such that the entire building is confined in grid.
  • Container Walls → Wall Z: Jammed (-) - the bottom of the simulator is jammed (closed) so that the smoke does not leave the bounds of the simulation as it travels down.
  • Adaptive Grid: Smoke - the Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand. With a Threshold of 0.02, the Simulator will expand when the Cells near the corners of the simulation bounding box reach a Smoke value of 0.02 or greater.
  • Extra Margin: 5 - the Extra Margin option is useful when the Adaptive Grid algorithm is unable to expand fast enough to accommodate for quick movement in the simulation (e.g. an explosion). The Extra Margin parameter attempts to remedy this by expanding the grid preemptively with the specified number of voxels on each side.
  • Enable Expand and Don't Shrink - this way the Adaptive grid will not contract back when there is very thin smoke at the borders of the grid.
  • Enable Max Expansion: X: (0, 0), Y: (130, 0), Z: (0, 30) - to save memory and simulation time by limiting the Maximum Size of the simulation grid.
Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Add a Phoenix Fire/Smoke Source: Modify Panel → Create → Helpers → PhoenixFD → PHXSource.

Click the Add button to choose geometry to emit from and select the thinkParticlesNode entry in the Scene Explorer.

A pop-up window will appear, listing all Particle Groups of the Thinking Particles simulation.

Choose the Particles [ select ] group and hit OK.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

We can see that the Smoke is rising up instead of falling down - this is caused by the Temperature channel which is generated by the Fire/Smoke Source by default.

UI Text Box
typetip

To enable the GPU Preview as seen on the video to the right, select the Phoenix Simulator → Preview rollout → GPU Preview → Enable in Viewport.

Column
width60%
videoautoplayloop
Align
0
align
addSrcAddSimulator.mp4
center
1100%
2100%
3true
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/An0EWGM1kYs?version=3&loop=1&playlist=An0EWGM1kYs" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Fire/Smoke Source and disable the emission of Temperature.

UI Text Box
typetip

By default, Temperature is emitted with a value of 2000 Kelvins (~1700 Celsius, or ~3100 Fahrenheit). Because hot air rises up, the Smoke is going straight up upon emission.

Disabling Temperature will cause the Smoke to stand still unless acted upon (by a Force, a Solid Object or Simulator → Dynamics rollout → Smoke Buoyancy).

If you'd like the Smoke to travel downward (akin to dry ice), either reduce the emitted Temperature below 300K, or disable it altogether and set the Simulator → Dynamics rollout → Smoke Buoyancy to a value lower than 0.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

As expected, the Smoke is standing still upon emission after disabling Temperature.

UI Text Box
typetip

You may be wondering why the Smoke is not interacting with the building geometry...

By default, the Thinking Particles selected as emission geometry in the Phoenix Source are represented as Non-Solid geometry. Non-Solid geometry can be used as a Source but does not affect the simulation in any way.

Column
width60%
videoautoplayloop
Align
0
align
disableTemperatureEmission.mp4
center
1100%
2100%
3true
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/CfmoTYcrdo4?version=3&loop=1&playlist=CfmoTYcrdo4" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the following Thinking Particle Particle Groups in the Scene Explorer:

  1. Particles [ building ]...
  2. Particles [ non-select ]...
  3. Particles [ select ]...

With the mouse cursor over the Viewport, Right-Mouse-Button click and select 'Chaos Phoenix Properties...' from the menu.

Under the Phoenix Properties dialog, enable Solid Object.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

As the building is collapsing, the falling pieces accelerate the smoke towards the ground. As the smoke reaches the bottom of the simulation grid, it starts rolling to the side.

true
Column
width60%
videoautoplayloop
Align
0
align
enableMotionVel.mp4
center
1100%
2100%
3
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/QNXVa5tHkUw?version=3&loop=1&playlist=QNXVa5tHkUw" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Outgoing Velocity parameter to 50.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

Increasing the Outgoing Velocity makes the smoke thicker and allows it to roll further once it reaches the ground.

true
Column
width60%
videoautoplayloop
Align
0
align
incOutVelToFifty.mp4
center
1100%
2100%
3
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/VjdsWig0Msk?version=3&loop=1&playlist=VjdsWig0Msk" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Prt Shape parameter to Use Particle Shape.

UI Text Box
typetip

By default, each piece is represented as a single point with a radius of one voxel. This is faster to compute and good enough for most purposes.

For maximum realism, we use the actual shape of the pieces as source geometry by telling the solves to use the objects attached to the particles. The faces of each piece will now emit smoke with an Outgoing Velocity of 50.

This will significantly increase the amount of smoke in the simulation.

Column
width60%

...

true
Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

Every single face of every single piece is emitting smoke, all at the same time. In real life, when a building collapses, only the areas around the cracks will produce dust. As mentioned in the beginning of this walk-through, the inside faces of the fractured pieces are separated from the rest of the building with a specific Polygon ID. The Phoenix Source can use this ID to only emit from those faces which share it.

Column
width60%
Align
videoautoplayloop
aligncenter
0useParticleShape.mp4
1100%
2100%
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/4f76_OFYr-Q?version=3&loop=1&playlist=4f76_OFYr-Q" frameborder="0" allowfullscreen></iframe>
3

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Polygon ID parameter to 2.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

As expected, only the inside faces emit smoke now.

However, we need to resolve another problem - the pieces emit smoke during the entire simulation. Instead, they should be emitting only while falling towards the ground.

We can use a Discharge Modifier for the Phoenix Source to tell the solver to only generate smoke from those pieces which are accelerating towards the ground, in the negative Z direction.

Column
width60%

Videoautoplayloop
0usePolyIDs.mp4
1100%
2100%
3true

Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/G_b2eBjUdzg?version=3&loop=1&playlist=G_b2eBjUdzg" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Source and hit the '+' icon under the Outgoing Velocity parameter.

This will connect a Discharge Modifier to the Source.

For more information on Discharge Modifiers, please refer to the Phoenix Documentation.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

The static pieces no longer emit smoke due to the Discharge Modifier applied to the Outgoing Velocity.

true
Column
width60%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/dYTyWUh4YB4?version=3&loop=1&playlist=dYTyWUh4YB4" frameborder="0" allowfullscreen></iframe>
Videoautoplayloop
0addDischargeMod.mp4
1100%
2100%
3

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Smoke amount to 5.

UI Text Box
typetip

The difference between increasing the Smoke and Outgoing Velocity parameters is in the way the content is generated.

You could increase the Outgoing Velocity to achieve a similar result. However, the Outgoing Velocity parameter will not only pump more smoke into the simulation, but also more velocity. This will disturb the emission and cause the falling pieces to emit with an unnatural strength while on their way to the ground.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

In the next step we modify the color of the emitted smoke.

Column
width60%

Videoautoplayloop
0smokeFive.mp4
1100%
2100%
3true

Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/tS--BlZxCWQ?version=3&loop=1&playlist=tS--BlZxCWQ" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Source and enable RGB emission.

Plug a Noise texture into the Map slot for the RGB channel.

UI Text Box
typetip

The RGB channel is dragged along the Velocity field in the exact same manner as the Smoke channel. For more information on the RGB channel and working with it, please take a look at the dedicated Simulation RGB Workflows tutorial.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

Note that the behavior of the smoke is more akin to bubbling rather than rolling out. To achieve a realistic flow in this situation, the swirling motion of the smoke needs to be boosted. This can be achieved by increasing the Conservation Quality parameter under the Dynamics rollout. Please refer to the following example images in the documentation.

Column
width60%

Videoautoplayloop
0higherResAndRGB.mp4
1100%
2100%
3true

Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/oTquBYy7lAk?version=3&loop=1&playlist=oTquBYy7lAk" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Simulator → Dynamics rollout and set the Conservation Quality to 100.

This change will boost the swirling motion of the smoke, allowing it roll out further.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

At this point the simulation is complete. You may skip straight to the Rendering section, or work through the Re-simulation section in case you'd like to add some additional detail for a close-up shot.

Column
width60%
videoautoplayloop
Align
0
align
conserveQualityHundred.mp4
center
1100%
2100%
3true
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/5TKaFl7mjjI?version=3&loop=1&playlist=5TKaFl7mjjI" frameborder="0" allowfullscreen></iframe>

 

Resimulation

...

Section
Column
width40%

Open the Phoenix SImulator → Resimulation rollout and enable Grid Resimulation.

Note that when you enable Resimulation, Phoenix will try to read the cache files for preview and rendering from the Resimulation Output Path, instead of the 'regular' Output. Don't be alarmed if the Viewport goes blank - you can always go back to the original cache files by disabling the resimulation.

Set the Amp.Resolution to 0.5. This parameter is used to increase the resolution of the grid for the Resimulation process only (just like the Cell Size in the Grid rollout controls the resolution of the simulator).

Set Amp. Method to Interpolate - the interpolation can sharpen the existing simulation without pushing the details too much.

Hit Simulator → Simulation rollout → Start to begin the re-simulation.

UI Text Box
typenote

If you'd like to perform a Re-simulation using Wavelet Turbulence, set the Amp.Method either to Wavelet Fast or Wavelet Nice. The Wavelet Strength will then control how strongly the fine detail from the generated Wavelet grid channel will affect the Resimulation.

In this example, we don't use Wavelet Turbulence because the wispy, fine detail generated by it breaks the illusion of a large-scale simulation.

Column
width60%

...

Section
Column
width40%

To the right is a Preview Animation of the simulation in its current state.

At this point we're done with the Phoenix simulation. In the final Rendering section of this tutorial, we focus on wrapping up our work and generating the final image.

true
Column
width60%
videoautoplayloop
Align
0
align
resimFinal.mp4
center
1100%
2100%
3
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/dmCmvk2EVAU?version=3&loop=1&playlist=dmCmvk2EVAU" frameborder="0" allowfullscreen></iframe>

 

Rendering

...

UI Text Box
typetip
Section
Column
width40%

Optionally, you may set the Phoenix Simulator → Rendering rollout → Sampler Type to Spherical to avoid grid artifacts if your simulation looks too sharp.

For this particular scene, it won't make a tremendous difference but depending on your setup, this may be a good way to smooth-out the smoke.

Column
width60%

...