Infinite Ocean - Lumberyard User Guide

Infinite Ocean

This feature is in preview release and is subject to change.
Open 3D Engine (O3DE), the successor to Lumberyard, is now available in Developer Preview. Download O3DE or visit the AWS Game Tech blog to learn more.

You can use the Infinite Ocean component to add an ocean surface to your level. The ocean expands to the horizon, no matter where the camera moves in the environment.

  • Ocean simulation is based on a fast Fourier transform (FFT) noise-based gradient, normal, and height maps, and mixes multiple frequencies and scale for ambient waves.

  • Players can interact with ocean waves and generate wave propagation, such as shooting at the water.

  • On higher-end machines, vertex displacement is used and supports additional water interaction, such as buoyancy and floating objects.


To enable the Infinite Ocean component, you must enable the Water gem. For more information, see Add modular features and assets with Gems.

Example Infinite Ocean Component

                Example Infinite Ocean component in Lumberyard.

Water rendering in real time is complex due to visual and physical contributing factors. For example, light behaves differently when it moves from air into water. Most sunlight reflects off the ocean, but a large amount also penetrates into the water, which absorbs light more strongly than air. The visible light consists of a rainbow with different wavelengths, which appears as different colors.

For example, blue light penetrates farther in the water, giving the ocean its blue and green colors. In contrast, the ocean absorbs red, orange, and yellow wavelengths, which removes these colors. When light hits a substance, the light does one of the following:

  • The light hits molecules of a substance and then scatters and bounces off in different directions.

  • The light passes through the substance.

  • The substance absorbs the light, either completely or only some wavelengths. In Lumberyard this is called underwater fog.

In Lumberyard, various elements such as sunlight, reflections, and environment probes contribute to how the ocean surface renders. These elements approximate how light is scattered and absorbed in the ocean.

Adding the Infinite Ocean Component

To create an infinite ocean in your level

  1. Create an entity in your level.

  2. In the Entity Inspector, click Add Component, and then choose the Infinite Ocean component.

    For more information, see Working with Components.