Versions Compared

Key

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


This page provides a tutorial on creating a cloudscape with Phoenix for 3ds Max and Chaos Scatter.

Overview


UI Text Box
typeinfo

This advanced tutorial guides you through the creation of daytime and night-time cloudscapes using Chaos Phoenix. It's recommended that you have at least basic knowledge in lighting, materials, and particle effects in 3ds Max.

Section
Column
width40%

This setup requires Phoenix 5.20.00, V-Ray 6 for 3ds Max 2019 and Chaos Scatter 2.5 or newer. You can download official Phoenix and V-Ray builds 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.

This tutorial shows how to create a cloudscape that changes from a sunny day to a stormy night. We'll start by creating various cloud types, such as cumulus, anvil, and stratus. Then we will load them into multiple VRayVolumeGrids, integrated into a single scene. We will manually place a few hero clouds in the shot and then use Chaos Scatter to scatter some generic cloud assets over the region. Once we finish the cloudscape for the daytime scene, we will utilize PFlow to strike lightning from the clouds, for the stormy night scene.

For realistic cloud shading, we will tweak the value of the Phase Function of the simulators.

At the end of the tutorial, we will color-correct the image with the V-Ray Frame Buffer, and we will make the shots more cinematic by using V-Ray Light Mix. This allows us to adjust the key-to-fill light ratio without rendering the image again.

The final video is a mix of the daytime and night-time shots with a transition composite.

The Download button provides an archive of the scene files.

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

Column
width5%


Column
width55%
Section
Column
width40%


Column
width5%

Column
width55%


HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/Kn3rx-NgN58?autoplay=1&playlist=Kn3rx-NgN58&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Workflow



Section
Column
width40%

This is an extensive tutorial, which might be overwhelming at first glance. To make it easier to follow, we have created a workflow diagram that illustrates how the article is structured. The tutorial is divided into three major stages:

  1. Asset creation: In this phase, we generate various cloud assets using Phoenix Fire/Smoke Simulators. This includes hero clouds such as Cumulus_A, Cumulus_B, and Anvil_Cloud. We also generate some generic clouds that will be scattered in the scene using Chaos Scatter in the next stage. These cloud assets are saved as *.aur cache files.

  2. Scene assembly: Once clouds of all types are ready, we load the *.aur files into one scene (cloudscape_daytime_start.max) using VrayVolumeGrid. First, we position our hero clouds and then fill the background and foreground with the generic clouds using Chaos Scatter. Finally, we create a VrayVolumeGrid for the environmental fog. We then render out the sequence for the daylight cloudscape.
  3. Lighting and particle effects: Next, we add some lighting effects using PFlow. We adjust the lighting conditions by adding some Omni lights and tweaking the Light Mix. We then render out the sequence as a stormy night.
UI Text Box
typetip

To save time, you can download all the cloud assets from the Phoenix Cloud Assets page and start from the assembly part of this tutorial.

Column
width5%

Column
width55%

Units Setup


Section
Column
width40%

Scale is crucial for the behavior of any simulation. Large-scale simulations appear to move slower, while medium and small-scale simulations display lots of vigorous movement. When you create your Simulators, have a look at the Grid rollout where the real-world size of the Simulator is shown. If it 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.

Since the height of a cumulus cloud is approximately 1000 meters, we have set the Scene Scale to Metric Meters.

Fancy Bullets
typecircle
  • Go to Customize > Units Setup and set the Display Unit Scale to Metric Meters
  • Set the System Units to 1 Unit = 1 Meter
Column
width5%

Column
width55%

Anchor
assembly
assembly
Layout for the Final Assembly Scene


Section
Column
width40%

The final scene contains a total of seven VrayVolumeGrids, each loaded with an *.aur file for a specific type of cloud: Cumulus_A, Cumulus_B, Anvil_cloud, Cloud_for_scatter_near, and Cloud_for_scatter_far. Each VrayVolumeGrid has a different smoke color for easy identification. We have also added an extra VrayVolumeGrid for the environmental fog.

UI Text Box
typenote

Note that we load the *.aur file into VrayVolumeGrid instead of a Phoenix Fire/Smoke Simulator. This way, the file can be used by V-Ray users who don't have Phoenix installed but still want to use the cloud assets in their project.

UI Text Box
typewarning

Although you can use the Phoenix Fire/Smoke Simulator to load the *.aur files, it is not recommended to mix V-Ray Volume Grid nodes and Phoenix Fire/Smoke Simulators in the same scene.
You should use only either Phoenix Simulators or V-Ray Volume Grids, otherwise the volumes might not blend properly.

Column
width5%


Column
width55%




Section
Column
width40%

The final assembly scene contains the following elements:

  1. VRayCam for rendering. The camera is tilted and animated as if we are on an airplane that is flying up.
  2. V-Ray Sun & Sky setup is used for the daytime scene lighting.
  3. Omni_Cumulus_A, Omni_Cumulus_B, and Omni_Anvil are for the stormy night scene. All of these Omni lights are animated to mimic a lightning effect.
  4. Two Chaos Scatter objects are used: one scatters the high-resolution Cloud_for_scatter_near in the foreground, and the other scatters the lower-resolution Cloud_for_scatter_far in the background.
  5. Line_Areas_Near and Line_Distribute_Near splines are used to define the region that Chaos Scatter_Near uses to scatter clouds. Line_Distribute_Far splines are used to define the region that Chaos Scatter_Far uses to scatter clouds.
  6. Two Particle Flows are used for the night-time lightning: PF Source 001 is positioned within Anvil_cloud, while PF Source 002 is placed inside Cumulus_A. Both emit particles using Lightning_branch as shape instances.
  7. PCloud_Stars is used to create a background of stars.
UI Text Box
typeinfo

For the day scene, we activate the Sun & Sky system and deactivate all the Omni lights.
For the night scene, we deactivate the Sun & Sky system and enable all the Omni lights. We also enable the PCloud in the background with two PFlow instances to produce lightning effects.

Additionally, as the lightning particles have a VRayLight material applied to them, they also have an illuminating effect.

Column
width5%


Column
width55%




Section
Column
width40%

Here are more details about the PFlow setup. As you can see, the particle system uses Group_Lightning as a Shape Instance. Both have VRayLightMtl applied, so their particles illuminate the scene.

UI Text Box
typeinfo

Although these lighting meshes are static and do not have any growing animation, they are sufficient for the intended result.

Column
width5%


Column
width55%

Scene Setup


Section
Column
width40%

Click on the Time Configuration icon ( ) and set the Animation Length to 90, so that the Time Slider goes from 0 to 90.

Column
width5%

Column
width55%

UI Text Box
typetip

This tutorial covers a range of steps for working with two different lighting scenarios. However, our focus here is on the specific steps related to working with Phoenix. You're welcome to use the camera and light settings provided in the sample scene.

If you would like to recreate these settings on your own, we've included the camera and light settings of the final renders below, for your reference.


Expand
titleClick here to see the Camera and Light Settings...


Camera Settings




Section
Column
width40%

From Create Panel → Cameras V-Ray, select the VRayPhysicalCamera and add it to the scene.

Fancy Bullets
typecircle
  • The exact position of the Camera is XYZ:[1360.0, -3380.0, 768.0 ]
  • The exact position of the Camera Target is XYZ:[ 1590.0, -120.0, 686.0 ]
  • In the Aperture rollout:

Film speed is set to 100.0
F-Number is set to 8.0
Shutter Speed is set to 2000

  • In the Color & Exposure rollout, White Balance is set to Daylight
Column
width5%


Column
width55%

Lighting for daytime



Section
Column
width40%

From the Create Panel go to Lights V-Ray VRaySun and create a VRaySun in the scene.

Fancy Bullets
typecircle
  • The exact position of the VRaySun is set to XYZ:[ -7741.0, 6704.0, 4336.0]
  • The exact position of the VRaySun Target is set to XYZ:[0.0, 0.0, 0.0 ]
  • Set the Filter color to RGB(255, 227, 192)

Leave all other settings at their default values

UI Text Box
typeinfo

The VRaySun's color was initially set to RGB(255, 255, 255), but it was later adjusted to RGB(255, 227, 192) using the To Scene feature with LightMix.

Column
width5%


Column
width55%

Lighting for stormy night



Section
Column
width40%

From the Create Panel, go to LightsStandardOmni and create three Omni lights in the scene. Rename them to Omini_Cumulus_A, Omini_Cumulus_B and Omni_Anvil, respectively.

