This page provides a tutorial on creating a Cloud simulation with Chaos Phoenix in 3ds Max.

 

Overview


This is an Intermediate Level tutorial. Even though no previous knowledge of Phoenix is required to follow along, re-purposing the setup shown here to another shot may require a deeper understanding of the host platform's tools, and some modifications of the simulation settings.

The instructions on this page guide you through the process of creating a volumetric static cloud effect using Phoenix and 3ds Max. In this tutorial, the clouds will be simulated, so they would be more realistic than clouds created from a static geometry with volumetric displacement. Simulated clouds also can interact with geometries passing through. Additionally, Phoenix offers a Cloud Timelapse Quick Setup toolbar preset which could be used to generate an animated sky system.

In this tutorial, we use a Phoenix Fire/Smoke Source to emit smoke from a basic source geometry. The emission is modulated through a procedural texture used to control the discharge rate of the Source. The shape of the cloud is controlled through the Dynamics parameters of the Phoenix Simulator. Finally, we go over the Volumetric Rendering settings and explain the difference between the various options available to you.

This tutorial is created using Phoenix 5.10.00 Official Release, and V-Ray 6 Update 1.2 Official Release for 3ds Max 2019. You can download official Phoenix and V-Ray from https://download.chaos.com. 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 scene files.

 

Download Project Files

 

Units Setup


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.

According to Wikipedia, the size of cumulus clouds is 1 to 5 km, so in this example, we set the Scene Scale to Metric Meters.

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.

 

Scene Layout


The final scene consists of the following elements:

  1. A Polygon Plane with an applied Shell modifier. The Plane is textured with a Gradient Ramp Map and used as the emission geometry for the Phoenix Source.
  2. A Phoenix Simulator with some tweaks to the Dynamics and Rendering parameters and a Phoenix Fire/Smoke Source with animated Outgoing Velocity.
  3. A V-Ray Physical Camera with minor tweaks for final rendering.
  4. A V-Ray Sun Light.

 

Phoenix Source Setup


Create a plane from Standard Primitives → Plane and set its Length/Width parameters to 1190/1480 meters.

Apply a Shell modifier to the plane and set the Outer Amount to a low value. In this example, the Outer Amount is set to 2m.

The Shell modifier is applied to give the geometry thickness. This allows Phoenix to properly calculate the volume of the object that you're using for the emission.

We later limit the emission to only happen where the faces point in the +Z axis (in other words, the top of the shelled plane).

 


 

As we don't need this plane to be rendered in the final image - select the plane, mouse right-click and go to its Object Properties menu and disable Renderable.

 


 

To save time, we start with the Large Scale Smoke preset on the Phoenix Toolbar.

Select the shelled poly plane and Left-Mouse-Button click the Large Scale Smoke preset. This will automatically generate a Phoenix Source and Simulator, and will set up some Smoke rendering parameters for you. We will review those later when we're finished with the simulation.

 


 

Select the Phoenix Source and disable Temperature.

Animate the Outgoing Velocity such that it goes from [2000 at frame 0] to [0 at frame 20].

 


 

With the Phoenix Source still selected, click the map button to the right of the Mask parameter for Outgoing Velocity.

Select a Gradient Ramp as a mask. Set its Type to Radial - this produces a circular texture ideal for the base of the cloud. Set the Interpolation to Ease Out.

Set the Tiling to U: 0.9 and V: 1.0.

The Gradient Ramp is tweaked such that:

  • the first point has Pos=0 and RGB (255, 255, 255);
  • the second point has Pos=45 and RGB (68, 68, 68);
  • the third point has Pos=94 and RGB (0, 0, 0);
  • the last point has Pos=100 and RGB (0, 0, 0).

Set the Noise parameters as shown in the screenshot. This will give you a randomized texture suitable for representing the shape of the cloud.

The Noise type is set to Turbulence.

Amount is set to 1.

Size is set to 5.

Phase is set to 880.

Levels is set to 10.

Changes to the Noise parameters will influence the cloud a lot so you may want to experiment with different settings once you've completed this tutorial.

 


 

Click the "+" icon under Outgoing Velocity to add a Discharge Modifier to the Phoenix Source. Discharge modifiers are a convenient way to control the strength of the emitter based on the position or orientation of your source object.

As mentioned earlier, only the top face of the shelled poly plane should be emitting smoke. Therefore, we set the Modify Outgoing Velocity by option to Normal Z, and the Space to World.

The Diagram is tweaked such that the left point is at [-0.9, 0] and the right point is at [1, 1].

This means that only the faces which are nearly horizontal will be used for emission. For more information on Discharge Modifiers, please check the Phoenix Discharge Modifiers documentation.

 


 

Right-Mouse-Button click the shelled poly plane and disable Solid Object from the Phoenix Properties.

Solid objects affect the calculation of velocity in the container by blocking the motion of fluids. In this case, the result would be better with the Solid option disabled.

