---
title: "Stormy Sea"
canonical: "https://documentation.chaos.com/space/PHX4MAX/124629066/Stormy%20Sea"
format: markdown
---
This page guides you through the process of simulating a fishing trawler sailing in a stormy sea, using  WaveForce  and an  Active Body Thruster . Overview This is an Advanced Level   tutorial. The workflow for setting up the shot, and the Phoenix settings involved in the simulation are explained in detail. However, it's recommended that you have at least basic knowledge in lighting and materials in 3ds Max. This tutorial explores how to create a stormy sea (with waves around 1.5 meters tall) and simulate a ship sailing at sea as  Active Bodies . The ship is powered by an  Active Body Thruster , no manual keyframing is needed for the ship animation. This simulation requires  5.01.00, Build ID: 20220706  and  V-Ray 6 for 3ds Max 2018  at the least. You can download official Phoenix and V-Ray from  https://download.chaos.com . If you notice a major difference between the results shown here and the behavior of your setup, please contact us using the  Support Form . To download project files:  Want to follow along but don’t have a license?:      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 for this setup. Go to  Customize → Units 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 consists of the following elements: A  Ship  geometry and its active bodies clone; A  Phoenix Liquid Source ; Three  Particle Shaders  for the Foam, Splash and Mist particles respectively; A  Box  geometry used in the Liquid Source for the foam emission; A  V-Ray Plane  used as an infinite ground surface - sometimes the V-Ray Plane might cause flickering at the ocean border, so consider using a very large regular plane geometry placed below the liquid simulator instead; A  Wave Force  to drive waves from water; An  Active Bodies  helper for Active Bodies simulation. An  Active Body Thruster  helper to move Active Bodies (the  Ship ) with an engine force. 9. A  Phoenix Liquid Simulator ; 10. A  Phoenix Fire / Smoke Simulator  for rendering the fog; 11. A  Plain Force  as a wind force in the scene to blow the Splash/Mist; 12. A V-Ray Physical camera ( VRayCam_RnD ) for look development; 13. A V-Ray Physical camera  ( VRayCam_Final ) for the final animation; 14.  V-Ray Light Dome  for lighting; Ship Geometry and Material Here we have prepared a fishing trawler geometry for the simulation. It is a solid, single-mesh, water-tight model. If you apply a  STL Check Modifier  to the model, no errors appear. The pivot position of the ship model is fine-tuned, and if we enable the  Override Center of Mass  option of its  Phoenix node properties , the  Active Bodies  helper creates the Center of Mass helper based on the pivot of the ship automatically. So the ship can maintain balance in still water. The ship is around  14.5 meters  in length,  3.9 meters  in width and  8.5 meters  in height. The polygon faces of the ship are assigned with different face IDs, and applied with a  MultiSub-Object material  to them. Each face ID is with different diffuse color and material. We assign two different  VRayLight materials  to  ID 7  and  ID 9 . When you prepare your custom ship model, be sure to make your model a solid one. Practically, if you can't merge every part of your ship model into a single solid mesh, at least do it for the ship hull and other big features that have to interact with the liquid. The ship geometry itself is actually one of the most important steps for simulation realism. The more details you include in the ship geometry, the more secondary fluid effect (local swirling, water streams running through the drainage holes when waves impact on the ship), and the more realistic stormy sea effect you can get. So pay attention to details when creating your ship model. Because we are going to simulate the waves together with the powered ship, the underwater part of the ship geometry is also critical. Just like a ship in real life, the streamlined design of your digital ship plays an important role in the simulation results. Phoenix takes the position of the ship geometry's pivot point to create a Center of Mass helper. If you use a custom ship object, you can adjust the position of your ship's pivot point before you add it to the Active Bodies list. If you don't, you can still adjust the position of the center of the mass helper afterwards. Check the  Active Bodies Guide  for more details. On top of the MultiSub-Object material ( Ship_mat ), let's add a  VRayBlend material  (rename it to  Ship_old_mat ) to blend with a rust material ( Rust_mat ). The  Blend amount  is mapped by using a  VRayDirt  texture. This way we can have a rusty fishing trawler. You can decrease the blend amount if you want a less rust showing. In this case, we give it a value of 50.0. Scene Setup Set the  Animation Length  parameter appearing in the Time Configuration window to  230 , so that the Time Slider goes from 0 to 230. This tutorial consists of many steps to follow. To keep it concise, let's focus only on the Phoenix related steps and feel free to use the camera and light settings in the provided sample scene. For your reference, below you can find the light and camera settings. Anatomy of a Stormy Sea The image here is the final render in this tutorial. The wave can reach up to 1.5 meters in height. The image shows the typical features of a ship sailing in a stormy sea. When the ship sails against the wind in the sea, it drifts up and down while creating lots of splash and mist. You can see foam patterns forming in the sea. The wind blows from right to left The overall tone of the shot is gloomy and foggy The waves can reach up to 1.5 meters, but no tube or barrel is formed as you usually see in plunging waves. The waves here are more of the spilling kind rather than plunging ones You can see foam patterns formed on the sea surface As the ship drifts up and down, you can see a lot of splash and mist coming out, and getting blown away by the wind force Let's go through the steps and see how to build these features. Phoenix Liquid Simulation Let's create a Liquid Simulator. Go to  Create Panel > Create > Geometry > PhoenixFD > PhoenixFDLiquid . Create a liquid simulator in the scene. The exact position of the Simulator in this example scene is  XYZ: [7.33, 0.0, 0.0] . Open the  Grid  rollout and set the following values: Cell Size :  0.086 m Size XYZ: [580, 162, 109] Container Walls :  Open  to  X ,  Y  and  Z Notice throughout this tutorial, we never change the Scene Scale in the simulator's grid. The principle is to try and keep everything in the real world scale, as well as the ship size. So we try to keep the Scene Scale to the default value as much as we can. Because any changes to the parameter also change the behavior of the simulation and the Active Bodies. Select the  Dynamics  rollout of the PhoenixFDLiquid. Enable the  Initial Fill Up % . Set the value to  50.0 . This way the simulator is filled with liquid at the start of the simulation. Select the  Output  rollout of the PhoenixFDLiquid. Enable the  Particle Age  channel for the  Splashes  and the  Foam  particle systems. Select the  Preview  rollout of the PhoenixFDLiquid simulator. Enable the  Show Mesh  option. Disable the  Particle Preview  option. As for the  Rendering  rollout, switch the  Mode  to  Cap Mesh . This way only the top part of the liquid surface will be shown and allow for easier iteration. Position the Ship The ship is provided with the  Stormy_sea_max2020_start  scene. The exact position of the ship is  XYZ: [ -1.64, 0.0, 4.36] . Again, If you use your custom geometry, please make sure it is a solid, water-tight model. You can add an STL Check modifier to see if there are any errors in the model. From  Create Panel > PhoenixFD > Active Bodies , create an  ActiveBodies  helper in the scene. Add the  Ship  geometry to the  Active Bodies  list. Adding the ship to the Active Bodies list creates a center of mass gizmo in the scene. The gizmo's position is computed by the solver automatically. The Active Body Solver computes the Center of Mass of an object by looking at its volume. To simplify things, an assumption is made that all parts of the object have an equal weight. Most of the time this assumption is not true, since usually a ship is made of different density materials (metal, wood, plastic...etc). Let's correct the position of the Center of Mass in a later step. With the  Ship  geometry selected, right-click and open the  Chaos Phoenix Properties . Use the  Closest preset - Ship Hull  to set the ship density to  500.0 kg/m3 . Choose the Ship Hull preset because it is a reasonable choice for a start-up. We can fine-tune the density later. Enable the  Active Bodies  option in the  Dynamics  rollout of the simulator. Link the  Active Body Solver  to the  Phoenix Liquid Simulator . Initial Simulation Select the  Simulation  rollout of the  Phoenix Liquid Simulato r. You don't have to simulate the full length of the animation. Only a sample is enough, so set  Stop Frame  to  100 . Press the  Start  button to simulate. The ship is tilting at sea, almost capsizing.    As you can see, the position of the automatically generated COM is too high, high above the waterline. The improper position of the COM makes the ship hard to maintain balance. With the  Ship  geometry selected, right-click and open the  Chaos Phoenix Properties . Set the  Specify Density  parameter to  300.0 kg/m3 . Enable the option  Override Center of Mass . With the new density and COM, let's run the simulation again. When the Override Center of Mass option is enabled, the Active Bodies helper creates the Center of Mass helper based on the pivot of the ship automatically.  Now the ship doesn't sink, and it can stabilize on the sea surface. The ship is ready to face the wave force.    Set up a Wave Force Go to  Create Panel > Create > Helpers > PhoenixFD . Create a   WaveForce  in the scene. Enable the  Massive Wave Force  option. Increase the  Fluid Freedom  to  1.0 . Create a  PhoenixFDOceanTex  into the  Ocean map  slot of the WaveForce. Rename the texture to  OceanTex_WaveForce. Here are the values for the  OceanTex_WaveForce  parameters set for the tutorial: Control by Wind Speed to 5.0m Level of Detail to 1 Sharpness to 1.0 Velocity Coherence to 0.3 Wave Crest to 1.0 Seed to 345443 Fluid Freedom balances between the strictness of the Wave Force and the free movement of the liquid. When set to 0 the Wave Force strictly follows the used ocean texture as close as possible. Setting it to 1 allows the liquid to roughly follow the ocean texture while maintaining free liquid behavior. We set the Level of Detail to 1 in order to get simpler, non-overlapping waves. But we set the Velocity Coherence to 0.3 - so the waves can retain some degree of chaos in terms of wave direction. If you want to create a more rough sea, you can increase the Level of Detail, but keep in mind, the results of active bodies simulation might become less manageable.  If you want the waves coming from the side of the ship instead of from the front, you can adjust the Z angle in the Coordinates of the  OceanTex_for_waveforce . Give it a value of 45.0 or 90.0 for example. Now we want to simulate the  WaveForce  in the scene, so we enable the  Timeline  option for both  Start Frame  and  Stop Frame , to simulate the full length of the animation. Run the simulation again. Here is a preview animation of the simulation from  Camera-RnD . We see the ship floating in the sea, while the waves come to flap on it. In the later frames, we even see the collapsing wave forming a tube or barrel. So those waves are a plunging type of breaking waves. In the real world, there are basically three types of breaking waves: spilling, plunging and surging waves. How these waves are formed depends on the shoreline profile. When the ocean floor has a gradual slope, it tends to get spilling waves, while surging waves occur on very steep beaches. As for computer simulation, the tutorial waves rely purely on the Wave Force. There is no shore geometry in the scene at all. In this case, we are going to influence the formation of breaking waves by tweaking the Fluid Freedom of the wave force.    With the  Liquid Simulator  selected, go to the  Preview  rollout. Enable the  Velocity Streamlines  option. By doing so, we can visualize the velocity changes due to the WaveForce acting on the liquid particles. When the depth of the simulator is deep enough, we can see underwater cycles spinning passing through. Depending on the strength of the wave force, we have to adjust the grid height (z) accordingly to allow the force to take full effect on the liquid body. In this case, we see full circles spinning off of the streamlines, meaning the grid depth is high enough. Here is the preview from the Front view with  Velocity Streamlines  preview option.    We are trying to create a ship sailing in the middle of the sea, not near the shore. So let's adjust the WaveForce for forming more spilling waves than plunging ones. With the  WaveForce  selected, reduce the  Fluid Freedom  to  0.96 . Run the simulation again. Feel free to try other values for the Fluid Freedom, if you are aiming for different looking waves. The Rate of Change of the ocean texture also affects the behavior of waves. Find the example in the  Epic Ocean Waves  tutorial. This table shows the characteristics of two extreme conditions in this tutorial. Choosing other in-between values for the Fluid Freedom to meet your project requirement is also an option. Fluid Freedom = 1.0 Fluid Freedom = 0.95 Breaking Wave type Plunging waves Spilling waves Particles More splash/mist in the waves Less splash/mist in the waves Now the waves look more like spilling waves. We don't see a barrel in the waves.    Let's give power to our fishing trawler. Go to  Create Panel > Create > Helpers > PhoenixFD . Press the  ABThruster  button and create an  Active Bodies Thruster   in the scene. The exact position of the thruster is  XYZ: [ -7.33, 0.0, 3.97 ] . Note that the Active Bodies Thruster helper's X direction is aligned with the ship sailing direction. Make sure you put this helper position right on the ship's Y-axis, otherwise your ship doesn't go in a straight line. In the worst scenario, it might cause the ship to capsize. Propel the Ship with a Thruster With the  ABThruster  selected, press the  None  button and choose the ship in the scene. The ship is now powered by the  ABThruster . Reduce its  Magnitude  to  1.0m . Check both the option for  No Rotation  and  Attached to body . Run the simulation again. When enabled with the  Attached to body  option, the Thruster force acts as attached to the body - the application point and direction of the force move and rotate with the body during the simulation. The  No Rotation  option prevents the affected body from rotating due the Thruster force. Here is the preview animation for  VRay_Cam_Final . Now we start to see the ship sailing through the waves.  However, the liquid splashes look too strong. The ship's movement is also too dramatic. We can see some liquid mesh being cropped at the top.   With the  ship  geometry selected, right-click and select  Chaos Phoenix Properties . Reduce the  Motion Velocity Effect  to  0.25 . Run the simulation again. Now the liquid splash became more gentle. And the ship's movement appears more convincing.    Simulate Splash and Mist particles With the  liquid simulator  selected, go to the  Splash/Mist  rollout. Enable the  Splash/Mist  option. When asked if you'd like a  Phoenix Particle Shader  generated for the  Splash  particles, select  Yes . This automatically sets up the link between the  Splash  particles group, the Particle Shader, and the Liquid Simulator. Rename the new particle shader to  ParticleShader-Splash.  With the simulator selected, in the  Dynamics  rollout, decrease  Time Scale  to  0.9  , this will slow down the liquid a bit for aesthetics purposes. In the  Splash/Mist  rollout, increase  Splash Amount  to  800.0  and decrease the  Mist Amount  to  1.0 . In the  Properties  section, increase the  Max Outside Age  to  10.0 . With those new settings, run the simulation again. 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 Splash. The unit for age is Seconds. Since the scene's FPS is set to 30, the Splash particles last for 10 X 30 = 300 frames. Enough time for the Splash particles to display throughout the whole animation. Change Preview Color To easily spot which particles are which, let's change the color swatches for the different particle types. Select the  PhoenixFDLiquid  in the scene and go to its  Preview  rollout. Disable the  Liquid  particle preview. 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. The exact RGB color for the particle preview is not critical. Choosing other colors as long as they are distinguishable is optional. Now we start to see splash particles in the simulation. For clarity, we didn't show the Mist particle in the preview animation. You can turn it back on anytime.   To make the splashes blend better with the liquid mass, with the simulator selected, in the  Properties section of the Splash/Mist  rollout, increase the  Liquid-Like  value  to 5.0. Run the simulation again. Liquid-Like controls the ability of the splash particles to stick to each other, forming different strings and tentacles, so the splash behaves more like liquid and blends better with the behavior of the liquid mass. The higher this value, the larger the acceleration needed to break the connection. Note that larger values increase the calculation time. See the comparison images for the effect of the Liquid-like parameter  here . Now we see the splashes blend better with the liquid mesh. As the parameter's name implies, the splashes now became a bit more "liquid-like".    Adding Plain Force For additional realism of the simulation, we use  Phoenix Plain Force , a simple directional force, to simulate the effect of wind. Go to  Create Panel > the Helpers tab > Phenix  and add a  Phoenix Plain Force . The exact  Position  of the Plain Force in the scene is:  XYZ[38.85, 0.0, 5.0] Rotate the Plain Force to  XYZ[-90.0, 0.0, 90.0] . Set its  Strength  to  12.0m Set the  Drag  to  0.1 Enable the  Apply Force Behind Icon  option Affect  Splash  and  Mist  only, remove other particles in the list With the Plain Force in the scene, run the simulation again.  Now the Splash / Mist particles are blown away by the plain force, as the ship sails against the wind.    Simulate Air Effects With the simulator selected, go to the  Dynamics  rollout. Enable the  Simulate Air Effects  option. Run the simulation again. Simulate Air Effects is an option that turns on the built-in air simulator for the areas in the simulation grid which are not full of liquid. The air velocity is affected by the liquid movement, by Sources, or by fast-moving obstacles inside the Simulator. In turn, the air velocity affects and carries splash, mist and foam particles. The air simulation can dramatically increase the quality of splash and mist effects. Although the benefit of enabling the Simulate Air Effects option is very subtle in this case, we see the splash/mist is now blown away by the plain force more easily.    Let's see a front preview of the simulation with the Velocity Streamlines option enabled. We see clearly the Simulated Air Effects indeed act on the area where the grid has no liquid.    Disperse the Splash/Mist Particle Mass To alleviate the chunky looks of the splash/mist particle mass, let's increase the  Initial Vel. Rand  in the  Properties  session of the  Splash/Mist  rollout. Give it a value of  0.3 . When increasing the Initial Vel. Rand, the particles might travel way too far. To compensate that, we also increase  Splash Air Drag  to  2.0 , and  Mist Air Drag   3.0 . With those new settings, run the simulation again. Mist Air Drag controls the air friction of the mist. This value determines not only how fast the speed decreases, but also the influence of the wind. The larger this value, the larger the wind's influence is. Now the particles are more dispersed, we see less chunky or blobby looking in the splash / mist.    Enable Foam Select the  Foam  rollout of the Phoenix Liquid Simulator and enable it. A pop out window prompts us to create a Particle Shader for the foam, so select  Yes . Rename the new Particle Shader to  ParticleShader-Foam. With the simulator selected, go to  Foam  rollout. Set the  Foam Amount  to  0.05 . Set the  Birth Threshold  to  0.2 m .  Decrease the   Size to 0.006 m. Run the simulation again. Now we start to see foam particles being generated in the scene, but they are shooting upward in an unrealistic way. For clarity, we only display foam particles in the preview animation.    Improve Foam Dynamics With the Simulator selected, go to the  Foam  rollout. In the  Dynamics  section, set the  Foam Volume  to  0 . Reduce the  Rising Speed  to  0.35 . Decrease the  Falling Speed  to  10.0 . Increase the  Surface Lock  to  1.0 . Formerly known as B2B, the Foam Volume controls the internal interaction between bubbles (bubble-to-bubble interaction). This option is used when the foam 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. Now the foam movement looks much more convincing.    Expand the Sim Grid Since we have finished the essential settings of the active bodies, splash, mist and foam, let's expand the grid to a larger region. With the simulator selected, go to  Grid  rollout. Set Grid size to  XYZ: [580, 580, 109] . Adding Pre-existing Foam to the Sea To add an extra layer of realism to the shot, we like to add foam that exists before the WaveForce kicks in. From  Create Panel > Standard Primitives , create a  Box  in the scene. Set the Box's  Length  to  52.0 ,  Width  to  52.0  and  Height  to  0.1 . Set the segments for Length, Width and Height to  1 . The exact position of the Box is  XYZ: [ 7.33, 0.0, 4.67 ] . Create a thin box that is placed at the water level of the simulator (based on the value of Initial Fill Up %). Let it be with just enough thickness to brush out Foam particles from it. Right-click on the  Box  in the viewport and select  Object Properties . Enable the  Display as Box  option Disable the  Renderable  option Create a  Phoenix Liquid Source  in the scene by going to  Create Panel > Create > Helpers > PhoenixFD > PHXSource . Set the  Emit Mode  to  Volume Brush . This mode will gradually fill the volume of the emitter with particles. Press the  Add  button to choose which geometry to emit and add the  Box  entry to the Scene Explorer. When you add the Box to the LiquidSrc Emitter Nodes, a Chaos Phoenix window pops out. Choose the  Make Non-Solid  button to disable the  Solid Object  option in the Phoenix properties of the box. Solid objects act as an obstacle for the fluid and will block the liquid flow. In this case we want the emitter only to create particles and not to interact with the liquid. With the  LiquidSrc  selected, go to  Graph Editors/Track View > Curve Editor  and set keys to the curve of the source's  Brush Effects % . We set keyframes for this parameter, so that the source brushes out foam particles only in the very first frame. The frames and values are shown in the screenshot. Here is a table with keyframes for the  LiquidSrc 's  Brush Effects % .  Frame Value Tangent type 0 100.0 Stepped 1 0.0 Stepped For the  LiquidSrc : Disable the  Emit Liquid  option. In this case we don't want to emit any liquid, but only foam. Enable the  Particles  option, set the number to  800000.0 . Set the particles Type to  Foam . In order to add some variation to the foam distribution we use a texture map as a mask. Set the  Mask  type to  Texmap . Plug a  VRayCompTex  in the slot. Rename it to  Mask_for_foam . Plug a Noise texture into the  Source A  slot. Rename it to  Noise_small . Set its  X Tiling  to 0.5. Set its  Size  to 6.0;  High  to 1.0;  Low  to 0.25;  Noise Type  to  Turbulence .  Levels  to 5.0 Plug another Noise texture into the  Source B  slot. Rename it to  Noise_Big . Set its  X Tiling  to 0.3. Set its  Size  to 15.0;  High  to 1.0;  Low  to 0.45;  Noise Type  to  Turbulence .  Levels  to 5.0 Set the  Operator  to  Add(A+B) . We make the X-tiling smaller, so the texture can form a longer stripe. This is because we usually observe long foam stripes over the surface of the surfing waves. To make the shot even more convincing, let's generate foam around the ship. We use the  Mask_for_foam_A  texture map created in the previous step. Let's add another  VRayCompTex  on top of that. Rename the texture to  Mask_for_foam_B . The  Source A  slot is for the  Mask_for_foam_A  map Plug a  VRayDistanceTex  into the  Source B  slot Set the  Operator  to  Add(A+B)  For the  VRayDistanceTex : Set the  Distance  to 2.0 Set the  Far Color  to black Set the  Near Color  to white Add the ship geometry in the VRayDistanceTex  Objects  list The Distance parameter determines how wide the foam is scattered around the ship. Increase this value if you want more foam around the ship. Switch your renderer from the default Scanline Renderer to V-Ray in order to see the VRayDistanceTex and the VRayCompTex in the Material Editor. Here's the shading network in the Slate Material. You can see the connections here. Everything is all set, let's run the simulation. If the setup for this  Mask_for_foam  looks too complicated, you can find the map in the Material Editor of the  Stormy_sea_max2020_start  scene, ready to use. With the simulator selected, go to Foam rollout. Increase  Half Life  to  15.0 . Set the  Max Outside Age  to  10.0 . In the  Patterns  section, set the  Formation Speed  to  0.05 . Set  Radius  to  1.2m . With those foam settings, run the simulation again.  Now we start to see foam particles distributed over the ocean surface. We are ready for the next phase.    Set up Particle Shader for Mist We have a Particle Shader for splashes and foam already. For the  Mist  particles, we have to create a new  Particle Shader  manually.  Go to  Create Panel > PhoenixFD  and press the  PHXFoam  button to create a new  Particle Shader  in the scene. Rename it to  ParticleShader-Mist . Press the  Add  button and pick the  Liquid Simulator , then select the  Mist  particle group. When doing so, a pop out window prompts you to add  PhoenixFDLiquid  to the  Liquid Simulator slot  to the shader, press  Yes . Set the   ParticleShader-Mist  mode to  Fog . Set up Ocean Texture for Displacement With the  PhoenixFDLiquid  simulator selected, go to the   Rendering  rollout and switch the  Mode  to  Ocean Mesh . Increase the  Smoothness  of the  Mesh Smoothing  to  2.0 . To add details to the ocean surface, enable the  Displacement  option. Plug a  PhoenixFDOceanTex  in the Map slot. Drag and drop it into the Material Editor as an Instance. (the Copy option creates a copy of this Map - you want to use the same texture in the simulator and in the material editor instead of being forced to deal with 2 separate PhoenixFDOceanTex, so make sure to choose the Instance option). Rename the texture to  OceanTex_for_displacement . Enable the  Vert. Fade Level , and set it to  50.0 . Here are the values for the  OceanTex_for_displacement  parameters that we use in this tutorial: Control by Wind Speed to 6.0m Level of Detail to 20 Sharpness to 0.9 Velocity Coherence to 0.5 Wave Crest to 0.7 Seed: 345443 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 do in the open seas. The  OceanTex_for_displacement  and the other ocean texture we used for the WaveForce are two different ocean textures.  The one for the WaveFoce is designed for simple, pure waves that move in one direction, while the displacement texture is for adding small details to the ocean surface. Vertical Fade Level controls how high above the Ocean Level the displacement stops having effect. This option is needed for ocean simulations where we have liquid flying or splashing high above the ocean surface, so that the ocean displacement affects only the calm ocean surface, but does not displace the liquid flying high above the ocean, or we would be able to see small pieces of liquid move up and down as they fly due to the ocean waves displacement. Above the Vertical Fade Level there is no displacement at all, and below it the displacement is strongest near the Ocean Level and is gradually reduced moving up from the ocean surface.  In the  Rendering  rollout of the simulator, switch  Mode  from  Cap Mesh  to  Ocean Mesh . Phoenix prompts the Chaos Phoenix Warning window. Click on  Yes  to use static default geometry. 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. Keep the  Max depth  to its default value of  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.95 . If we render now, we'd notice that the water is completely transparent and does not look like ocean water. Instead, let's switch the  Translucency  to  Volumetric . Set the  Fog color  to RGB :  [46, 75, 102]  and set the  Depth  to  150.0 . Set  Scatter color  to RGB :  [44, 140, 119] . Set  SSS amount  to  0.5 . This produces the type of shading expected in a large body of water containing all sorts of particles that interfere with the light rays. Setting the Translucency to None saves some rendering time. Run a test render for  frame 177  for our current setup. See that the foam on the sea surface is too grainy. Some splash particles are way too big and some foam particles are offset from the ocean surface at the simulator's borders. Temporarily turning off motion and depth of field of the camera helps to see the rendered particles more clearly. Final Simulation For the final simulation, increase the Grid Resolution by lowering the Cell Size. Open the  Grid  rollout and set the following values: Cell Size: 0.069 m Size XYZ: [ 725, 725, 1137] Go to the  Splash/Mist  rollout and increase the  Splash Amount  to  4000.0 . Users of previous versions should note an important difference about splash regarding particle size. In version 2.2 the splash size was controlled directly, like the foam. While foam really needs direct size control, especially for the most popular usage of pouring a glass of beer or soda, the size and volume of a splash should be directly related to the amount of liquid being displaced rather than a user-specified value. In other words, in order to have a seamless transition between the splash and the liquid, the volume of the splash droplets must be equal to the volume of the liquid converted into splash. Phoenix 3.0 and newer simulates splashes according to this rule. Therefore, instead of adjusting size in the Particle Shader of the Splashes, we increase Splash Amount in the Simulator. Since the larger values decrease the size of splash particles. Here is the preview animation for the final simulation.   Run a test rendering. See the splashes appear smaller, but they are still slightly bigger than we want. And the offset foam at the border is still there.  Let's fix those issues by adjusting the Particle Shader's settings in the next step. Final Adjustment to the Particle Shaders Adjust the Particle Shaders for Foam, Splash and Mist. For the  ParticleShader-Foam : Set Mode to  Points Size Multiplier to  0.5 Count Multiplier to  4.0 Enable the  Flatten At Ocean Borders Enable and set the  Light Cache Speedup  to  0.95 For the  ParticleShader-Splash : Set the Mode to  Splashes Size Multiplier to  0.7 Count Multiplier to  3.0 Enable and set the  Light Cache Speedup  to  0.95 For the  ParticleShader-Mist : Set Mode to  Fog Count Multiplier to  1.0 Enable and set the  Light Cache Speedup  to  0.95 Increase  Fog Density  to  0.3 With the  Flatten At Ocean Borders  option enabled in Ocean Mesh mode, foam particle height fades towards the ocean level like the ocean vertices do. To maintain the volume of the Splash (liquid), when decreasing particle size in the Particle Shader, we increase  Count Multiplier  to compensate for that. The formula is Count Multiplier = (1/Size Multiplier) ^ 3. In this case, we set the  Size Multiplier  to  0.7 , therefore (1/0.7)^ 3 = 2.91545. Thus increasing  Count Multiplier  to  3.0  is a reasonable value. Enabling the  Volume Light Cache  for the ParticleShader-Mist could speed up the rendering but might cause GI flickering in the mist particles rich area. Generally, disabling the Scattering of the Mist particle shader helps enhancing the realism of the shot dramatically since it brings back the contrast in the mist-rich area.  But in this case, the environment light is not very strong, we won't see much difference whether we enable or disable this option. Find a better example in the  Epic Ocean Waves  tutorial. Feel free to adjust the settings for those Particle Shaders, in terms of  Size Multiplier  and  Count Multiplier  to fit your artistic taste. Run a test rendering. You can see now we have much refined foam particles, and enough details in the Splash/Mist area. Let's continue to the next step, turn the environment into a foggy sea. Create a Fire/Smoke Simulator In order to simulate the fog in the scene we can use a  Fire/Smoke Simulator  instead of a  V-Ray Environment fog .  While you can still use V-Ray Environment fog to achieve a similar result, in order to get a proper blending of the Particle Shader nodes with the fog you will have to enable the  Render as Geometry  checkbox in the Particle Shader options, which in most cases is slower to render. This is why in this case we will use a Fire/Smoke Simulator to emulate the fog effect.  Let's create one now. Go to  Create Panel > Create > Geometry > PhoenixFD > FireSmokeSim . The exact position of the Phoenix Simulator in the scene is:  XYZ: [ -22.0, 0.0, 0.0 ] . Open the  Grid  rollout and set the following values: Cell Size: 1.56 m Size: X: 72 Y: 72 Z: 38 Select the  Phoenix Fire/Smoke Simulator , and go to its  Volumetric Render Settings . 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 ); Reduce the  Light Cache Speedup  to  0.1 ; Set the Smoke Opacity  Based on  option to  Smoke ; In the Opacity diagram, adjust the  Y value  of the first key point to  0.03 . This way we can create a fog volume without actually running the simulation. In the  Rendering  rollout, set the  Sampler Type  to  Linear . The higher  Light Cache Speedup  is set, the faster the rendering is, but it might cause flickering in the rendering or some render artifacts, that's why we reduce its value to  0.1 . You can increase  Light Cache Speedup  depending on your scene, to speed up rendering. With the Phoenix Fire/Smoke Simulator present in the scene, let's do a test rendering.  As you can see, the ship sails in a foggy environment now. But at the same time, the image became underexposed. Render Elements In the  Render Setup > Render Elements tab , add  VRayLightMix  render element. This is necessary for relighting the scene in the VFB. V-Ray Frame Buffer Open the V-Ray Frame Buffer and use the  Create Layer  icon to add layers for  White Balance, Exposure  and  Lens Effects . Re-enable both the  Depth of field  and  Motion blur  of the  VRayCam_Final . The final image is rendered using the  V-Ray Frame Buffer  with the color corrections and post effects set to: Sharpen/Blur : Calculate Sharpen/Blur: Enabled Sharpen Amount: 1.0 Sharpen radius:0.5 Blur radius: 1.5 Lens Effects : Size: 92.0 Intensity:5.3 Bloom: 0.400 Threshold: 0.050 Exposure : Exposure: 3.23 Highlight Burn: 1.000 Contrast: 0.23 White Balance : Temperature: 9490.000 Magenta - Green tint: 0.220 LightMix: Switch to LightMix mode Set the Self Illumination Multiplier to 3.0 Feel free to use other values for the post effects depending on your preferences. We make the lights on the ship brighter in post by increasing the multiplier of the self-illumination layer of the  Light Mix . We don't increase the strength of the  VRayLightMtl , because the latter method might generate unwanted fireflies in the image. Alternatively, you can load a Rendering Preset from the  Stormy_Sea.vfbl  file that is provided in the sample scene. And here is the final rendered result (from  frame 140  to  frame 230 ).