This page guides you through the process of creating a submarine-launched ballistic missile (or SLBM) using Chaos Phoenix 4.41 and V-Ray 5.

Overview


This Advanced Level tutorial shows you how to create an underwater ballistic missile launch using Phoenix. It's recommended that you to have at least basic knowleage of lighting, materials, and the Phoenix simulation.

The final shot we aim at involves not just water, but also Fire and Smoke. A particle flow (PFlow) system is used as a source for the missile smoke trail. The smoke is simulated using Phoenix Fire/Smoke simulator.

For the liquid, we add three Liquid sources to achieve the final effect. One is linked to the missile, one to a Geosphere, and the third one to a Cone geometry that emits splash particles. The liquid and the particles are simulated with a Phoenix Liquid Simulator. Together all these compose a convincing submarine-launched ballistic missile effect.

This simulation requires Phoenix 4.41 Nightly Build from 08 July 2021 and V-Ray 5 Official Release for 3ds Max 2018 at least. You can download nightlies from https://nightlies.chaos.com or get the latest 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 slower, while mid-to-small scale simulations have lots of vigorous movements.

When you create your Simulator, check the Grid rollout where the real-world sizes of the Simulator are shown. If the size of the Simulator in the scene cannot be changed, you can trick 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. Setting the units to Meters is a reasonable choice.

Go to CustomizeUnits Setup and set Display Unit Scale to Metric Meters. Also, set the System Units so that 1 Unit equals 1 Meter.



Scene Layout


The final scene contains the following elements:

  1. Ship object for creating a sense of scale in the scene;
  2. Missile geometry;
  3. Three Liquid sources, each using the Missile, GeoSphere and Cone as emitters, respectively;
  4. Phoenix Fire / Smoke source for smoke trail;
  5. Phoenix Plain Force as a wind force in the scene;
  6. Phoenix Fire/Smoke Simulator;
  7. Phoenix Liquid Simulator;
  8. V-Ray Physical Camera (VRayCam) for rendering;
  9. V-Ray Sun & Sky setup for lighting.





A close-up for the final scene contains the following elements:

  1. Cone geometry as a liquid source;
  2. GeoSphere geometry as another liquid source;
  3. Missile object;
  4. Particle Flow node: PF Source that is linked to the moving missile object.



Scene Setup


Set the Time Configuration Animation Length to 120 so that the Time Slider goes from 0 to 120.





This tutorial involves both Fire, Smoke and Liquid simulations, and the steps are rather complicated. Here we focus on the Phoenix-related steps only. Feel free to use the camera and light settings in the provided sample scene.
For reference, below you can find the camera and light settings.



Camera Settings


From Create Panel → CamerasV-Ray select VRayPhysicalCamera and add it to the scene.

The exact position of the Camera is XYZ: [ 3147.05, -134.6, 7.95 ].

The exact position of the Camera Target is XYZ: [ 3.35, 52.5, 39.5 ].

Sensor & Lens Field of view is enabled and set it to 5.0.

Sensor & Lens Film gate is set to 36.0.

ApertureFilm speed is set to 100.0.

Aperture → F-Number is set to 10.0.

Aperture → Shutter Speed is set to 100.

Both Depth of field and Motion Blur are Enabled.

Color & Exposure → White Balance is set to Neutral.

We set this camera as a super telephoto lens giving it a sense of distance from the missile launch.



Lighting


From Create Panel  LightsV-RayVRaySun, create a VRaySun in the scene.

The exact position of the VRaySun is XYZ: [ 87.3, 462.5, 226.5 ].

The exact position of the VRaySun Target is XYZ: [0.0, 0.0, 0.0 ].

Decrease the Intensity multiplier to 0.45.

Increase the Size multiplier to 100.0.



Anatomy of the SLBM


The missile shot has few key features:

  • The first one is, when the rocket launches from underwater, the smoke trail drifts from left to right because of the wind. The direction of the ocean wave matches the Plain Force orientation in the scene.
  • Secondly, once the missile launches, a large number of splashes comes out of the sea. The smoke trail is bright white with a bluish tint. We can see a reflection of the hot smoke on the ocean surface, even though the rocket is flying out of the camera. This means that the Fire/Smoke simulator must be tall enough for an out of camera frustum.

