[Community Project] WIP Weather & Water Shader

VaOcean has been updated to 4.19

So at point I’ll be focusing on cleaning up, and uploading to the in my signature

Im so tired I just want to die. Got only 4.16 working and I think I will just take a break and do something less terrible. I will take a look again in a week, enough time to reset my mind.

@EvoPulseGaming what did you think about the performance? Im not that satisfied still.

Considering I am running it on a 6 year old mid/high range LAPTOP, it runs great. Also, 4.18 and 4.19 had rendering improvements. Particularly 4.19 with landscape tesselation lod. I haven’t tested that part actually. (Setting the material for a landscape to , I was just using the floor mesh)

Also, mixing in the infinite plane should be considered for large bodies of water

Well, just figured I have left my video card operating at lower clock speeds on core and memory to simulate a GTX 1070, so I changed back to stock speeds, and comparing with Ultra now it is running minimum 25 FPS and 35 FPS faster, so average 30 FPS which is good. There material on the FFT still not doing much, I have added some lerp for coloring, some SSS direct into material pin (not simulated), depth fade and got 347ps/136 vs, not shabby.

Im using for now a disc shaped plane large enough to hit the horizon, with high triangle density in the middle and lower density as the radius increase, total 31K triangles. Idea is to put the plane to follow the camera next, but so far it is good.

The visual from above is quite pleasant, even very far, so visually I like it. The Tessendorf technique for the middle is great but I still don’t like for the shore. I am following up the latest work released notes from Tessendorf and other techniques applied to it, particularly to the shore, so I might have a taste of what it looks like soon.

Anybody know where I can find full documentation? Settings guide etc?

All I could find was the “How to add to your project” wiki page. Yet it’s quite old… 2015

@ I’ve uploaded VaOcean 4.17/18, and uploaded a 4.19 branch.

I’m working on re-inserting the buoyancy component, so I can compare to the buoyancy component from the project for speed vs accuracy

I felt asleep while reanding all the posts from the original thread yesterday, saw the videos for buoyancy but didn’t see any comments on how to make it work. Will continue reading today and I will take a look on the 4.17 you uploaded, before touching anything, so I can at leat see if I was going to the same direction. I really want to try doing myself thou, since I want to be able to support future API changes, because as you saw it is a hard task to find information about the changes. The only quick guidance is the LensDistortion plugin Epic provides and that might not be 100% with all the things you might need.

A. You were going in the same direction.
B. LensDistortion only helped with 1 of like 10 different problems
C: solved more issues than LensDistortion:
Yet another blog...: Adding Global shaders to UE4 (up to 4.17)
Yet another blog...: Adding Global shaders to UE4 v2.0 (4.18,19)
D: There were more issues with missing functions/values that no longer were allowed to be implied
E: 4.18 didn’t require an update
F: 4.19 didn’t really require an update, they just got picky about a missing implied function

I have got it 4.17 aswell, was missing some includes and there was a mispelled function. About C, I have read RCaloca blog since when it came out and I have figured C from it too, but the is that besides him being Epic’s employee, relying on a blog instead of a more accurate documentation is a shame. While long term professionals might know what to look for, the keywords for searching and so, novices at some degree with the engine, that already have exhausted the current material pipeline and are looking for something beyond that, would find a hard way to get into shader development.

I have also followed article series when it came out too, usefull in some cases (not updated on few changes thou): https://medium.com/@lordned/unreal-e…1-c47f2da65346

Hey guys, be careful with using VaOcean as a base for a new project. The original creator adapted his code from NVidia’s OceanCS example, whole functions are directly copy/pasted. He neglected to mention , which violates the EULA that comes with the code (It mentions NVidia must be credited). There may be other licensing implications that I’m not aware of, so you may want to look into that further if you’re going to spend a lot of time improving on that code base.

Additionally, a lot of the code was written with DX10 as a target, which is a leftover limitation from OceanCS. UE4 uses DX11, and there are several improvements in DX11 that will help you write a more efficient FFT. It may even be more desirable to start from scratch…

You can find Microsoft’s adaptation of OceanCS in old blog post: https://blogs.msdn.microsoft.com/nativeconcurrency/2011/11/10/-simulation-sample-in-c-amp/

In OceanCS.zip you’ll find NVidia’s EULA and some of the code that was copy/pasted into VaOcean. If you want to see OceanCS directly, you’ll have to download Nvidia’s GPU Computing SDK 4.0.

Thanks for mentioning . I will study the material (VaOcean) and the NVidia’s EULA to decide the outcome and make it public in thread. There are plenty of works on Tessendorf FFT which we can switch over and that are trully MIT license, and we might replace as seen fit if we can’t reuse VaOcean code. I will share the best implementation with EvoPulseGaming so both will have same implementation.

From my personal understanding, the code is really replicated there, and the NVidias Eula are not even distributed, which is wrong. My understanding is that NVidia’s code can be used inside a product as binary form and be even sold, but in source format it can’t be sold, meaning it cannot appear inside Unreal Engine Marketplace as a plugin format.

I am consulting with other people about , that are more competent in copyright than me. As soon more info comes, I will post later.

I’ll add their EULA too. Thank you for the tip.

Just saw @ twitter. fellow posted a simple project with simple buoyancy. I still didn’t check it, but in the video was nice. 3D Projects - Elhoussine Mehnik

Doesn’t project already have buoyancy?

It does, but not actually working. EvoPulseGaming is looking at . It was just interesting find that other implementation. Basically you just turn on physics in any mesh and check overlap event generation and you are done. is that using a separate componente for buoyancy is more flexible, since you can pinpoint which actor can have buoyancy or not, also reducing a bit the overall number of events being generated.

I’m confused, buoyancy is working for the project… ?
Buoyancy was removed from the developer branch of VaOcean, and I walked away after merging the branch Buoyancy into the developer branch, and it did nothing.

It was not working. There is a partial code in the repository, that I didn’t care. The post above, about that buoyancy project I found, can help construct a buoyancy component. The only with that approach is that buoyancy is linear for the whole actor, so it would not work for complex objects, mainly long ones where you want to put separate buoyant components (like it is in the WIP ) to handle differences in height, shape, weight for that particular spot. There are several ways of doing it, and probably the solution from the WIP can be used for VaOcean. Anyway, I usually focus on hard things first in any project, so definitely I will not look at buoyancy right now.

Right now, I put my hands in two different Tessendorf implementations with MIT licensing and Im doing some research because I think it is best to use a source code beyond margin of doubt than one which might cause troubles. The implementation if I find it suitable (I want it working for all platforms) I will share with you, so both projects can offer for all users the same method.

Yeah , it’s a very simple implementation , it can be used in complex situations too like boats or complex shapes (I will release an AI example soon covering boat physics and navigation) .
The only limitation when using Blueprints only is how to get waves height using an optimal way!

Great see you dropping by! :slight_smile:

We do appreciate contributions on ! EvoPulseGaming is building a solid solution with and Weather consolidating everything in WIP project here to be a good asset for for FREE, so any contribution goes toward the community.