To see the Gradient Ramp texture in the viewport → open the Material Editor and create a V-Ray material and add the Gradient Ramp texture in its Defuse slot. Then, assign material to the plane.

 

Phoenix Simulator Setup


At the moment, the simulator box is far too large for our needs. In this setup, calculating the excess voxels is unnecessary and will only slow things down. Note that for some fire/smoke simulations it's good to keep a buffer of empty space around the simulated effect because the velocity simulation which drives the fire/smoke needs some additional space to unfold in a realistic way close to how nature works.

We also want the Simulator to expand up in the +Z direction to accommodate the shape of the cloud.

Select the Phoenix Simulator and open the Grid rollout.

Set the Scene Scale to 0.004m. Because clouds are extremely large (a few kilometers in size) and moving very slowly, it would take prohibitively long to try to mimic the way the real world works. Instead, we reduce the time span to a very short period of time (25 frames) and adjust the Scene Scale accordingly.

Reduce the Voxel Size to 4m. The Voxel Size is the main "quality" control for the simulation - the lower this value is, the more detailed the result and the longer the simulation time.

Reduce the X/Y/Z size such that the Simulator tightly encompasses the shelled poly plane - as shown in the image.

Enable Limit Maximum Expansion and give the Grid some extra voxels in all directions except for negative Z - we don't need the Grid expanding down as that may ruin the shape of the cloud.

 


 



 

From the Dynamics rollout, set the Smoke Dissipation to 0.05. This will allow some of the smoke forming the cloud to slowly disappear, leaving behind interesting, swirly detail. The difference between a value of 0 and 0.05 is hard to notice so set this parameter as you see fit.

The Smoke Buoyancy should be set to 1. Buoyancy makes the fluid move upward, as if its pushed by a force from underneath. If you set this parameter to a negative value, the smoke will travel downward.

Set the Randomize Amount to 0.4. The Randomize options add random fluctuations in the fluid's velocity for each grid voxel. This should chip away at the cloud's volume, producing interesting perturbations.

The Fluidity (Conservation) Method is set to PCG Symmetric, with a Quality of 100. The PCG Symmetric method, in general, produces the most interesting smoke simulations, preserving both detail and symmetry. The high Conservation Quality will allow the smoke to produce swirling motion. For in-depth information, please check the Conservation documentation.

The Transfer (Advection) Method is set to Multi-Pass. This less dissipative method produces more fine details and keeps the smoke sharper compared to other methods. It is recommended for large scale explosions, veil-like smoke, pyroclastic flows and all other situations where sharpness is important.

Increase the Steps Per Frame to 9. In this case it helps to get a better shape for our cloud. For fast-moving simulations, you need to raise the Steps Per Frame so that you do not have a grainy appearance. As each simulated step removes details and also slows the simulation down, you shouldn't set the Steps Per Frame higher than you need to and should increase it only if you see the smoke or fire become grainy when moving fast. On the flip side, the contents of the advected channel are more accurately transferred throughout the grid with higher Steps Per Frame and the simulation moves more realistically.



 






 

 



 

 

 


 

If you would like to be able to re-time the simulation once it is complete, open the Output rollout and enable the export of the Velocity Grid Channel.

The Velocity channel is required by the more sophisticated Precise Tracing re-timing algorithm under the Input rollout. It is also required when rendering a simulation with Motion Blur.

 


 

We should now be ready with the simulation options.

At this stage, we don't have to simulate the full length of the animation. We only need the first 25 Frames, so set the Simulation rollout → Stop Frame to 25.

Press Start and let the simulation run for 25 Frames.

Phoenix provides a very high-quality viewport GPU Preview. Open the Preview rollout of the Simulator and select Enable In Viewport under the GPU Preview options.

Set the Ambient Light color to RGB (13, 11, 27) to get the cloud tinted in blue in the Viewport. Note that this setting has no effect on the rendering.

 


 

Once the simulation is complete, you may re-time it from the Phoenix Simulator → Input rollout.

Set the Frame Blending method to Precise Tracing and tweak the Play Speed as needed.

In case you would prefer to render a single static frame of the simulation over an entire sequence, set the Mode option to Cache Index, and the Direct Cache Index parameter to the desired cache file number.

For this tutorial, we do not tweak any of the Input rollout settings.

 

Lighting and Camera


As this is an outdoor scene, a V-Ray Sun/Sky Setup should suffice.

The ground albedo parameter of the Sky Texture is set to white so the rendered ground looks better.

Optionally, you can link the Sun light to the Sky for physically accurate lighting by enabling the Specify sun node option on the V-Ray Sky texture. Then, create the link by simply Left-Mouse-Button clicking on the button next to the Sun Light parameter and selecting the V-Ray Sun.

 


 

Select the Sun and set the Intensity multiplier to 0.25 and the Horizon offset to 40.