Though the smoke and liquid are simulated independently, parts of the splash/mist /foam overlap with the smoke, making the shot visually more convincing.



Timeline of the SLBM animation


Here are the general stages of the SLBM shot:

  1. The missile launches at frame 5 and it gradually loses speed because of gravity.
  2. At frame 50, the missile starts to ignite. You can see hot white smoke coming out of the missile nozzle while it is changing its trajectory.
  3. At frame 59, the missile ignition fire reaches the ocean surface, creating lots of water splashes.
  4. At frame 65, the missile enters the acceleration stage, rushing to the sky at full speed.


Particle Flow Settings


The Particle Flow settings here are provided only as a starting point for the Phoenix Simulation. Feel free to tweak and adjust them according to your scene.

Here is a preview animation of the particle simulation. This particle system is pretty straightforward - there is only one event in the system. It is linked to the keyframed missile object.

Particles are shown in dark yellow color.





Here you can see the Particle View of the particle systems. For the Birth operator, the Emit Start is set to 50 as the missile is ignited at frame 50.

The Speed for the particles is set to 125.0 m with variation set to 20.0 m.

The particle age is controlled by the Delete operator, with a Life span set to 1, so the particles don't last long.

The Divergence in the Speed operator affects the shape of the smoke trail. If the value is higher, it sprays particles wider, making a wider smoke trail.



Fire/Smoke Simulation


Let's create a simulator now. Go to Create Panel → Create → Geometry → PhoenixFD → FireSmokeSim.

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

Open the Grid rollout and set the following values:

  • Cell Size: 0.244 m
  • Size XYZ: [ 32, 32, 48 ] - keep the Simulator size small to roughly cover the PFlow particles
  • Container Walls: Open to X and Y, but Jammed(-) to Z.
  • Adaptive Grid: Smoke - the Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand. With a Threshold of 0.001, the Simulator expands when the Cells near the corners of the simulation bounding box reach a Smoke value of 0.001 or greater. Extra Margin is set to 25.
  • Enable Expand and Don't Shrink - this way the Adaptive grid does not contract back when there is very thin smoke at the borders of the grid
  • Enable Max Expansion: X: (261, 261), Y: (261, 261), Z: (0, 1448) - saves memory and simulation time by limiting the Maximum Size of the simulation grid

The Fire/Smoke Simulator is positioned on the Z-axis, according to the Liquid Simulator (that we create later) and its ocean level. The container walls are set to Jam to Z (-), so when we simulate the liquid, the missile trail smoke appears colliding with the ocean surface.

The Max Expansion of the Z-axis is set to an extremely high value. This is to make sure that the reflection of the smoke trail is long enough to reflect on the ocean surface. Otherwise, the look is unrealistic when the smoke trail disappears, while the missile flies out of camera view.





Select the SimulatorOutput rollout and enable the output of Temperature, Smoke, and Velocity Grid Channel

If you'd like to perform a Resimulation using Wavelet Turbulence for increasing the simulation detail, enable the Wavelet Grid Channel output.

Any channel that you intend to use after the simulation is complete needs to be cached to disk. For example:

  • Velocity is required at render time for Motion Blur;
  • Temperature is usually used at render time to generate Fire;
  • Wavelet is used for Wavelet turbulence when performing a Resimulation.



Adding Missile Fire/Smoke Source


Now, let's create a Phoenix Fire/Smoke Source in the scene. Go to Create Panel → Create → Helpers → PhoenixFD → PHXSource. Rename it to PHXSource-Missile-Smoke.

Press the Add button to choose which geometry to emit and select the PF Source entry in the Scene Explorer.





When you pick the PF Source node, the Available Events dialog pops out. Choose both the "PF Source 001→PF Source 001" and "PF Source 001→Event 001".





For the PHXSource-Missile-Smoke:

  • Set the Emit Mode to Surface Force and animate its value
  • Animate the value of the Temperature
  • Set the Smoke to 1.0
  • Set Motion Vel. to 1.0
  • Set the Prt Shape option to Sphere, 1 voxel





Now, let's go to Graph Editors/Track View → Curve Editor and set keys to the curve of PHXSource-Missile-Smoke's Outgoing Velocity. Set keyframes to Outgoing Velocity, so it can change over time.