Ensure accurate placement by positioning Omini_Cumulus_A inside Cumulus_A, Omini_Cumulus_B inside Cumulus_B, and Omni_Anvil inside Anvil_Cloud.

Fancy Bullets
typecircle
  • For Omini_Cumulus_A, set its exact position to XYZ:[331.0, 175.0,308.0]. Adjust its Far Attenuation to Start at 304.0m and End at 749.0m. Control its Multiplier using a Noise Controller.
  • For Omini_Cumulus_B, set its exact position to XYZ:[181.0, -578.0, 105.0]. Adjust its Far Attenuation to Start at 213.0m and End at 389.0m. Animate its Multiplier using keyframes.
  • For Omni_Anvil, set its exact position to XYZ:[3002.0, 4488.0, 766.0]. Adjust its Far Attenuation to Start at 253.0m and End at 937.0m. Control its Multiplier using a Noise Controller.
  • Set the color of all Omni lights to RGB(150, 191, 255).
Column
width5%


Column
width55%




Section
Column
width40%

To mimic the blinking lightning, both Omni_Cumulus_A and Omni_Anvil have a Noise Controller applied to their Multiplier.

Fancy Bullets
typecircle

Adjust the following settings in the Noise Controller for Omni_Anvil:

  • Set the Seed to 4
  • Set the Strength to 21
  • Set the Frequency to 0.01
  • Enable the Fractal Noise option

Adjust the following settings in the Noise Controller for Omni_Cumulus_A:

  • Set the Seed to 0
  • Set the Strength to 21
  • Set the Frequency to 0.01
  • Enable the Fractal Noise option
Column
width5%


Column
width55%




Section
Column
width40%

The Multiplier for Omni_Cumulus_B is animated manually using keyframes. Please refer to the screenshot for the specific frames and values.

Column
width5%


Column
width55%

Anatomy of the Cloudscape


Section
Column
width40%

In the daytime scene, the middle ground is populated with highly-detailed cumulus and anvil clouds. Additionally, there are foggy clouds scattered in the distance, and some generic clouds scattered in the foreground. The stratus clouds intersect with these various types of clouds. The cloud shading is noteworthy, with beautiful and realistic forward scattering in its volumetric shading.

Column
width5%

Column
width55%




Section
Column
width40%

In the stormy night scene, the environment is foggier than during the daytime. Lights illuminate the large cumulus and anvil clouds. Lightning can be observed discharging from the clouds and flashing across the cloudscape.

Column
width5%

Column
width55%

Types of Clouds


Section
Column
width40%

Instead of scattering the same type of clouds throughout the sky, we are going to create three different types of clouds. This will enhance the realism of the cloudscape. We will create each of these assets in separate 3ds Max scenes and then assemble them in another dedicated scene.

The types of clouds we are going to create are cumulus, cumulonimbus (also known as anvil clouds), and stratus. Each of them looks different and is generated using a different method.

Column
width5%

Column
width55%


Cumulus

Anvil

Stratus

Morphology

Have flat bases and are often described as "puffy" in appearance

Cumulonimbus cloud that has reached stratospheric stability and has formed a characteristic flat, anvil-top shape.

Characterized by horizontal layering with a uniform base, as opposed to cumuliform clouds

Emitted from

Plane with a Shell Modifier

Plane with a Shell Modifier

Sphere

Source Emit mode

Surface Force

Surface Force

Volume Brush

Forces or other manipulationPlain Force and PHXTurbulencePlain Force, PHXTurbulence and Voxel Turner
ExamplesCumulus_A, Cumulus_B, Cloud_for_scatter_near, and Cloud_for_scatter_farAnvil_cloudStratus_top and Stratus_bottom


Anchor
assetCreation
assetCreation
Asset Creation


Creating the Cumulus_A cloud


Section
Column
width40%

Let's start creating assets for the scene, beginning with the main cumulus cloud - the Cumulus_A.

Please open the provided Cumulus_A_start.max scene file. To save you some time, we have prepared three planes in the scene, each with the Shell, Edit Poly, and Noise modifiers applied, needed to break up the emitted smoke and make the clouds more diverse and asymmetric.

UI Text Box
typetip

We positioned these planes with some overlap between them. Each plane has a different size, to generate more interesting fluid results when we use them as emitter nodes. This allows the resulting cloud to look differently from all sides. If the cloud is scattered with Chaos Scatter, for instance, and if random rotation is assigned to each scattered cloud, you won't see obvious repetition or patterns.

UI Text Box
typenote

In this section, we are going to create four cumulus cloud assets: Cumulus_A, Cumulus_B, Cloud_for_scatter_far, and Cloud_for_scatter_near. Since they are the same type of cloud and essentially share the same settings, to shorten the tutorial, we will only explain the procedure for making Cumulus_A. For the other cumulus clouds, we will skip through some of the steps and show the final setup.

Column
width5%

Column
width55%




Section
Column
width40%

For example, we applied Shell, Edit Poly and Noise Modifiers to Plane002. While in Edit Poly mode, we select the top face of the geometry (marked in red), and set its face ID to 1. We set the face ID of the rest of the faces to 2.

UI Text Box
typenote

The Phoenix Source in 3ds Max has the ability to use Polygon IDs as a 'mask' to selectively emit fluid only from faces with a given ID. In a later stage of the process, we will set the Polygon ID parameter to 1, ensuring that the Source emits solely from the polygons with an ID of 1.

Column
width5%

Column
width55%




Section
Column
width40%

This table shows the details of the three plane geometries with various modifier settings.

UI Text Box
typetip

Feel free to tweak these settings to customize your cumulus cloud. You can adjust its size, position, or add stronger noise to the modifier. Changing these settings can lead to many opportunities for cloud variations after simulation.

Column
width5%

Column
width55%


Plane001

Plane002

Plane003

Size

1000X1000

800X800

600X600

Position

-125, 117, 0.0

300, -140, 0.0

-290, -300, 0.0

Rotation

0, 0, -30

0, 0, 30

0, 0, -20

Shell Modifier

Inner Amount

8.0

8.0

8.0

Noise Modifier Strength

400, 400, 50

150, 150, 30

100, 100, 30

Noise Modifier Animate phase

(The value of the phase is enclosed in parentheses.)

frame 0(0)~frame30(10)

frame 0(0)~frame30(30)

frame 0(0)~frame30(30)


Fire/Smoke Simulation for Cumulus_A


Section
Column
width40%

Let's create a simulator now. Go to Create Panel > Create > Geometry > PhoenixFD > FireSmokeSim. Rename the simulator to PhoenixFDFire_Cumulus_A.

The exact position of the Phoenix Simulator in the scene is XYZ: [0.0, 0.0, -40.0].

Open the Grid rollout and set the following values:

Fancy Bullets
typecircle
  • Voxel Size: 4.6 m
  • Size XYZ: [316.0, 225.0, 24.0]
  • Expand the Container Walls, so that they match the sizes of the Grid's X, Y and Z parameters
  • Set Adaptive Grid to Smoke. The Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand
  • Set the Threshold to 0.02. This allows the simulator to expand when the Voxels near the walls of the simulation bounding box reach a Smoke value of 0.02 or greater
  • Enable Limit Maximum Expansion and set its parameters accordingly:

X: (154, 154)

Y: (154, 154)

Z: (0, 417)

This saves memory and simulation time by limiting the Maximum Size of the simulation grid.

UI Text Box
typenote

Renaming your simulator is essential, as the node name is also included in the names of the simulated cache files. With appropriate naming, you can easily organize different types of cloud assets in one location. This makes its easier to manage and access the assets in the future.

Column
width5%

Column
width55%

Output Settings


Section
Column
width40%

Select the Output rollout and enable the output of the Grid Smoke and Grid Velocity channels. We don't need the Temperature channel as we won't render fire.

Any channel used after the simulation is done, needs to be cached to disk. Such as:

Fancy Bullets
typecircle
  • Velocity, which is required at render time for Motion Blur
  • Wavelet, which is used for Wavelet Turbulence when performing a Resimulation
UI Text Box
typenote

All the simulators in this tutorial utilize identical Output Settings. Keep in mind that this is the only time they will be mentioned in the tutorial, but the same settings need to be applied to all simulators in the scene.

Column
width5%


Column
width55%

Creating and Animating the Phoenix Fire/Smoke Sources in the Scene


Section
Column
width40%

Go to Create Panel > Create > Helpers > PhoenixFD > PHXSource. Rename it to PHXSource_Cumulus_A_001.

Press the Add button and select the Plane001 geometry from the viewport or from the Scene Explorer.

Column
width5%

Column
width55%




