Skip to content
This repository has been archived by the owner on May 28, 2024. It is now read-only.
Vladimir Alyamkin edited this page Sep 18, 2016 · 14 revisions

Welcome to the VaOcean wiki!

IN PROGRESS (SEPT 2016)

Latest release: 0.4-a6-fix1 (09 August 2014)

Overview

VaOcean is the ocean surface simulation plugin for Unreal Engine 4.

The plugin includes:

  • Component that renders displacement and gradient (normal) maps in real time
  • Sample content, including water shader and grid meshes to be used on scene
  • Set of global shaders that perform FFT calculation and other tech stuff on GPU

Features

Some key things you should know about the VaOcean:

  • Based on Jerry Tenssendorf’s paper "Simulating Ocean Water"
  • Displacement is generated from Phillips spectrum (statistic model), processed by fast Fourier transform
  • Spectrum per-frame update, FFT and displacement map generation are performed on GPU (it's really fast!)
  • Currently algorythm uses only 512x512 maps
  • Ocean shading is running as material shader

Ocean material shader is quite simple, and can be easily extended to fit your requirements. Current shading components:

  • Water body color: using near, mid and far color mixed by Fresnel term
  • Perlin distance-based noise applied both to normals and displacement to remove pattern tiling artifacts
  • UE4 screen-space dynamic reflections. It's not the best way to handle a reflection for waves, but the only one we can use with dynamic objects like warships and VFXs now
  • Waves subsurface scattering, based on fake LightVector. To use it right way, you should pass your scene's sun location vector to material instance via blueprints.

Futher improvements are on the way! Energy-based foam, physics body reaction (like FluidSurface in UE3/UDK), splashes and bursts, rigid body swimming simulation and even more!

Installation

  1. Download the plugin source from the latest release
  2. Make a Plugins/VaOceanPlugin folder under your game project directory and copy plugin source into it.
  3. Copy global shaders from Shaders/ plugin directory to your engine installation shaders directory (f.e. ./Unreal Engine/4.4/Engine/Shaders).
  4. Compile your game project normally. Unreal Build Tool will detect the plugins and compile them as dependencies to your game.
  5. Launch the editor
Clone this wiki locally