Each frame and value are shown in the screenshots.





Here is a table with keyframes for the PHXSource-Missile-Smoke's Outgoing Velocity


Frame

Value

Tangent type

0

0.0

Stepped

50

0.0

Slow

55

40.0

Fast




Go to Graph Editors/Track View → Curve Editor and set keys to the curve of PHXSource-Missile-Smoke's Temperature. We set some keyframes to Temperature parameter, so it can change over time.

Each frame and value used in this tutorial are shown in the screenshots.

We animate the Temperature value, making the fiery smoke heat up gradually. This makes the ignition process more realistic.





Here is a table with keyframes for the PHXSource-Missile-Smoke's Temperature you can use. 


Frame

Value

Tangent type

0

0.0

Stepped

50

0.0

Slow

55

3500.0

Fast




Select the Simulation rollout of the Phoenix Fire/Smoke Simulator. Since the smoke animation starts at frame 50, set the Start Frame to 49. You don't have to simulate the full length of the animation. Only a sample is enough, so set Stop Frame to 90.

Press the Start button to simulate.





Here is a preview of the simulation up to this step.

To improve the fluid simulation, we switch the conservation method to PCG Symmetric in the next step.

To enable the GPU Preview, select the SimulatorPreview rolloutGPU PreviewEnable in Viewport.



Switch to PCG Solver


Select the Phoenix Fire/Smoke Simulator and change the Conservation Method to PCG Symmetric, with a Quality of 80.

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





Here is a preview animation of the simulation with the PCG Symmetric option switched on.



Cooling


Now the smoke swirls better, but it stays hot for too long. To tackle that, select the Phoenix Fire/Smoke Simulator and go to the Dynamics rollout. Increase the Cooling to 3.

With the new dynamics settings, run the simulation again.





Now the hot smoke cools faster. The short tail of the hot smoke combined with the long streak of the cool smoke makes it look more convincing.



Adjusting Smoke Buoyancy


To make the smoke float up faster, select the Fire/Smoke Simulator, go to the Dynamics rollout and set the Smoke Buoyancy to 20.0. With the new Dynamics settings, run the simulation again.





This example shows the scene after adjusting Buoyancy.



Adding Plain Force


For additional realism of the simulation, we use a Phoenix Plain Force to simulate the effect of wind.

Go to Create Panel → the Helpers tab → Phoenix and add a Phoenix Plain Force. This is a simple directional force.

The exact Position of the Plain Force in the scene is XYZ: [23.0, -69.0, 19.0].

Rotate it so that it points to the minus X direction and set the Strength to 5.0 m. Set the Drag to 0.1. Enable the Apply Force Behind Icon option.

The exact Rotation of the Plain Force in the scene is XYZ: [-90.0, 0.0, 0.0].

Remove Liquid from the Affect list, because later that causes it to blow on the ocean surface. The ocean liquid is controlled purely by displacement.

When enabling the Apply Force Behind Icon option, the force is applied behind the helper icon. If disabled, the fluid behind the icon is not affected by Plain Force.



Up-res grid resolution


In order to get a more detailed result we also increase the Grid Resolution by lowering the Cell Size for the final simulation.

Open the Grid rollout and set the following values:

  • Cell Size0.156 m
  • Size XYZ: [ 50, 50, 75]


Press the Start button to run the simulation.





As seen in the example, the smoke is slowly drifting to the right.



Adding noise to the Missile Fire/Smoke source


Let's give the PHXSource_Missile_Smoke some randomness. Set its Noise to 0.05.

Run the simulation again.





Here's how it looks like.



Randomize the Dynamics


The Randomize options add random fluctuations in the fluid's velocity for each grid voxel. It reduces the smoke's trail volume, producing interesting effects.

With the Fire/Smoke Simulator selected, go to the Dynamics rollout. Set the Randomize Amount to 0.15.





To simulate the full length of the animation, go to the Simulation rollout and enable the Timeline option for the Stop Frame. Press the Start button to simulate.





Here is a preview of the sim animation so far.





The smoke looks thin and dark.

In this case, the render shows the 86th frame. You can render any frame(s) you like.



Volumetric Shading