Section
Column
width40%

Set up the PHXSource_Cumulus_A_001's properties:

Fancy Bullets
typecircle
  • Set the Emit Mode to Surface Force

  • Disable the Temperature

  • Set the Smoke to 2.0

  • Set the Outgoing Velocity's Mask type to Texmap
  • Set the Polygon ID to 1. This limits the emission only to faces with an ID of 1

Create a Gradient Ramp:

  • Plug the map into the Outgoing Velocity's Texmap slot
  • Rename it to Gradient_Cumulus
  • Set the Gradient Type to Radial. This produces a circular texture ideal for the base of the cloud
  • Set the Noise parameters:

Set the Noise Amount to 1.0
Set the Size to 5.0
Set the Noise type to Turbulence

  • Add 2 extra flags to the gradient bar, so that there are a total of 4
  • Set the Interpolation to Ease Out
  • Edit the positions of the four flags on the gradient ramp using the table

Flag

Position

RGB

Interpolation

1

0

255,255,255

Ease In

2

29

68,68,68

Ease In

3

60

5,5,5

Ease In

4

100

0,0,0

Ease In

Table of four flags on the gradient bar of the Gradient_Cumulus . Left (start point) to right (end point).

Changing the Noise parameters greatly influences the simulated cloud. It is recommended that you experiment with different settings once you've completed this tutorial. If you want to recreate the same result as shown here, follow the instructions exactly.

Column
width5%


Column
width55%

Animate the PHXSource_Cumulus_A_001's Outgoing Velocity



Section
Column
width40%
Fancy Bullets
typecircle
  • Go to Graph Editors > Track View - Curve Editor
  • Set keyframes for the Outgoing Velocity, so it can change over time. Each frame and value is shown in the screenshot and the table



Frame

Value

Tangent type

0

150000.0

Slow

20

0.0

Fast

Keyframes for the FIre/Smoke Source's Outgoing Velocity

Column
width5%


Column
width55%

Set up Two More Sources for Cumulus_A



Section
Column
width40%

Repeat the same procedure for adding two more Phoenix Sources in the scene. Rename them to PHXSource_Cumulus_A_002 and PHXSource_Cumulus_A_003, respectively. Add Plane002 to the emitter nodes in PHXSource_Cumulus_A_002 and add Plane003 to PHXSource_Cumulus_A_003's emitter nodes.

Use the table to adjust the Outgoing Velocity of the Phoenix Sources.

Column
width5%

Column
width55%


PHXSource_Cumulus_A_01

PHXSource_Cumulus_A_02

PHXSource_Cumulus_A_03

Emitter Nodes

Plane001

Plane002

Plane003

Outgoing Velocity at Frame 0

(Tangent type to Slow)

150000.0


15000.0

40000.0

Outgoing Velocity at Frame 20

(Tangent type to Fast)

0.0

0.0

0.0

Initial Simulation for the Cumulus_A


Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Cumulus_A Simulator. We only need to simulate 10 frames, so set the Stop Frame to 10. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

This is a voxel preview of the current animation. The cloud appears too short.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/GxlVSA9gwNY?autoplay=1&playlist=GxlVSA9gwNY&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Increase Steps Per Frame



Section
Column
width40%

In the Dynamics rollout of the simulator, increase the Steps Per Frame to 10. Run the simulation again. The Source emits fluid with very high velocity, so more Steps Per Frame are needed to capture it better.

Column
width5%


Column
width55%




Section
Column
width40%

This is the voxel preview of the current animation. As you can see, the height of the cloud has increased significantly.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/nhiY9Rka-y0?autoplay=1&playlist=nhiY9Rka-y0&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Switch to the PCG Solver


Section
Column
width40%

Select the PhoenixFDFire_Cumulus_A Simulator and in the Dynamics rollout change the Fluidity Method to PCG Symmetric, with a Quality of 100. Run the simulation again.

UI Text Box
typeinfo

The PCG Symmetric option is the best method for smoke or explosions in general, preserving both detail and symmetry. The high Conservation Quality allows the smoke to swirl better. For more information, visit the Conservation documentation.

Column
width5%


Column
width55%




Section
Column
width40%

This voxel preview shows the current animation.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/olhX_nEVQXs?autoplay=1&playlist=olhX_nEVQXs&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Delete Faces of Plane001



Section
Column
width40%

To define the shape of the cloud more, let's edit the model of Plane001. First, select Plane001 and go to the Modifier panel. Then, add an Edit Poly Modifier and navigate to the Selection rollout. Click on the Polygon button, and then use the Ribbon's By Random option to randomly delete 30% of the faces.

After deleting, assign a Polygon ID of 1 to the top faces, and set an ID of 2 for the rest of the faces. Finally, run the simulation again to see the updated cloud shape.

UI Text Box
typetip

In this case, deleting some faces of Plane001 creates a more defined shape and enhances the visibility of the puffs in the cloud morphology, as it prevents them from clumping together.

Deleting some faces also allows for cloud variations. By deleting different faces, you can achieve different appearances of the clouds.

Column
width5%

Column
width55%




Section
Column
width40%

This voxel preview shows the current animation. Now we see a more defined shape of a cumulus cloud.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/tbEiSh8eKkM?autoplay=1&playlist=tbEiSh8eKkM&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Introduce Noise



Section
Column
width40%

To create a more natural-looking cloud, we can add some noise to the simulation. To achieve this, let's increase the Noise value for the Outgoing Velocity to 3.0 for all three PHXSources in the scene.

Column
width5%

Column
width55%




Section
Column
width40%

Additionally, select PhoenixFDFire_Cumulus_A and navigate to the Dynamics rollout to increase the Randomize Amount to 0.2.

Run the simulation again.

Column
width5%

Column
width55%




Section
Column
width40%

This voxel preview shows the current animation. Now we have a more organic-looking cloud.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/wZo0r_AKdoY?autoplay=1&playlist=wZo0r_AKdoY&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Adding Phoenix Turbulence


Section
Column
width40%

To bring more realism to the cloud, let's add some forces to the scene. Go to the Create panel > Helpers > PhoenixFD and click on PHXTurbulence. Create a Phoenix Turbulence in the scene.

Fancy Bullets
typecircle
  • Set the position to XYZ: [-850.0, -872.0, 1200.0]
  • Set the Strength to 1500.0
  • Set the Size to 100.0m. Keep in mind that the Simulator's width exceeds 1000m in both X and Y directions, so this would create curls that are about 10% of the simulator size.
  • Set the Fractal Depth to 3.0
  • Reduce the Rate of Change to 0.2
Column
width5%


Column
width55%

Adding Plain Force


Section
Column
width40%

Then we add a Phoenix Plain Force, a simple directional force in the scene. Go to Create panel > Helpers > PhoenixFD and add a Phoenix Plain Force in the scene.

Fancy Bullets
typecircle

Set the following parameters:

  • The exact position of the Plain Force in the scene is XYZ: [126.0, -1500.0, 560.0]

  • Rotate the Plain Force to XYZ: [-90.0, 0.0, 0.0]. Set its Strength to 200.0m

  • Set the Drag to 0.1

  • Enable the Apply Force Behind Icon option

Column
width5%


Column
width55%

Final Simulation of the Cumulus_A


Section
Column
width40%

Now we are ready for the final simulation. Let's increase the grid resolution of the simulator. Make the following changes:

Fancy Bullets
typecircle
  • Voxel Size: 2.95 m
  • Size XYZ: [493, 398, 37 ]

With the new grid resolution and forces in the scene, click on Start to run the final simulation for Cumulus_A.

Column
width5%


Column
width55%




Section
Column
width40%

This voxel preview shows the final animation.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/IJ2rmgTkl4k?autoplay=1&playlist=IJ2rmgTkl4k&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>




Section
Column
width40%

Run a test render of frame 10 with the default volumetric settings. This helps assess what changes are needed to improve the look of the simulation.

Column
width5%


Column
width55%

Improve the Volumetric Settings



Section
Column
width40%

Select thePhoenixFDFire_Cumulus_A Simulator and go to its Volumetric Render Settings.

Fancy Bullets
typecircle
  • Set the Fire Based on option to Disabled - we won't need any fire in this scene.
  • Change the Smoke Color to pure white of RGB (255, 255, 255). This allows for the strongest light scattering inside the cloud.
  • Set the Scattering to Ray-tracing (GI only) - this mode uses physically accurate scattering of light rays and produces the most realistic results. However, It is slower to render.
  • Set the Smoke Opacity's Based on option to Smoke.
  • Adjust the curve for the smoke to match the screenshot.