The exact position of the V-Ray Sun is [200, -2700, 1000] and of the Sun Target is [0, 0, 215].

 


 

A V-Ray Physical Camera is used for rendering.

The Film Speed (ISO) is set to 100.

F-Number is set to 8 and the Shutter Speed to 200.

 

Here are the Translation values for the camera, in case you'd like your scene to be 100% identical to the setup in the screenshots:

V-Ray Physical Camera: [-315, -2295, 215];

V-Ray Physical Camera Target: [0, 0, 275].

 

Volumetric Rendering Settings


As you may have noticed, the cloud looks rather sparse. The Rendering options set up by the Large Scale Smoke preset we used as a starting point are tuned in a way that looks dense when the simulation quickly grows several times larger than the initial grid. However, since our cloud simulation mainly remains inside the initial grid, we need to change the render settings so that the smoke appears denser.

First of all, change the Sampler Type to Spherical. The Sampler Type parameter controls how individual voxels in the grid are interpolated. For instance, the Box type displays the cells as cubes and there is no blending between neighboring voxels. The Spherical type uses special weight-based sampling for the smoothest looking fluid and allows you to zoom in close to the grid without worrying about grid lines and voxels appearing in the render.

 


 

Head over to the Rendering rollout of the Simulator and click the Volumetric Options button. The window that pops up contains the majority of the volumetric shading parameters for Fire/Smoke simulations. You can think of it as a material/shader built into the Simulator.

Open the Smoke Opacity rollout and set the Based on parameter to Simple Smoke. The cloud should now appear denser.

Increase the Simple Smoke Opacity to 0.5.

The difference between the Smoke and Simple Smoke options is that the former provides you with an Opacity curve that you can edit. The Opacity Diagram is used to remap the Smoke channel - the X-axis is the input values from the simulation, and the Y-axis is the opacity output. It allows you to assign different opacity to the different densities of the Smoke. For instance, if you wanted to hide all the smoke that has a density of less than 0.5, you would move the left point of the graph to position [0.5, 0]. Simple Smoke mode is a simplified version of the Smoke mode where the Opacity Diagram is hidden and all you need to do is to adjust the Simple Smoke Opacity value which makes the smoke render thicker or thinner.

Disable Scale Opacity by Scene Units. When enabled, the opacity per unit length will remain constant when changing the Grid Resolution. Therefore, the larger the unit scale is, the denser the smoke will appear in renders and vice versa.

 


 

 


 

Open the Smoke Color rollout and make sure that the Based on parameter is set to Constant Color.

Set the Constant Color to RGB: (255, 255, 255).

Set the Scattering mode to Ray-traced (GI only). Ray-traced scattering can only be rendered with Global Illumination enabled so make sure to turn it on from the V-Ray Render settings (should be On by default). Ray-traced scattering tends to be slower than the Approximation methods which, as the name implies, try to speed up rendering by approximating with lower accuracy the appearance of light scattering in a volume. Ray-traced scattering, on the other hand, produces physically accurate scattering and the result tends to look better.

Keep the Volume Light Cache enabled and set the Light Cache Speedup to 0.5. The higher this option is set, the faster the rendering will be, but the lower the quality of the Volume Light Cache. You can increase this parameter and gain render speed as long as you don't start getting artifacts on the smoke.

To further enhance the realism of the clouds, let's adjust the Phase Function of the Simulator. Set the Phase Function to 0.3.

The Phase Function controls the direction in which the light scatters inside the volume. The default value of 0 means isotropic scattering where light is scattered in all directions. A positive value means forward scattering, while a negative value means backscattering.

For more information about the Phase Function option, visit the Render Smoke Opacity page.

Note that values very close to 1.0 or -1.0 produce very directional scattering that is invisible from most angles, so such values are not recommended. When rendering with a Phase Function different than 0 and Volume Light Cache is enabled, the rendered result is brighter. The Phase Function is ignored when the Scattering is set to Approximate or Approximate+Shadows.

 

Render Settings


In the Render Setup tab:

The Image sampler Type is set to Bucket.

The Max subdivs are set to 4.

The Bucket width is set to 16.

 

In the GI tab → Enable GI.

 

V-Ray Frame Buffer


Open the V-Ray Frame Buffer and use the Create Layer icon ( )to add layers for White Balance, Constant, and Exposure.

 


 

The final image is rendered using the V-Ray Frame Buffer. In the current example, the color corrections and post effects are set to:

White Balance:

  • Temperature: 4555

Constant:

  • Multiplier: 1.150

Exposure:

  • Exposure: 1.200
  • Highlight Burn: 1.000
  • Contrast: 0.000

Denoiser:

  • Opacity: 1.000
  • Preset: Default

 Feel free to use other values for the post effects, depending on your preferences.

Alternatively, you can load up a Rendering Preset from the Phoenix_Static_Clouds.vfbl file that is provided in the sample scene.

 


 

And here is the final rendered result.

Table of Contents