Go to the Fire/Smoke SimulatorRendering rollout and click on the Volumetric Options. Adjust the color gradient and the curve as shown in the image.

The color gradient is set to black-red-orange-yellow representing fire color at different temperatures, from coolest to hottest. Note that the green region highlighted in blueish-green shows the temperature data range for the current timeline frame. When you scrub the timeline, this area changes as the grid content changes. In this case we have fire temperatures ranging from 0 to around 2250 Kelvins. When you set the color ramp and curve, make sure they are within the range of the green area because this is the data that is actually rendered for this frame.

Use an S-shaped curve. From left to right, the curve begins with the highest value of Y, then goes down at the highest temperature. By doing so, Phoenix retains most of the details for the higher temperatures, avoiding color washout.





In the Smoke Color rollout, set the Constant Color to pure white (RGB: 255, 255, 255). Then, increase the Master Multiplier to 2.0. Set the Simple Smoke Opacity to 0.99.

Even though we set the smoke color to pure white, it might look gray when rendering. So, let's adjust the Master Multiplier of the Smoke Color to a higher value ensuring enough whiteness.





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





Here's a render of the current step of this scene.



Smoke Absorption color


To further enhance the realism of the smoke trail, select the Phoenix Fire/Smoke Simulator, go to Rendering rollout → Volumetric Options. In the Smoke Opacity rollout, set the Absorption Constant Color to RGB (96, 96, 117).

In this tutorial, the Absorption Constant Color is set to sky blue, but you can choose other colors that match your environmental lighting.





Now we have a white smoke trail with a subtle bluish tint. The ratio of the hot afterburn to the cold smoke trail looks convincing.





The Fire/Smoke Simulation is completed. Now let's move on to the liquid part of this tutorial. In the Scene Explorer, click on the Eye Icon on the left of PhoenixFDFire node entry to hide the Phoenix FD Fire/Smoke Simulator.



Liquid Simulation


Let's now take care of the liquid simulation. Go to Create PanelCreate GeometryPhoenixFD PhoenixFDLiquid.

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

Open the Grid rollout and set the following values:

  • Cell Size: 0.21 m
  • Size XYZ: [130, 130, 154]
  • Container Walls: Open to X, Y and Z

The Simulator size roughly covers the splashes of the missile launch. This optimizes the simulation and avoids cropping the particles at the simulator's boundaries.





Select the Output rollout of the PhoenixFDLiquid. Leave everything at their default values.





Select the PhoenixFDLiquidScene Interaction rollout. Press Add and choose PF Source in the Scene Explorer.





Let's prompt the Available Events window. Choose both the "PF Source 001→PF Source 001" and "PF Source 001→Event 001" options and press OK. Now all PFlow particles are excluded from the liquid simulation.

If PF Source is not added in the Scene Interaction exclude list, the particles push the liquid during simulation and create undesired effects.



List of Liquid Sources and their Settings


Here are the three Liquid Sources that we use in this tutorial:

  • The Missile is the first geometry used for a liquid source
  • Geosphere is added as a liquid source to enhance the splashes
  • Cone geometry is added to generate a large number of splashes after the Missile smoke hits the ocean surface


Liquid Sourcre

Emit From

Emit Mode

Outgoing Velocity

Emitting Particles

Motion Velocity

LiquidSrc-Missile

Missile

Surface Force

Frame 19 – 2

4 -> 0

-

1

LiquidSrc-GeoSphere

GeoSphere

Surface Force

Frame 18 – 19

40 -> 0

-

-

LiquidSrc-Cone

Cone

Surface Force

Frame 59 – 61

70 -> 0

Splashes

-

Adding Missile Liquid Source


Create a Phoenix Liquid Source in the scene by going to Create PanelCreateHelpersPhoenixFDPHXSource. Rename it to LiquidSrc-Missile.

Press the Add button to choose which geometry to emit and add Missile entry to the Scene Explorer.





For the LiquidSrc-Missile:

  • Set the Emit Mode to Surface Force and animate the Outgoing Velocity value
  • Enable Emit Liquid
  • Set Motion Vel. to 1.0





Go to Graph Editors/Track ViewCurve Editor and set keys to the curve of the Liquid-Missile's Outgoing Velocity. We set keyframes for the Outgoing Velocity, so it can change over time. The frames and values are shown in the screenshots.