Increasing the value for Light Cache Speedup speeds up the render, but it also lowers the quality of the Volume Light Cache. If dark cubic grid artifacts start forming on the smoke, the parameter is set too high. For more information, visit the Volumetric Rendering In-Depth page.

In this case set the Volume Light Cache to disabled as it will produce cleaner render result.

Fancy Bullets
typecircle
  • In the Rendering rollout, set the Sampler Type to Spherical. The Sampler Type determines the blending method between adjacent grid voxels and is used to balance between render speed and quality. In this case the Spherical sampler gives us the highest-quality result.

Column
width5%


Column
width55%




Section
Column
width40%

Alternatively, you can load up a render preset from the Cloud_render_preset.tpr file, that is provided in the sample scene.

Column
width5%

Column
width55%




Section
Column
width40%

With the new volumetric settings , run a test render of frame 10. This is the asset for Cumulus_A.

Column
width5%


Column
width55%

Creating the Cumulus_B Cloud



Section
Column
width40%

There's already one cumulus cloud in the scene. Now we will create another variant for the same type. You can open the scene "Cumulus_B_final.max" and save time, as we have already prepared all the required elements and configured the settings there. It is essentially similar to Cumulus_A.

Column
width5%

Column
width55%




Section
Column
width40%

This table shows the details for all three plane geometries in the scene.

UI Text Box
typenote

Similar to the setup in Cumulus_A, Plane001 here also has 30% of its faces removed.

Column
width5%

Column
width55%


Plane001

Plane002

Plane003

Size

1000X1000

800X800

600X600

Position

249, -14, 0.0

485, -296, 0.0

-56, 28.0, 0.0

Rotation

0, 0, -30

0, 0, -5

0, 0, -20

Shell Modifier

Inner Amount

8.0

8.0

8.0

Noise Modifier Strength

400, 400, 50

150, 150, 30

100, 100, 30

Noise Modifier Animate phase

(The value of the phase is enclosed in parentheses.)

frame0 (0)~frame30(10)

frame0 (0)~frame30(30)

frame0 (0)~frame30(30)




Section
Column
width40%

This table shows all the settings for the three PHXSouces in the scene.

UI Text Box
typeinfo

The gradient map that we utilized to mask the Outgoing Velocity is identical to the one used in Cumulus_A.

Column
width5%

Column
width55%


PHXSource_Cumulus_B_01

PHXSource_Cumulus_B_02

PHXSource_Cumulus_B_03

Emitter Nodes

Plane001

Plane002

Plane003

Mask for Outgoing VelocityGradient_CumulusGradient_Cumulus
Gradient_Cumulus
Noise for Outgoing Velocity3.03.03.0

Outgoing Velocity at Frame 0

150000.0


15000.0

40000.0

Outgoing Velocity at Frame 20

0.0

0.0

0.0




Section
Column
width40%

Here are the settings for the simulator - PhoenixFDFire_Cumulus_B:

The exact position of the Phoenix Simulator in the scene is XYZ: [308.0, -116.5 -40.0].

Open the Grid rollout and set the following values:

Fancy Bullets
typecircle
  • Voxel Size: 2.95 m
  • Size XYZ: [493, 398, 37]
  • Expand the Container Walls, so that they match the sizes of the Grid's X, Y and Z parameters
  • Set the Adaptive Grid to Smoke. The Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand
  • Set the Threshold to 0.02. This allows the simulator to expand when the Voxels near the corners of the simulation bounding box reach a Smoke value of 0.02 or greater
  • Enable Limit Maximum Expansion and set its parameters accordingly:

X: (240, 240)

Y: (240, 240)

Z: (0, 650)

This saves memory and simulation time by limiting the maximum size of the simulation grid.

The simulator is loaded along with the Cloud_render_preset.tpr, so the volumetric settings are all set for the final render.

Column
width5%

Column
width55%




Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Cumulus_B Simulator. We only need to simulate 7 frames, so set the Stop Frame to 7. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

Run a test render of frame 7. This is our asset for the Cumulus_B cloud.

Column
width5%

Column
width55%

Creating the Scatter_far Cloud



Section
Column
width40%

Open the scene "Cloud_for_scatter_far_final.max", where we have already prepared all the necessary elements and configured the settings for you. The setup is essentially the same as the previous two. However, the main difference is that since it is far from the camera, this cloud has a low-resolution grid to optimize performance.

Column
width5%

Column
width55%




Section
Column
width40%

This table shows the details for all three plane geometries in the Cloud_for_scatter_far scene.

Column
width5%

Column
width55%


Plane001

Plane002

Plane003

Size

885 X 975

500 X 529

615 X 615

Position

62, -318, 0.0

36, -93, 0.0

339, -358, 0.0

Rotation

0, 0, 0

0, 0, 30

0, 0, -20

Shell Modifier

Inner Amount

8.0

8.0

8.0

Noise Modifier Strength

400, 400, 50

150, 150, 30

100, 100, 30

Noise Modifier Animate phase

(The value of the phase is enclosed in parentheses.)

frame0 (0)~frame30(10)

frame0 (0)~frame30(30)

frame0 (0)~frame30(30)




Section
Column
width40%

This table shows all the settings for the three PHXSouces in the scene.

UI Text Box
typeinfo

The gradient map that we utilize to mask the Outgoing Velocity is identical to the one used in Cumulus_A.

Column
width5%

Column
width55%


PHXSource_Scatter_far_01

PHXSource_Scatter_far_02

PHXSource_Scatter_far_03

Emitter Nodes

Plane001

Plane002

Plane003

Mask for Outgoing VelocityGradient_CumulusGradient_Cumulus
Gradient_Cumulus
Noise for Outgoing Velocity3.03.03.0

Outgoing Velocity at Frame 0

150000.0


15000.0

40000.0

Outgoing Velocity at Frame 20

0.0

0.0

0.0




Section
Column
width40%

Here are the settings for the PhoenixFDFire_Scatter_far Simulator:

The exact position of the Phoenix Simulator in the scene is XYZ: [95.0, -327.0 -40.0]

Open the Grid rollout and set the following values:

Fancy Bullets
typecircle
  • Voxel Size: 5.8 m
  • Size XYZ: [197, 190, 19]
  • Expand the Container Walls, so that they match the sizes of the Grid's X, Y and Z parameters
  • Set Adaptive Grid to Smoke. The Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand
  • Set the Threshold to 0.02. This allows the simulator to expand when the Voxels near the corners of the simulation bounding box reach a Smoke value of 0.02 or greater
  • Enable Limit Maximum Expansion and set its parameters accordingly:

X: (80, 80)

Y: (80, 80)

Z: (0, 325)

This saves memory and simulation time by limiting the maximum size of the simulation grid.

The simulator is loaded along with the Cloud_render_preset.tpr, so the volumetric is all set for the final render.

UI Text Box
typenote

To optimize performance, we used a very low resolution for the simulator, since the cloud is placed far away from the camera.

UI Text Box
typetip

To increase flexibility, an alternative approach is to simulate the cloud with a higher grid resolution and then use the Cache Converter tool and decrease the grid resolution of the cache files. This enables the simulated caches to be used for both close-up and far-away clouds, allowing for on-demand optimization of render performance through the tool.

Column
width5%

Column
width55%




Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Scatter_far Simulator. We only need to simulate 4 frames, so set the Stop Frame to 4. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

Run a test render of frame 4. This is our asset for the Cloud_for_scatter_far cloud.

Column
width5%

Column
width55%

Creating the Scatter_near Cloud



Section
Column
width40%

Open the scene "Cloud_for_scatter_near_final.max", where we have already prepared all the necessary elements and configured the settings for you.

Column
width5%

Column
width55%

 


 

Section
Column
width40%
Instead of using the settings from our existing scene, we'll make this PHXTurbulence stronger. Since the Cloud_for_scatter_near cloud is very close to the camera, we want to keep the grid resolution low but still have enough detail. Stroger turbulence helps create more detailed clouds.
Column
width5%

Column
width55%

 


 

Section
Column
width40%

This table shows the details for all three plane geometries in the Cloud_for_scatter_near scene.

Column
width5%

Column
width55%


Plane001

Plane002

Plane003

Size

1000X1000

800X800

600X600

Position

117, 83, 0.0

543, -172, 0.0

-47, -339, 0.0

Rotation

0, 0, -30

0, 0, 30

0, 0, -20

Shell Modifier

Inner Amount

8.0

8.0

8.0

Noise Modifier Strength

400, 400, 50

150, 150, 30

