[Community Project] WIP Weather & Ocean Water Shader

That tells me it’s not linking but is compiling. Check your write permissions and make sure your using vs 2015 as administrator and check your UFUNCTION() tags

Tried what you suggested and everything is fine, but i do NOT find that lib file anywhere on my system, or the github repo?

You don’t install the plugin to your engine folder, it needs to be in your projects folder for it to work. Just create a Plugins folder in your project if there isn’t one already there and copy the files in. You will need to remove it from the Epic Games\4.11\Engine\Plugins folder first though.

If you are compiling from Visual Studio, ensure your build config is “Development Editor” and “Win64” to use the plugin from the editor. When built there should be a DLL and PDB file only.

Yes it will, and will always be that way. This project is from the community, for the community. :slight_smile:

It is already released but is still a work in progress, as in more will be continuously added. But is a full working project already.

Its created locally shouldnt be in that directory either

Awesome! I was hoping that was true.

Anyways, keep up the best work mates! I love this ocean thus far!

Is there any way to use the custom stencil with other objects that have custom stencil values? When my character who has his own custom stencil goes underwater, the underwater effect doesnt apply to him.

DotCam, TK-Master and all contributors, why not give WaveWorks a try to check the performance of their FFT method.
It turns out that Nvidia has a UE4 WaveWorks branch.

The stencil buffer can be used for many things, like object outlines and whatnot so you basically have to choose what it is used for, unfortunately you can not have both at the same time without interfering with the underwater post process in some way.
Ideally we would want the ocean mesh to write in its own texture/buffer so it doesn’t interfere with the stencil buffer but that that’s easier said than done :stuck_out_tongue:

You can try to enable/disable the custom stencil flag on your character based on where the character is (relative to the ocean surface for example).

There are 2 main problems with WaveWorks (meaning there are more problems that I will not go into in this post :p).

  1. It’s not a plugin, it’s integrated into the engine… maintaining a custom engine branch is not exactly convenient :stuck_out_tongue: neither for me or for the users.
    There is GalaxyMan2015’s branch (kudos to that guy btw!) but he is a community member, not an nvidia employee so it is not guaranteed if and when his branch is going to be updated (right now it’s still on 4.9, so you can see what I mean).

  2. It has been pretty much abandoned by nvidia (the official branch hasn’t been updated for over a year), there is also functionality that hasn’t been exposed into the engine (like height readback, which is essential for buoyancy).

So right now, I would say WaveWorks is pretty much out of the question, you are much better of using my custom VaOcean branch which has FFT and height readback working… with some performance problems that is.

Any plans for adding a light actor for night time? I really want to use your skydome for Niten but the nights are way dark.

I’ve got a programmer working on making FFT/Gerstner as simple as en enum choice. If he doesnt get to it before me, I’m learning more and more of the API and will probably port VaOceans setup in a similar way.

By the way. Does anyone know if world composition allows sound to travel between levels? I have sonar that needs to work over 50 km…

I’m having a hard time figuring out how the global wave direction parameter works. Is there a particular reason why it isn’t just a float between 0 and 360?

0 = 0 || 360 0.25 == 90d 0.5 == 180d 0.75 == 270d.

Think how much of a complete 360d rotation are you doing. Or in other words. Map range 0-360 to 0-1

Think of a UMG slider. 0-1 = 0-100%

So here’s a shot in the dark, has there been any thought about making this linux compatible?

Read the thread theres lots of talks about why it doesnt (texture limits) and work arounds (basically none, I;d suggest doing an


or however its written. I think Rama has some platform checking nodes exposed to blueprints.

One of my co-devs cant even get it working on a modern macbook so things may improve in the future with fixes by Epic.

  1. If you want to remove “Darknes in the middle of water” and “Brightness at the corners”, when looking at the water from flat surface => then:
  • Select BP_Ocean
  • Inrease Roughness to 0.3 or higher.

This was the first thing i had to do with this project. But, after that, water reflections become sux…

Also, the first thing you have to do is to “unckeck”/“disable” everything in PP_Global->Post Process Volume->Settings->Depth Of Field.

  1. This project also has Underwater!!! with good looking cutting edge!!!

keep up.

PS: i’ve also played with “CryEngine 5 Ocean” and “Unity3d Realistic Water 2.0.0”, and i wanna say that - i like UE4 Ocean Project’s water much more, but it needs very much tweaking and also optimisations would be nice.

PS2: i’ve tested “Unity 5 Ceto Ocean System” and “Unity 5 PlayWay Water”. And results:

  • Ceto Ocean System - is not worthing attention.
  • PlayWay Water - is really good water, i would say more realistic than Ocean Project (Ocean Project is more stylistic though). But has minor problems with repetition of water chunks from height looking.

Looks like the water surface on top side is different, than in the current Ocean Project. It does not have “bright corners” issue (SSR). But the bottom surface still have this issue.

Btw, when we will get this awesome new water on github?

I have one of “those questions” for once.

My sunlight is getting set to negative values which creates weird black shimmering.

I found its by clamping the cloud opacity to 0.1-1 and then multiplying the stock value by it.

So by adjusting my cloud opacity as a work around I get a skylight value in PIE of 3.5 and now it looks liek well… ****.

All washed out and stuff. No PP applied.

Any idea? Im porting dots Date/Time setup to Ultra_Dynamic_Sky-BP but worried Im just going to bring the issue over.

Hey Nsomnia,

The old BP_Sky blueprint is a mess, only half working with a lot of bugs… I’ve been moving the time/rotation calculations to the Plugin itself, allowing you to call “GetSunRotation” and accessing the current time from there. Biggest reason is blueprints only allow floats, to accurately obtain a date you need a double for JulianDay conversion.

One thing that comes to mind is that the sunlight intensity is being adjusted depending on the amount of cloud cover (check the Update Sun function). Try disconnecting SetLightIntensity from the graph to see if that is the cause.

I still need to add the moon rotation to code, but it is working well (and faster) so far. The blueprint itself needs to be built up a bit as it is just the basic skydome modified to use the TimeManager base class functions, but I plan on adding in multiple skylight cubemap captures that blend together through the day (this eliminates the skylight re-capture performance hit). There was a tutorial recently put out that should be easy enough to implement.

Things aren’t moving as fast as I would like, I’m still not doing very well so my dev time is limited. I need to fix a few minor issues first but I can update the experimental sky branch or PM you the code later if you’d like.

I’m porting your date/time lat/long setup since its easy for my new-to-ue4 devs to work with blueprints but I have no problem mashing code together I’m getting quite familiar with the API these days. Completely up to you, im still on Skype.

That is definitly where the value isgetting set to a negative value, just dont get why it gets washed out. I may have broken sometihng over the last 6 months; I’ll have to download the stock github repo and compare blueprints.