Creating an infinite ocean

I’ve searched high and low for some time now, but there doesn’t seem to be any resources, documentation or tutorials on how to create an ocean that stretches all the way towards the horizon.
Every topic keeps mentioning the VaOcean plugin, but it’s not compatible with later unreal engine versions, it’s only a partial ocean that looks great for a few square meters but probably gets repetitive once it stretches just like any other plugin, and it doesn’t explain anything about how it works.

How would one go about making this? Is it possible to create an infinite ocean that doesn’t clearly show the tiling or loses it’s effect at a great distance? Basically like how the ocean looks in CryEngine 3.

Right now I’ve just made a huge disk that increases segmentation towards the center on which I made a simple shader with reflections and normal mapping. It looks doable up close, but the tiling is obvious and in the big picture it doesn’t look like a proper ocean. More like an eye sore. Besides, if I add even 1 reflection capture sphere, the whole ocean looks flat and dark, no matter where I put it or what it’s size or strength is.

0c8fb48d75ff2d4c69951d33ece28ab2997b22e1.jpeg

Any help on how to approach this without a plugin is really appreciated.

I’ve not heard of VaOcean until now, but check out The Ocean Project.

Oh my, how could I have missed this. Certainly worth checking out.
Seeing the work put into this, I doubt it’s a matter of a ‘simple shader’. That there is a lot more to creating an ocean like this.

Thanks a lot for the link!

I’m using the Ocean Project in my own build, though I’ve heavily modified it to suit my game.

The quick and dirty of what they do for infinite ocean is:

  1. Large, world-scale plane acts as “distant” ocean
  2. Smaller, more dense mesh (i.e. more vertices) follows the camera around and displaces with the waves better
  3. Shader has a distance fade where the waves are at a different scale the farther away from the camera they are.

#3 is a general thing that can be used to reduce apparent tiling in many materials, not just for oceans. I use the technique pretty extensively in my landscape materials.

I’ll try to apply numer 3 to my own material as well. Luckily, the player can’t navigate around the sea so it’s denser mesh doesn’t need to follow the camera.

Something that does keep bothering me is how the Temporal Anti Aliasing is supposed to work. This AA method is turned on by default and is required to make the ocean’s reflection look proper. However, TAA always causes huge ghosting issues in the scene, and I mean extremely huge. The previous frame of a moving object can stay longer than a few seconds before it disappears. This makes any animated ocean look really blurry and messy. Not to mention the entire scene by itself.
Does anyone know what’s causing this and how to properly setup this AA method? It’s even present in the demo scene. It doesn’t matter if I change the screenspace reflection settings in post process, the ghosting always remains. Switching to FXAA is no option since it ruins the ocean’s reflection to the sky. I must be doing something wrong because I see crisp footage on other people’s video’s, and it would make TAA quite redundant if it always creates a ghost effect.

If you’re referring to what I think, I mostly solved it by changing the ocean setting to one of the non SSR modes, within the exposed properties of the ocean BP. I forget the actual name of the property and am not in front of the editor to look right now, but that would be my best guess for a starting point.