100, 100, 30

Noise Modifier Animate phase

(The value of the phase is enclosed in parentheses.)

frame0 (0)~frame30(10)

frame0 (0)~frame30(30)

frame0 (0)~frame30(30)

 


 

Section
Column
width40%

This table shows all the settings for three PHXSouces in the scene.

UI Text Box
typeinfo

The gradient map that we utilized to mask the Outgoing Velocity is identical to the one used in Cumulus_A.

Column
width5%

Column
width55%


PHXSource_Scatter_far_01

PHXSource_Scatter_far_02

PHXSource_Scatter_far_03

Emitter Nodes

Plane001

Plane002

Plane003

Mask for Outgoing VelocityGradient_CumulusGradient_Cumulus
Gradient_Cumulus
Noise for Outgoing Velocity3.03.03.0

Outgoing Velocity at Frame 0

150000.0


15000.0

40000.0

Outgoing Velocity at Frame 20

0.0

0.0

0.0

 


 

Section
Column
width40%

Here are the settings for the PhoenixFDFire_Scatter_near Simulator:

The exact position of the Phoenix Simulator in the scene is XYZ: [183.0, -63.0 -42.0].

Open the Grid rollout and set the following values:

Fancy Bullets
typecircle
  • Voxel Size: 3.73 m
  • Size XYZ: [390, 314, 30]
  • Expand the Container Walls, so that they match the sizes of the Grid's X, Y and Z parameters
  • Set the Adaptive Grid to Smoke. The Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand
  • Set the Threshold to 0.02. This allows the simulator to expand when the Voxels near the corners of the simulation bounding box reach a Smoke value of 0.02 or greater
  • Enable Maximum Expansion and set its parameters accordingly:

X: (200, 200)

Y: (200, 200)

Z: (0, 540)

This saves memory and simulation time by limiting the maximum size of the simulation grid.

The simulator has the Cloud_render_preset.tpr loaded, so the volumetric is all set for the final render.

UI Text Box
typetip

Since this cloud will be duplicated through Chaos Scatter, we use relatively low grid resolution for the simulator to improve performance. However, since the cloud scatters near the camera, we need to make sure that the cloud has enough detail.

Column
width5%

Column
width55%

 


 

Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Scatter_near Simulator. We only need to simulate 7 frames, so set the Stop Frame to 7. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

Run a test render of frame 7. This is our asset for the Cloud_for_scatter_near cloud.

Column
width5%

Column
width55%

Creating the Anvil Cloud



Section
Column
width40%

We created assets for all the cumulus clouds and can move on to creating another type of cloud.

To get started, open the Anvil_cloud_start.max scene. We have prepared a geometry, a camera, and a VraySun for you to use. An anvil cloud is essentially a cumulus cloud before it reaches the ceiling of the stratosphere, so we can apply the experience we gained from making the cumulus clouds to the anvil cloud. Therefore, we will skip some of the steps and focus more on the formation of the distinctive "anvil" shape of this cloud type.

UI Text Box
typeinfo

Compared to the setup for the Cumulus cloud, the Anvil cloud features one significant difference: a box that will be used in later steps to emulate the stratosphere. By incorporating this geometry together with a Voxel Tuner and a Plain Force, we can simulate horizontal cloud movement, ultimately achieving the distinctive anvil shape.

Column
width5%

Column
width55%




Section
Column
width40%

Rename the box to Box_Voxel_Tuner.

Set its LengthWidth and Height to 8160.0m, 900.0m and 940.0m, respectively. Set the Segs for all axes to 1.

The exact position of the Box_Voxel_Tuner is XYZ: [125.0, -223.0, 808.0].

UI Text Box
typeinfo

This box is used for defining the region of the Stratosphere where the cloud stops going up, and is blown to the side by a wind force. The position of the box allow us to create an anvil cloud with a height of 860 meters. This corresponds to the height of a real anvil cloud.

Column
width5%


Column
width55%




Section
Column
width40%

Since the Box_Voxel_Tuner is only used for the Voxel Tuner in a later step, we don't have to render the geometry. In its Object Properties, disable the Renderable checkbox and enable See-Through.

Column
width5%


Column
width55%



Section
Column
width40%

Several modifiers have been applied to the plane geometry, which uses the same settings as the planes for the Cumulus Cloud. To create the desired effect, the Phase of the Noise modifier is animated from a value of 1, at frame 0, up to a value of 4, at frame 15.

UI Text Box
typenote

Note that 30% of the Plane_Anvil's faces got deleted, same as before, when we created the cumulus cloud assets.

Column
width5%

Column
width55%

Simulator for the Anvil Cloud


Section
Column
width40%

In the sample scene, we have set up a simulator for you. The simulator is named PhoenixFDFire_Anvil.

The exact position of the Phoenix Simulator in the scene is XYZ: [0.0, 0.0, -40.0].

Open the Grid rollout and set the following values:

Fancy Bullets
typecircle
  • Voxel Size: 7.3 m
  • Size XYZ: [456, 320, 15]
  • Set the Adaptive Grid to Smoke. The Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand
  • Set the Threshold to 0.02. This allows the simulator to expand, when the Voxels near the corners of the simulation bounding box reach a Smoke value of 0.02 or greater
  • Enable Limit Maximum Expansion and set its parameters accordingly:

X: (430, 430)

Y: (430, 430)

Z: (0, 370)

This saves memory and simulation time by limiting the maximum size of the simulation grid.

The simulator is loaded along with the Cloud_render_preset.tpr, so the volumetric is all set for the final render.

Column
width5%

Column
width55%




Section
Column
width40%

In the Dynamics rollout of the PhoenixFDFire_Anvil, we have set the Fluidity Method to PCG Symmetric and the Quality to 100. However, we have decided to lower the Steps Per Frame to 5 instead of 10.

UI Text Box
typeinfo

Since the anvil cloud does not require as much detail as the cumulus cloud, we set the Steps Per Frame to 5 and leave the Randomize Amount at 0.0. Additionally, we keep the Noise for the source at 0.0.

Column
width5%


Column
width55%

Fire/Smoke Source for the Anvil Cloud



Section
Column
width40%

Set up the PHXSource_Anvil_Cloud's properties:

Fancy Bullets
typecircle
  • Set the Emit Mode to Surface Force

  • Disable the Temperature

  • Set the Smoke to 4.0

  • Set the Outgoing Velocity Mask and Smoke Mask types to Texmap
  • Set the Polygon ID to 1. This limits the emission only to faces with an ID of 1

Create a Gradient Ramp:

  • Plug the map into the Outgoing Velocity's and Smoke's Texmap slot
  • Rename the map to Gradient_Anvil
  • Set the Gradient Type to Radial. This produces a circular texture ideal for the base of the cloud
  • Set the Noise parameters:

Set the Noise Amount to 1.0
Set the Size to 3.0
Set the Noise type to Turbulence

  • Add 3 extra flags to the gradient bar, so that there are a total of 5
  • Set the Interpolation to Ease Out
  • Edit the positions of the five flags on the gradient map using the table


Flag

Position

RGB

Interpolation

1

0

255,255,255

Ease In

2

29

68,68,68

Ease In

3

37

12, 12, 12

Ease In

4

63

1, 1, 1

Ease In
51000, 0, 0Ease In

Table of five flags on the gradient bar of the Gradient_Anvil . From left (start point) to right (end point).


UI Text Box
typetip

Feel free to tweak this gradient map to create different cloud variants.


Changes to the Noise parameters greatly influence the simulated cloud. It is recommended that you experiment with different settings once you've completed this tutorial. If you want to recreate the same result as shown here, follow the instructions exactly.

UI Text Box
typewarning

Please note that it is important to mask both the Outgoing Velocity and the Smoke in the source, to achieve a distinct anvil-shaped cloud. We recommend doubling the Smoke amount from a value of 2.0 to a value of 4.0.

Column
width5%


Column
width55%

Animation of the Outgoing Velocity of the Anvil Cloud



Section
Column
width40%
Fancy Bullets
typecircle
  • Go to Graph Editors > Track View - Curve Editor
  • Set keyframes for the Outgoing Velocity for PHXSource_Anvil_Cloud, so it can change over time. Each frame and value is shown in the screenshot and in the table



Frame

Value

Tangent type

0

200000.0

Fast

5

0.0

Slow

Keyframes for the FIre/Smoke Source's Outgoing Velocity



UI Text Box
typewarning

Please note that the Tangent type is crucial for achieving the desired anvil shape. To ensure the correct settings, please refer to the table provided.

Column
width5%


Column
width55%

