[Community Project] WIP Weather & Water Shader

Hey @Connormcfarland,

The ships are there just for the beauty, the dock rope I guess never worked and there was a map previously showing the fish swiming and it depends on a class inside the C++ plugin called FishManager. There is no tutorial, but it is recommended for new users to look the thread posts for hints on how to do some things. You got also to take a look in the several maps, and at the BP_Ocean blueprint check all the shaders available which in the list are sorted by increased complexity (sometimes also beauty) which translates into cost.

The plugin is there for anyone to use and change as much as necessary to fit his needs.

Add the FishManagerBP to your scene, open fish manager and in the default settings, at the top, you can select multiple classes of those fish, and how many of them. You have to use FishManagerBp to do , as the fish wont do anything, or will crash the editor (Another user and I both experience crashes)

As for the boats, I know for a fact the Man-O-War is drivable, and the cannons work. You could easily copy the blueprint nodes from that and put them into the smaller boat.
(Open the project setttings and check the inputs, or open the Man-O-War BP and check them there. I believe they are defined separately in each bp

Also to play with the physics rope, just grab with your left mouse button and “swing” and release. Have fun watching two boats ping pong like crazy

Also, the breakable rope, same thing, but if you “swing” hard enough, the boat will break free… but when you swing it that hard, it flys into space…

Hey, may be irrelevant, since I haven’t seen anyone post problem, but in case anyone is having it…
Since I updated to 4.18, my dynamic time of day wasn’t moving at the time scale I set. If you are having problem, you need to open TimeManager.cpp, and on line 185, multiply the value there by TimeScaleMultiplier, so it looks like : InternalTime += FTimespan::FromSeconds(deltaTime) * TimeScaleMultiplier;
It was just missing that for some reason, but after that, it works.

was already committed, into the 4.18 version on in December, however there are other issues present as well, such as using daylight saving time rapidly running the clock on the sun, and also, if you set a known lat/long time/day to a known eclipse, the sun/moon wont overlap.

Weather Update: Real time visualization of weather simulator data!


So at point, weather simulator has gotten out of my scope.

With that said, its not dead, but on hold until I can get help from someone familiar with hlsl
Meet us here on slack:
https://join.slack.com/t/oceanandwea…DMyZjIwMzZiNmE

Hi

I have been looking at project and it is great. As a result I thought I would have a go at producing my own simple water surface using gerstner waves.

I should say I am running a pro with and version 4.17.2.

I have managed to get a simple surface running but it only works when i plug the texture into world ofset position and not world displacement.

I did some searching and found 's tutorials and checked them out to and he also used world displacement, as does project.

I also found some explanations that said you needed to change the metal render, but after checking your project settings I noted they are set to use the same metal render as mine.

What is really weird is that when i run the example for project it works fine.

I am obviously missing something in a setting somewhere, could someone point me in the right direction. Do i need a special mesh or something to get to work.
I am interested in it from a learning point of view rather than just using the project

thanks

Inside the material editor, the panel with details at bottom left, did you set tesselation there as the material from " Ultra" (M_OceanUltra)? It needs to be filled exactly the same.

I am developing another plugin to use in my project and it will be sold at Marketplace aswell and it will not be based on Gestner Waves, but FFT with other features that WIP Community does not have. Mainly doing because Im involved with Cinematic productions and requires a lot more features and fidelity to real world.

The feedback on the development will be updated into thread: https://.unrealengine.com/unreal-engine/marketplace/1437186-another–plugin

Despite of development, I will still provide support and answering questions here for the WIP Community , as I think it is great and it is a solid foundation for anyone to extend it with functionalities and use inside any game.

Feel free to contact me anytime, but please remember that thread has great value for all users and it is good to share.

VaOcean has been updated to 4.15

Looking to update to 4.18, then merge with Project, under a different github repo (Stripping most of the models and maps, clean up ect)

Edit, runs on 4.16 now

I am working on aswel, updating into latest Tessendorf notes about the method. Whole thing outside Unreal for now, than convert the shaders result trying to keep the structure from project, except the shader exposing which is different per API changes in Unreal.

Let us know when the repo is ready for a check and please keep @ufna credits/copyright notice on , he is a pionner and deserves the credits.

Updated VaOcean to 4.17!!! On to 4.18!!!

If anyone knows how I can solve :
GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState</false, CF_Always/>::GetRHI();
If I remove the /* */ part, it will throw an error, while it still works, I would feel better if whatever that is trying to set is used.

Also, VS throws an error, only twice, once upon setting up the blueprint, and once when clicking on the viewport, after that it runs fine. I believe is the race condition described in the Va thread. Once updated to 4.18, I will focus on that.

Time for bed…

Oh, pics or it didn’t happen :

I am working with 4.17 (was thinking on having 4.17, 4.18 and 4.19 versions ready) and Im almost getting there. The code state was not that bad as I was thinking. Once I get there I will check again the comments Epic’s employee made about it and from what I recall was easy steps.

Since you’re on 4.17 how did you fix the code snippet I posted above?

I didn’t get there yet I guess. I just got the source from and was removing the errors. Now Im stuck in two lines, which Im not sure why it can find SetGlobalBoundShaderState() since I have already used function in another shader and all the headers are set. Probably when I fix , more appear and that code you wrote too. Unless we are basing in difference source O.O

Im at work, and likely won’t be home or I’d just link you my reference, but SetGlobalBoundShaderState is depreciated. I believe was a warning when you compiled 4.16. if you google that with POSInitializer you should find the git hub link that gives you an idea what needs to be changed (I removed 4 lines and added 6 or so)

piece of code does not belong to the VaOcean plugin, but to another plugin called LensDistortion, which is a default engine plugin shipped into. The code there is exactly the same without the comments.

Boom! Thats it. If you look back through the commits (in that exact file) you will see a comment about updating to 4.17, which is where you want to look!

Hmm I didnt get through the commits, which I see now are from 2016, but got the latest release only which is 2014/15… Oh well… work to do then…

Working on the proper version now, it is crashing in 4.16.3, but compiled successfull. I see that there are API changes at : RHICmdList.SetBlendState(TStaticBlendState<>::GetRHI()); for 4.17 and Im going to look at it now.

That piece of code and surroundings must be like:

        RHISetRenderTarget(TextureRenderTarget-&gt;GetRenderTargetTexture(), NULL);   //  was the Clear, replaced like 

        // Be sure we're blending right without any alpha influence on Color blending
        ///////////////////////////////////////////////////////////////////////
        // pre 4.17: RHICmdList.SetBlendState(TStaticBlendState&lt;&gt;::GetRHI());
        TShaderMapRef&lt;FQuadVS&gt; QuadVS(GetGlobalShaderMap(GMaxRHIFeatureLevel));
        TShaderMapRef&lt;FUpdateDisplacementPS&gt; UpdateDisplacementPS(GetGlobalShaderMap(GMaxRHIFeatureLevel));

        FGraphicsPipelineStateInitializer GraphicsPSOInit;
        RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit);
        GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState&lt;false, CF_Always&gt;::GetRHI();
        GraphicsPSOInit.BlendState = TStaticBlendState&lt;&gt;::GetRHI();
        GraphicsPSOInit.RasterizerState = TStaticRasterizerState&lt;&gt;::GetRHI();
        GraphicsPSOInit.PrimitiveType = PT_TriangleList;
        GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GQuadVertexDeclaration.VertexDeclarationRHI;
        GraphicsPSOInit.BoundShaderState.VertexShaderRHI = GETSAFERHISHADER_VERTEX(*QuadVS);
        GraphicsPSOInit.BoundShaderState.PixelShaderRHI = GETSAFERHISHADER_PIXEL(*UpdateDisplacementPS);
        SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit);
        // pre 4.17: static FGlobalBoundShaderState UpdateDisplacementBoundShaderState;
        // pre 4.17: SetGlobalBoundShaderState(RHICmdList, GMaxRHIFeatureLevel, UpdateDisplacementBoundShaderState, GQuadVertexDeclaration.VertexDeclarationRHI, *QuadVS, *UpdateDisplacementPS);
        ///////////////////////////////////////////////////////////////////////

Now there is an with the ENQUEUE_UNIQUE_RENDER_COMMAND_THREEPARAMETER, but Im going to look at it tomorrow, Im tired.