The Curve corresponds to the Missile launch from underwater which gradually loses its speed.





Here is a table with keyframes of the Liquid-Missile's Outgoing Velocity


Frame

Value

Tangent type

17

0.0

Stepped

19

4.0

Linear

21

2.35

Linear

22

0.0

Linear

Set Initial Fill Up


Go to the Dynamics rollout of the PhoenixFDLiquid. Set the Initial Fill Up % to 10.0. Enable both Foam and Splash/Mist option. Leave everything else here at their defaults.

In the Rendering rollout, set the Mode to Cap Mesh. Set the Ocean Level % to 10.0. It's the same value as the Initial Fill Up.

The desired effect is the missile launch to generate Splash/Foam/Mist particles. Waves and liquid particles are not so important. Therefore, we minimize the Initial Fill Up to 10% to save us some simulation time.

During the development stage, set the rendering mode to Cap Mesh, since it is lighter in the viewport.



Setting Particle Shaders


Enable the Foam option. When asked if you'd like a Phoenix Particle Shader generated for the Foam particles, select Yes. This automatically sets up the link between the Foam particles group, the Shader, and the Liquid Simulator. Same goes when you enable the Splash/Mist option for the Splash.





Now there are two Particle Shaders in the scene. Rename them to ParticleShader-Foam and ParticleShader-Splash respectively.

Set the Mode of the ParticleShader-Foam to Points. Leave the other settings at their defaults for now.





As for the Mist particle, you have to create a new Particle Shader for it manually.

Go to Create PanelPhoenixFD and press the PHXFoam button to create a new Particle Shader in the scene. Rename it to ParticleShader-Mist.





With the PhoenixFDLiquid Simulator selected, simulate one frame. This step allows Phoenix to generate a Foam/Splash/Mist particles list in the scene.





With the ParticleShader-Mist selected, go to the Modifier Panel. Press the Add button to choose the PhoenixFDLiquid entry in the Scene Explorer, then press OK.





Prompt the Available Events window and choose the Particle[Mist]of[PhoenixFDLiquid001]. Press OK.

If Phoenix has not ran the Liquid Simulation before, you will not see any particles in the list of Available Events.





Set the ParticleShader-Mist's mode to Fog. Disable the Volume Light Cache option.

Now all three Particle Shaders for the Foam/Splash/Mist particles are set.

The Volume Light Cache for the ParticleShader-Mist needs to be disabled, otherwise there is some obvious GI flickering in the final rendering where the mist particles are distributed. This is due to the special case we have with the Fire/Smoke Simulator in the scene.





You can see splashes coming out of the water when the missile is launched. But there are not enough splashes and the distribution of the particle formation is not optimal.

The Plain Force created in the previous step also blows away the particles simulated from the Liquid Simulator.



Change Preview Color


To see which particles are which more clearly, let's change the color swatches for the different particle types. Select the PhoenixFDLiquid in the scene and go to its Preview rollout. Set the Splash, Mist, and Foam to Blue (RGB: 0, 0, 255), Red (RGB: 255, 0, 0), and Green (RGB: 0, 255, 0) color respectively.

Disable the Liquid Preview by unchecking its Show option, so we can track the distribution of the Splash/Mist/Foam particles by their color.

Set Scale Color By to No Scaling for all particle types.

The exact RGB color for the particle preview is not critical. You can choose other colors as long as they are distinguishable.





Here is a preview of the simulation.

The Mist particles outnumber the Splash ones and they are also overlapping. This makes the blue Splash Particles barely visible in the preview.




Adjusting the Foam amount


In the Foam rollout, increase the Foam Amount to 10.0. Lower the Birth Threshold to 1.0m.

Run the simulation with the new settings.





More Foam particles are generated after the Missile launch. However, the Foam rises too fast and is cropped by the Simulator.



Increase Foam Max Outside Age


Select the Foam rollout. Set the Max Outsize Age to 4.0 and B2B Interaction to 0. Decrease the Rising Speed to 3.0m. and the Falling Speed to 30.0m.

Run the simulation with the new dynamics settings.