Screenshot of the Outgoing Velocity keyframes

Settings for the Phoenix Turbulence 


Section
Column
width40%

Apply the same PHXTurbulence settings as the ones in the Cumulus_A scene. Here are the details:

Fancy Bullets
typecircle
  • Set the position to XYZ: [ -1769.0, 1200.0, 630.0]
  • Set the Strength to 1500.0
  • Set the Size to 100.0m
  • Set the Fractal Depth to 3
  • Reduce the Rate of Change to 0.2
Column
width5%


Column
width55%

Initial Simulation of the Anvil Cloud


Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Anvil Simulator. We only need to simulate 11 frames, so set the Stop Frame to 11. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

This voxel preview shows the current animation. You can see a mushroom-like shape. Additional procedures are needed to achieve the distinctive "anvil" shape of this cloud type.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/XcgC8sX0EIU?autoplay=1&playlist=XcgC8sX0EIU&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Adding Plain Force


Section
Column
width40%

To replicate the atmospheric conditions of the Stratosphere, we can introduce a Phoenix Plain Force into the scene. To do this, go to Create Panel > Helpers > Phoenix and add a Phoenix Plain Force.

Fancy Bullets
typecircle
  • The exact position of the Plain Force in the scene is XYZ: [1867.0, 0.0, 486.0]

  • Set the Strength to 2000.0m

  • Set the Drag to 0.1

  • Enable the Apply Force Behind Icon option

Column
width5%


Column
width55%




Section
Column
width40%

To make the visual effect more interesting, animate the Plain Force. Refer to the screenshot for the appropriate frame numbers and values. Set all tangents to Linear.

Column
width5%


Column
width55%

Emulate the Stratosphere with a Particle Tuner and a Plain Force



Section
Column
width40%

Go to Create Panel HelpersPhoenixFDVoxelTuner. Create a Voxel Tuner anywhere in the scene.

Column
width5%


Column
width55%




Section
Column
width40%

With the Voxel Tuner selected, click on the Edit Condition button to change the condition.

UI Text Box
typeinfo

The Voxel Tuner assesses all voxels in the simulation and, under a given condition, changes their values.

In this example we limit the Plain Force to only affect the designated region - inside of Box_Voxel_Turner.

The conditions can be very simple, but you can also build more complex conditions with the Voxel Tuner's Expression operators.

Column
width5%


Column
width55%




Section
Column
width40%

In the Edit Condition window, click on Temperature. The Edit Value Expression window shows up.

Column
width5%


Column
width55%




Section
Column
width40%

Switch the condition from Channel - Temperature to Distance To. Press the None button and choose the Box_Voxel_Turner geometry from the scene.

Column
width5%


Column
width55%




Section
Column
width40%

Click on the Is Greater Than condition, so the Edit Compare Expression window shows on the right. Change the condition from Is Greater Than to Is Less Than.

Column
width5%


Column
width55%




Section
Column
width40%

Click on the value of 800.0, change the Value Expresion to Random Between. Edit the value so you have random value from 0.0 to 10.0

UI Text Box
typenote

Note that the unit for distance in the Voxel Tuner is in simulation grid voxels. If you change the simulator's Grid Resolution, this also changes the units that the Voxel Tuner uses to measure distance.

UI Text Box
typetip

The distance to the box is randomized between 0.0 to 10.0, allowing us to simulate a cloud with a softer and more natural anvil top. You can adjust this value to fit your preference.

Column
width5%


Column
width55%




Section
Column
width40%

After configuring the condition settings, close the Edit Condition window. Next, change the Then parameter to Velocity Z. Set the value to 0.0 and adjust the Buildup Time (sec) to 0.04.

To add a force to the scene, go to Affect By Forces and click on the Add button. Select the PlainForce.

For the anvil shape, a strong wind force is needed. To increase the effect, adjust the With Multiplier parameter to 20.0.

UI Text Box
typetip

This is the condition set by the Voxel Tuner: when the cloud is near or inside the Box_Voxel_Tuner region, it stops moving upward and is pushed by the PlainForce.

UI Text Box
typeinfo

To achieve a gradual transition of the effect, we introduce a one-frame delay. Given that our animation runs at 30 frames per second, the delay time is approximately 0.03333 seconds, or rounded to 0.04 seconds. Feel free to adjust this value to your liking.


With those new settings, run the simulation again.

Column
width5%


Column
width55%




Section
Column
width40%

This voxel preview shows the current animation. Now we see the cloud forming an anvil shape.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/xdszaRYUHVo?autoplay=1&playlist=xdszaRYUHVo&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>




Section
Column
width40%

Run a test render of frame 11. This is our asset for the Anvil_cloud.


UI Text Box
typetip

We stopped at frame 11 to achieve a subtle anvil-shape look for the cloud. Simulating for longer would create a more dramatic effect, which would be less realistic.

Column
width5%


Column
width55%

Creating the Stratus_top Cloud


Section
Column
width40%

To start, let's open the file "Startus_top_start.max" which includes a VRaySun, a VRay Camera, and a Sphere.

The sphere has a diameter of 3244.0 meters and 32 segments. It's been flattened and scaled down to 13% of its original height along the Z-axis.

UI Text Box
typetip

Smoke is going to be emitted from this sphere. Flattening it will create a flat stratus cloud. To customize the height of the cloud, adjust the sphere's size along the Z-axis.


Column
width5%

Column
width55%




Section
Column
width40%

Since the sphere is used solely as a smoke source, the Renderable checkbox is disabled and Display as Box is enabled in its Object Properties.

Column
width5%


Column
width55%




Section
Column
width40%

Go to Create Panel > Create > Geometry > PhoenixFD and click on FireSmokeSim. Rename the simulator to PhoenixFDFire_Stratus_top.

Fancy Bullets
typecircle
  • Position itin the scene at XYZ: [0.0, 0.0, 0.0]

Open its Grid rollout and set the following values:

  • Voxel Size: 11.0 m

  • Size XYZ: [ 651, 723, 73 ]
  • Open the Container Walls to match the X, Y and Z of the Grid Size

Column
width5%


Column
width55%

Adding a Fire/Smoke Source for the Stratus Cloud


Section
Column
width40%

Go to the Create Panel > Create > Helpers > PhoenixFD and create a PHXSource. Rename it to PHXSource_Stratus_top.

Press the Add button to choose which geometry to emit from and select the Sphere001 in the Scene Explorer.

Column
width5%

Column
width55%




Section
Column
width40%

 PHXSource_Stratus_top settings:

Fancy Bullets
typecircle
  • Set the Emit Mode to Volume Brush
  • Set the Brush Effect % to 50.0
  • Disable the Temperature option
  • Set the Smoke to 0.8
  • Set the Smoke Maskto Texmap and plug a Noise texture map into the slot and rename it to Noise_Stratus_top.

Set the Size to 1000.0
Set the Hight to 1.0
Set the Low to 0.7
Set the Noise Type to Fractal
Set the Levels to 10.0

UI Text Box
typeinfo

To create a thinner layer of stratus cloud that intersects with the cumulus clouds, we set a low Smoke value of 0.8.

Column
width5%


Column
width55%




Section
Column
width40%

When switching the Emit Mode to Volume Brush, Phoenix prompts you to make the Sphere001 non-solid. Click on Make Non-Solid. Otherwise, it collides with the fluid simulation.

Column
width5%


Column
width55%

 




Section
Column
width40%

Unlike the cumulus cloud, the stratus cloud doesn't need to have great details, so leave everything in the Dynamics rollout at its default.

Select the Simulation rollout of the PhoenixFDFire_Stratus_top Simulator. We only need to simulate 3 frames, so set the Stop Frame to 3. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

With the PhoenixFDFire_Stratus_top selected, go to the Rendering rollout. Click on the Render Presets and click on Load from File. Load the Cloud_render_preset.tpr, provided with the sample scene.

Column
width5%

Column
width55%




Section
Column
width40%

Run a test render of frame 3. This is our asset for the Stratus_top cloud.

Column
width5%


Column
width55%

Creating the Stratus_bottom Cloud



Section
Column
width40%

The Startus_bottom has basically the same setup, so we don't need to repeat the procedure. Open up the final scene "Startus_bottom_final.max". It already has the Phoenix Source and Simulator set up for you. The simulator is renamed to PhoenixFDFire_Startus_bottom.

Column
width5%

Column
width55%




Section
Column
width40%

 Here are the settings for PHXSource_Stratus_bottom:

Fancy Bullets
typecircle
  • Set the Smoke to 1.0
  • Set the Smoke Mask to Texmap and plug a Noise texture map into the slot. Rename the map to Noise_Stratus_bottom.

Set its Size to 1000.0
Set its High to 1.0
Set its Low to 0.63
Set its Noise Type to Fractal
Set its Levels to 10.0

UI Text Box
typenote

Setting the smoke to 1.0 creates a thicker stratus cloud, and lowering the value of the Low Noise Threshold increases the area the cloud covers. If the value of Low Noise is higher, it results in less area covered by the cloud.

Column
width5%

Column
width55%




Section
Column
width40%

Select the Simulation rollout of the PhoenixFDFire_Stratus_bottom Simulator. We only need to simulate a single frame, so set the Stop Frame to 1. Press the Start button to simulate.

Column
width5%


Column
width55%




Section
Column
width40%

Run a test render of frame 1. This is our asset for the Stratus_bottom cloud.

Column
width5%


Column
width55%

Anchor
sceneAssembly
sceneAssembly
Scene Assembly


Assembling the Daytime Cloudscape



Section
Column
width40%

With all the volumetric data for the clouds ready, it's time to assemble them into a cloudscape. Open up the provided scene "Cloudscape_daytime_start.max". To help you get started, the scene includes an animated camera, a VRaySun, and some splines that will be used to scatter the VrayVolumeGrid. The scene also includes Omni lights, two PFLows, and one PCloud for the stormy night.

UI Text Box
typenote

All the Omni lights, PFlows and the PCloud are hidden, as these elements are intended for the stormy night cloudscape. We will unhide them in a later step.

UI Text Box
typetip

Alternatively, you can quickly assemble all the necessary cloud volumetric data by downloading them from the Phoenix Cloud Assets page.


Go to Create panel > V-Ray. Click on the VRayVolumeGrid button and click anywhere in the scene. This prompts a dialog window. Locate the *.aur file for Cumulus_A. Open the file to load the cache into VRayVolumeGrid.

Column
width5%

Column
width55%




Section
Column
width40%

Rename the VRayVolumeGrid to VRayVolumeGrid_Cumulus_A. In the Input rollout, change Time Bend Controls Mode to Cache Index. Set the Direct Cache Index to 10.0.

Column
width5%

Column
width55%

 




Section
Column
width40%

With the VRayVolumeGrid_Cumulus_A selected, move it to XYZ: [183.0, -88.0, 0.0]. Rotate it to XYZ: [0.0, 0.0, -92.0].

Column
width5%

Column
width55%




Section
Column
width40%

With the VRayVolumeGrid_Cumulus_A selected, go to the Rendering rollout. Click on Render Presets and select Load from File. Load the Cloud_render_preset.tpr that is provided with the sample scene.

Column
width5%

Column
width55%




Section
Column
width40%

Go to the Preview rollout of the VRayVolumeGrid_Cumulus_A, change the color of the lowest smoke grid value to light blue - RGB(88,199,225).

UI Text Box
typetip

Since the scene will contain many VRayVolumeGrids, each with a different cloud asset, changing their preview color would aid in distinguishing them.

UI Text Box
typewarning

Be sure to enable the Auto Reduction option in the Preview rollout, as we will be incorporating multiple VRayVolumeGrids into the scene. If you skip this step, it could cause a low viewport frame rate.


Column
width5%

Column
width55%




Section
Column
width40%

Great, we have successfully set up VRayVolumeGrid_Cumulus_A. However, there are six more cloud assets waiting to be loaded into the scene. Please follow the same procedure for each of the remaining cloud assets.

UI Text Box
typeinfo

Scaling (82, 82, 82) means uniformly scaling down the VRayVolumeGrid to 82%.

UI Text Box
typetip

Feel free to customize your cloudscape by adjusting the position, rotation, scale, or Direct Cache Index of each VRayVolumeGrid according to your preferences.

Column
width5%

Column
width55%


Position

Rotation

Scale

Direct Cache Index

Smoke preview color

Cumulus_A

 183.0, -88.0,0.0

 0.0, 0.0, -92

 100, 100, 100

10.0

88, 199, 225

Cumulus_B

798, -737, 0

0, 0, -31

82, 82, 82

7.0

223, 86, 86

Anvil_cloud

2842, 4554, 0

0, 0, 110

172, 172, 172

11.0

181, 51, 255

Cloud_for_scatter_near

2880.0, 1076.0, 0.0

0.0, 0.0, 0.0

100, 100, 100

7.0

255, 143, 86

Cloud_for_scatter_far

1688, 19677, 0

0, 0, 0

100, 100, 100

4.0

225, 86, 143

Stratus_top

1492, 2862, 48

0 ,0 , -160

114, 114, 114

2.0

88, 88, 225

Stratus_bottom

1942, 896, -840

0, 0, -132

128, 128, 128

1.0

5, 0, 229




Section
Column
width40%

Now we have loaded all seven cloud assets into the scene with their VRayVolumeGrids. While it might look good, there are still many gaps in the frame that need to be filled. Otherwise, the cloudscape won't be convincing enough.

Column
width5%

Column
width55%

Scattering the Clouds with Chaos Scatter



Section
Column
width40%

Before we apply Chaos Scatter to the cloud assets, let's simplify our workspace by hiding the other VRayVolumeGrids. To do this, open the Select by Name window and hide all VRayVolumeGrids, except for VRayVolumeGrid_Cloud_for_scatter_far and VRayVolumeGrid_Cloud_for_scatter_near, which are the ones we'll be working with.

Column
width5%

Column
width55%




Section
Column
width40%

Navigate to the Create panel and select the Geometry tab. From the drop-down menu, select Chaos Scatter and create two Chaos Scatter geometries in the scene. To keep things organized, rename them as Chaos Scatter_Far and Chaos Scatter_Near, to match their respective purposes.

Column
width5%

Column
width55%




Section
Column
width40%

With the Chaos Scatter_Far selected, in the Objects rollout, use the "+" button to add Line_Distribute_Far to the Distribute-on target objects list. Then add the VRayVolumeGrid_Cloud_for_scatter_far to the Instanced model objects list. By doing this, the Cloud_for_scatter_far asset will be scattered within the enclosed region defined by the spline shape of Line_Distribute_Far. 

  • In the Scattering rollout, set the Max. limit to 60 and the Random seed to 2.
  • In the Rotation section of the Transformations rollout, set the Z Rotation To to 360.0.
  • In the Scale[%] section, set X From and To to 150.0 and 250.0, respectively.
  • In the Viewport Display rollout, set the Previz type to Box.
UI Text Box
typetip

The clouds in the distance do not require a high grid resolution, which is why we generate the VRayVolumeGrid_Cloud_for_scatter_far with a larger voxel size than the one for the close-up clouds.

UI Text Box
typetip

To create a more diverse cloudscape, you can add multiple VRayVolumeGrids to the instanced model objects list. However, keep in mind that this may impact performance, so for this tutorial, we will only be using one.

UI Text Box
typenote

The Previz type is temporarily set to Box. This makes it easier to check the dimensions of the scattered cloud. Once we finalize the settings, you can switch the Previz type to Dot, which won't obstruct the view of other objects in the cloudscape.

Column
width5%

Column
width55%




Section
Column
width40%

With the Chaos Scatter_Near selected, in the Objects rollout, use the "+" button to add Line_Distribute_Near to the Distribute-on target objects list. Then add the VRayVolumeGrid_Cloud_for_scatter_near to the Instanced model objects list. By doing this, the Cloud_for_scatter_near asset will be scattered within the enclosed region defined by the spline shape of Line_Distribute_near

  • In the Scattering rollout, set the Max. limit to 50 and the Random seed to 3.
  • In the Rotation section of the Transformations rollout, set the Z Rotation To to 360.0.
  • In the Scale[%] section, set X From and To to 50.0 and 80.0, respectively.
  • In the Areas rollout, add Line_Areas_Near to the Spline includes list. Click on the item and set the Near distance to 700.0m and the Far distance to 12159.0m. Finally, set the Scale to 0.67 and the Density to 1.0.
  • In the Viewport Display rollout, set the Previz type to Box.


UI Text Box
typetip

The spline in the Areas rollout allows you to create smaller clouds that are far away from the specified spline, and larger ones that are near it. This provides a more natural distribution and size of the clouds.

UI Text Box
typenote

The Previz type is temporarily set to Box. This makes it easier to check the dimensions of the scattered cloud. Once we finalize the settings, you can switch the Previz type to Dot, which won't obstruct the view of other objects in the cloudscape.

Column
width5%

Column
width55%