To prevent any cropping at the Simulator's boundaries, instead of increasing the height (z) of the Simulator, we increase the Max Outsize Age of the Foam. The unit for age is Seconds. Since the scene's FPS is set to 30, the Foam particles last for 4 X 30 = 120 frames. Enough time for the Foam particles to display throughout the whole animation.

The B2B Interaction controls the internal interaction between Bubbles (bubble-to-bubble interaction). This option is used when the Foam particles should have a volume. It forces a proper distance between the Bubbles and keeps them stuck together. This parameter controls the number of interactions per second. Higher values result in better preservation of the Foam's volume. In this case, the interactions are not so critical, so we set it to zero.





Now we have Foam particles shooting up and they continue flying even outside of the Liquid Simulator's boundaries.



Adjust Splash/Mist


Select the Splash/Mist rollout. Reduce the Splash to Mist to 0.05 and increase the Mist Amount to 300.0. Set the Max Outsize Age to 4.0.

Run the simulation again with the adjusted settings.

Not much Mist is needed here, so reduce the Splash to Mist to 0.05.





Let's check the simulation.




Adding Geosphere Liquid Source


The shape of the Splash from the Missile is currently not what we are after. Also, the amount of Splash is not enough.

Let's create another Liquid Source in the scene by going to Create PanelCreateHelpersPhoenixFDPHXSource. Rename it to LiquidSrc-Geosphere.

Press Add to choose which geometry to emit. Click on the GeoSphere entry in the Scene Explorer.





For the LiquidSrc-Geosphere:

  • Set the Emit Mode to Surface Force and animate the Outgoing Velocity value
  • Enable Emit Liquid





Go to Graph Editors/Track ViewCurve Editor and set keys to the curve of LiquidSrc-Geosphere'Outgoing Velocity.

Set keyframes for the Outgoing Velocity, so it can change gradually. The frames and values are shown in the screenshots.

Set keyframes for Tangents to Stepped, too.

Run the simulation again.

In Frame 18 the missile emerges from the ocean. If you change the animation of the missile, you need to adjust the animation curve for the Outgoing Velocity of LiquidSrc-Geosphere accordingly.





Now the splashes coming out of the sea are stronger.




Adding Cone Liquid Source


Now let's create a Phoenix Liquid Source in the scene (Create PanelCreateHelpersPhoenixFD PHXSource). Rename it to LiquidSrc-Cone.

Press the Add button to choose which geometry to emit. Click on the Cone entry in the Scene Explorer.





For the LiquidSrc-Cone:

  • Set the Emit Mode to Surface Force and animate the Outgoing Velocity value
  • Enable Emit Liquid
  • Enable Particles. Set the Type to Splashes with a value of 40.0.





Go to Graph Editors/Track ViewCurve Editor and set keys on the curve of LiquidSrc-Cone's Outgoing Velocity.

Set the keyframes for Outgoing Velocity, so it can change over time. The frames and values are shown in the screenshots.

All keyframes are set to Tangents to Stepped.

Run the simulation again.

Frame 59 shows when the Missile Smoke Burst hits the ocean surface. Increase the Outgoing Velocity at Frame 59.





You can see a large number of splashes coming out of the ocean when the missile smoke hits the ocean surface.

The slope of the Cone gives the desired shape to the splashes in this tutorial. You can customize your splashes with a different geometry.

In this example, the interaction between Smoke/Fire Simulation and the Liquid simulation is mocked.



Set up Ocean Texture for displacement


With the PhoenixFDLiquid selected, go to the Rendering rollout and switch the Mode to Ocean Mesh. Set the Off-Screen Margin to 15.0.

The Off-Screen Margin allows you to extend the ocean further from the borders of the camera view. If we leave it at 0 in this case we get an unwanted pop-up of the ocean surface when the displacement is applied between Frame 99 and Frame 100 at the edge of the ocean.

To add details to the ocean surface, enable the Displacement option. Plug in a PhoenixFDOceanTex in the Map slot.

Click and drag it to the Material Editor (as the Copy option creates a copy of this Map - you want to use the same texture for both sources, instead of being forced to deal with 2 separate PhoenixFDOceanTex). Rename the texture to OceanTex.