Creating Fog Using VRayVolumeGrid


Section
Column
width40%

Unhide all VRayVolumeGrids in the scene.

Now we have all the clouds set for a cloudscape, but we still need something for a better aerial perspective - fog.

Go to Create panel > V-Ray. Click on the VRayVolumeGrid button and click anywhere in the scene. This prompts a dialog box for loading cache files. Click on Cancel.

Column
width5%

Column
width55%




Section
Column
width40%

Rename the VrayVolumeGrid we just created to VRayVolumeGrid_Fog. Move it to XYZ: [1452.0, 14455.0, 0.0].

In the Grid rollout, set the following settings:

  • Voxel Size: 69.0m
  • Size XYZ: [413, 393, 26]
Column
width5%

Column
width55%




Section
Column
width40%

Select VRayVolumeGrid_Fog, and click on Volumetric Options to open the Volumetric Render Settings window.

Fancy Bullets
typecircle
    • Set the Fire Based on option to Disabled - we won't need any fire in this scene.
    • Change the Smoke Color to pure white of RGB (255, 255, 255).
    • Set the Smoke Opacity Based on option to Smoke.
    • In the Opacity diagram, adjust the Y value of the first key point to 0.0001. This way we can create a fog volume without actually running the simulation.


In the Rendering rollout, set the Sampler Type to Linear.

Column
width5%


Column
width55%

Render Elements


Section
Column
width40%

In the Render Setup > Render Elemets tab, add VRayLightMix. This is necessary for relighting the scene in the VFB.

Column
width5%

Column
width55%

Color Correcting the Daytime Scene with the VFB


Section
Column
width40%

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

Column
width5%

Column
width55%




Section
Column
width40%

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

Filmic Tonemap:

Fancy Bullets
typecircle
  • Blending, Override: 0.780
  • Type: Hable
  • Shoulder strength: 0.090
  • Linear strength: 0.085
  • Linear angle: 0.185
  • Toe strength: 0.515
  • White point:3.655

The Filmic Tonemap render element simulates a camera film's response to light, making the scene more realistic.

Exposure:

Fancy Bullets
typecircle
  • Exposure: 2.10
  • Highlight Burn: 1.00
  • Contrast: 0.145

White Balance:

Fancy Bullets
typecircle
  • Temperature: 3677.0
  • Magenta - Green tint: 0.130

Lens Effects:

Fancy Bullets
typecircle
  • Opacity: 0.685
  • Size: 19.270
  • Intensity: 1.120
  • Enable Lens scratches and set its Pattern to Stripes
  • Enable Cold/Warm
UI Text Box
typetip

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

Column
width5%


Column
width55%

Anchor
lightingParticlesFX
lightingParticlesFX
Lighting and Particle effects


Relighting with LightMix


Section
Column
width40%

Here we will use LightMix to adjust the ratio between the key light (VRaySun) and the fill-light (VRaySky). We will also decrease the weight of the Environment to make the shot more cinematic.

Set the Source to LightMix.

Fancy Bullets
typecircle
  • Change the color swatch of VRaySun001 to orange of RGB(255, 227, 192)

  • Decrease the weight of the Environment to 0.8. Change the color to RGB(206, 226, 255)

Column
width5%

Column
width55%




Section
Column
width40%

Alternatively, you can load up a render preset from the Daytime_VFB.vfbl file that is provided in the sample scene.

Column
width5%


Column
width55%

Transfer light changes back to scene


Section
Column
width40%

LightMix is a valuable tool that offers precise control over the intensity of individual lights in a scene. This can be particularly useful during look development. However, this feature requires additional sampling during rendering and will slow the render down, when there is already a lot of volumetric data present. The good news is that we can mitigate this issue by using the To Scene button, which allows us to transfer any changes made in LightMix back to the scene without having to repeat the entire render process.

After performing a test render, navigate to the LightMix section in the VFB and click on the To Scene button. This will apply all changes to the colors and intensities of scene items (except for those that were excluded in the previous step).

This prompts a dialogue window, click Yes to confirm.

UI Text Box
typenote

The To Scene option is only available when the render has stopped. Therefore, it is necessary to perform a quick test render beforehand.

Column
width5%

Column
width55%




Section
Column
width40%

After the transfer, you can check the VRaySun and Environment Map. The VRaySun now has a slightly orange tint, and the VRaySky is multiplied by the VRayColor. Both changes are based on the adjustments we made in LightMix.

Column
width5%

Column
width55%




Section
Column
width40%

Since the light adjustment has now been baked into the scene, let's navigate to VRay > Render Elements and turn off the Element Active option. We are now ready to proceed with the final render for the daytime cloudscape.

Column
width5%

Column
width55%




Section
Column
width40%

And here is the final animation for the daytime cloudscape.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/6pWc3V6_L3w?autoplay=1&playlist=6pWc3V6_L3w&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Setup for the Stormy Night Cloudscape



Section
Column
width40%

Let's transform the current scene into a stormy night. Take the current state of the daytime scene and save the scene as Cloudscape_stormy.max. First, in the VRay Light Lister, turn off VRaySun and enable the three Omni lights in the scene.

UI Text Box
typenote

The Multiplier for the Omni_Anvil and Omni_Cumulus_A is controlled by the Noise Controller to create a blinking lightning effect, while the Multiplier for Omni_Cumulus_B has been animated using keyframes.

Column
width5%

Column
width55%



Section
Column
width40%

To turn off the VRaySky, navigate to Rendering > Environment > Environment and Effects, and uncheck the Use Map option.

Column
width5%

Column
width55%

PFlow Setup for the Lightning



Section
Column
width40%

In the Scene Explorer, unhide the PF Source 001, PF Source 002 and PCloud_Stars, to show the PFlow and the stars in the scene.

Column
width5%

Column
width55%




Section
Column
width40%

Here's a preview animation of PFlows and PCloud to give you an idea. In the animation, lightning discharges from the position of Cumulus_A and the Anvil_cloud. You can also see stars in the background.

Column
width5%

Column
width55%

(Please replace this image with Particles_preview.mp4)

Adjust the VRayVolumeGrid_Fog



Section
Column
width40%

Since we want to create a stormy night with high humidity, let's adjust the VRayVolumeGrid_Fog by moving it towards the camera to cover more clouds. Its new position should be XYZ: (1452.0, 11957.0, 0.0).

Next, access the Volumetric Render Settings of the VRayVolumeGrid_Fog. In the Opacity diagram, increase the Y value of the first key point to 0.0003.

Column
width5%


Column
width55%




Section
Column
width40%

Now that we've made the fog thicker, let's optimize render performance by hiding the Chaos_Scatter_Far and VRayVolumeGrid_Cloud_for_scatter_far.

Column
width5%


Column
width55%

Color Correcting the Nighttime Scene with the VFB


Section
Column
width40%

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

Column
width5%


Column
width55%




Section
Column
width40%

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

Filmic Tonemap:

Fancy Bullets
typecircle
  • Blending, Override: 0.400
  • Type: Hable
  • Shoulder strength: 0.500
  • Linear strength: 0.380
  • Linear angle: 0.230
  • Toe strength: 0.340
  • White point: 3.330

The Filmic Tonemap render element simulates a camera film's response to light, making the scene more realistic.

Exposure:

Fancy Bullets
typecircle
  • Exposure: -0.90
  • Highlight Burn: 1.00
  • Contrast: 0.05

White Balance:

Fancy Bullets
typecircle
  • Temperature: 3978.0
  • Magenta - Green tint: 0.00

Lens Effects:

Fancy Bullets
typecircle
  • Opacity: 1.000
  • Size: 2.000
  • Intensity: 2.000
  • Enable Cold/Warm
UI Text Box
typetip

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

Column
width5%


Column
width55%




Section
Column
width40%

Alternatively, you can load up a render preset from the Stormy_Night_VFB.vfbl file, provided in the sample scene.

Column
width5%


Column
width55%




Section
Column
width40%

And here is the final rendered result for the stormy night cloudscape.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/pwdd5jvwFRM?autoplay=1&playlist=pwdd5jvwFRM&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Final composite



Section
Column
width40%

We now have sequences of cloudscape scenes for both daytime and nighttime. You can use any compositing software to create an animation that transitions from day to stormy night.

Column
width5%


Column
width55%
HTML
<iframe width="720" height="405" src="https://www.youtube.com/embed/Kn3rx-NgN58?autoplay=1&playlist=Kn3rx-NgN58&loop=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay=1; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

(Please replace this image with Cloudscape_day_and_night.MP4)