Here are the values for the OceanTex parameters that we use in this tutorial:

  • Control by Wind Speed to 5.0m
  • Level of Detail to 12
  • Sharpness to 0.9
  • Velocity Coherence to 0.1
  • Wave Crest to 0.5


Set Coordinates Z Angle to 90.0, so that the direction of the ocean waves aligns with the direction of the PlainForce in the scene. If you change the orientation of the PlainForce, adjust the Coordinates of the Ocean Texture Map accordingly.

345344 is the default value for the PhoenixFDOceanTex's seed. Leave it at its default value.

The value of the Wind Speed set for the PhoenixFDOceanTex is the same as the PlainForce set for the Missile smoke trail in the previous step. These coordinated settings make the shot visually more convincing.

Velocity Coherence controls the degree of variation in the Wave Direction. When this value is set to 1, all waves move in the same direction, as they do in coastal areas. When set to 0, all waves move in random directions, as they might in the open seas.



Water Material


Let's take a look at the water material now. Create a V-Ray Material and assign it to the PhoenixFDLiquid Simulator.

Set the Diffuse color to black.

Reflect and Refract colors are set to white - it produces a completely transparent material if the Index of Refraction is set to 1 (which is the IOR of clear air). But let's set the IOR to 1.333, which is the physically accurate Index of Refraction of water.

Set Max depth to 8 for both Reflection and Refraction.

To slightly blur the specular highlights produced by the sources of illumination in the scene, reduce the Reflection Glossiness to 0.85.

If you render now, you'd notice that the water is completely transparent and does not look like ocean water.

Instead, let's set the Fog color to RGB : [53, 146, 125] and set the Depth to 300.0. This produces the type of shading expected in a large body of water containing all sorts of particulates that interfere with the light rays.





In the Scene Explorer, click on the Eye Icon on the left of PhoenixFDFire node entry to unhide the Phoenix FD Fire/Smoke Simulator. Now we are ready to render both the Liquid and the Fire/Smoke effects in the scene.





The Mist looks too thin in the shot.





Because the Mist particles are in Fog mode, we can skip rendering the Fog with Motion Blur. When we run a test render, a warning message appears. Select "Do not show this message again" and press OK.



Adjusting the Particle Shaders


With the ParticleShader-Mist selected, set the Color swatch to Gray (RGB: 155, 159, 148). Increase the Fog Density to 0.4.





Now the Mist appears thicker. However, the Foam appears too grainy. Both Foam and Splash look overexposed. Let's see how to adjust these.





With the ParticleShader-Foam selected, set the Color swatch to a Bluish-White color (RGB: 180, 198, 198). Decrease the Point Radius to 0.5.

The Point Radius controls particle size in pixels. Therefore, the apparent radius in a final rendered image is affected by the image output resolution. You can find an example here.





With the ParticleShader-Splash selected, set the Color swatch to a Bluish-White color (RGB: 180, 198, 198).





The Foam looks thinner now. But you can still see black artifacts on the ocean surface, especially the far side of the ocean.



Alleviate the Ocean mesh artifact


With the PhoenixFDLiquid selected, go to the Rendering rollout and increase the Ocean Subdivs to 3.0.

When generating the far areas of the surface, the Ocean Subdivs determines how many vertices are generated for each pixel of the image. Like with V-Ray subdivisions, the square of the parameter value is used. For example, if you increase the number of subdivisions twice, the number of vertices grows four times. Do not to set the value too high.





As you can see, increasing the Ocean Subdivs alleviates the black artifacts on the ocean surface.



V-Ray Frame Buffer


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





The final image is rendered using the V-Ray Frame Buffer with the color corrections and post effects set to:

Filmic Tonemap:

  • Type - Hable;
  • Shoulder strength: 0.160;
  • Linear strength: 0.280;
  • Linear angle: 0.300;
  • Toe strength: 0.620;
  • White point: 1.500.


White Balance:

  • Temperature: 5641.5.


Exposure:

  • Exposure: 0.094;
  • Highlight Burn: 1.0;
  • Contrast: 0.230.


Lens Effects:

  • Opacity: 0.690;
  • Size: 26.140;
  • Intensity:1.080;
  • Bloom: 0.400;

The Filmic Tonemap allows to simulate film's response to light with VFB.

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





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





And here is the final rendered result.