[Community Project] WIP Weather & Water Shader

Just want to say thanks for solution, appreciate it a lot.

My pleasure!

Hi Nilson:

Many thanks for your prompt reply. I have indeed tried but with no success. It seems no matter what the values are the wave is unresponsive. Any ideas?

Appreciate the support :slight_smile:

Please do kindly note that it was in fact working last evening. It was upon restarting the engine morning that has occurred. There have been no software updates etc. Just a shutdown and a reboot.

Not sure what the cause is but I ave been pulling my hair out for hours …

Which type is selected at BP_Ocean? Ultra?

I currently have w/ SSR & Foam selected. I have tried them all but no change in results.

Recompiled and it works now. Thanks again for taking the time to assist. Do have a good evening.

Hello, I have been looking around for a water asset that will work with Forward Rendering and MSAA. looks like an extremely big project with numerous parts that I don’t necessarily need. I attempted to export only the base folder to my project, but it said that it was missing its parent, which is the Manager, which I confirmed does exist in the folder. Is there anything specific I should do? Additionally, if anyone has tips on the best way to use so that it not only looks good in VR but also doesn’t destroy performance, I would greatly appreciate any advice!

Regards,

,
Community Project is a C++ Plugin, all you need to do is to copy and paste the entire folder and you need to copy the entire Plugins folder inside your project folder. Your project need to be a C++ one. Once the copy and paste is finished, you right-click your project file (.uproject) and select “Generate Visual Studio project files” it will assemble your project including the plugin. Once you open your project double-clicking the .uproject file or via Launcher you will be asked to compile the plugin, which you will say yes.

It takes some time to understand the project parts and setup. I would recommend to get the original project and start to strip the elements you think you dont need and see the results to understand better (since it will start working already).

Several blueprints are based (derives from) classes in C++, so it is not possible in a easy way to make the whole project to work as blueprint only. The large gains using C++ directly in project comes from the buoyancy, which is CPU bound, and will execute really fast, while a pure blueprint counterpart would not (unless nativization was used nowadays, but didnt exist when the project started).

As for the type of water you need with Forward Rendering and MSAA, with some little changes in the various water materials we have inside the project you can use it with Forward Rendering and as for MSAA I didn’t try myself changing the Project settings, be my guest. My current line of work is focused on the deferred render.

is Epic … sorry couldn’t resist. worked out of the box and I only had to track down one little project setting to successfully migrate to my project. I now have it beautiful lapping around the shores of my 64km2 map that is surrounded by Ultra Dynamic Sky and filled by Procedural Landscape Ecosystem.

The only change I had to make was adding a “Switch Has Authority” to ‘BP_Underwater’ in order to not get errors on my dedicated server when displaying the camera drip .

I love plugin and would like to thank in the community who has contributed to make plugin . :slight_smile:

1 Like

I am in the exact same situation as meuliano (I just want a water surface, and perhaps subtraction volumes, but no physics or underwater), and I’m also completely new to Unreal Engine.

I can’t complain, since is one of the few free things for Unreal Engine, and it looks very high quality, but it’s very unfortunate that it’s not prepared for blueprints, forward rendering and VR.

Hopefully some day, someone will update it for that purpose! Now I must go shopping for something that works. :slight_smile:

Did you have a look at the free asset Water Planes from Epic at Marketplace/Learn Tab? Those are quite nice, but they dont have super waves…

In order for any material to work with forward rendering you need to do two steps:

  • inside the material, mark at Translucency section, Lighting Mode=Surface ForwardShading
  • change the project settings at Engine->Rendering section, Forward Renderer, mark Forward Shading (See below)

Once you mark the option for Forward Rendering all your shaders will be compiled and takes a lot of time, so do not worry, let it do it.

After all is finished you can plug your VR gear and voilĂĄ!

I am implementing a semi- scientifically correct dynamic weather system in bp only, converting everything back to bp

Edit: Scratch all … For performance reasons I will have to move all the heavy code to c++, and expose the controlling logic to bp. While a .7 second c++ loop, vs a 2 second bp loop is not bad, since needs to run real time every second, wont work. Also considering the major speed improvements I made (2 sec per loop) to get to run fast in blueprints can also be transfered to c++, so hopefully I can get to run .2 seconds per 1 second of simulation, so there is room for everything else.

using .2 of a second for a fully dynamic and scientifically semi-acurate weather system is not a bad deal.

Edit: c++ code now runs .35 ~ .38 sec loops
[ATTACH=JSON]{“data-align”:“none”,“data-size”:“medium”,“data-tempid”:“temp_130010_1519075049667_801”}[/ATTACH]
Edit!!! now at .2 sec loops!!!:
< - - - - - Yes, thats 100 seconds of weather simulation done in 20!

Edit : .18 seconds per 1 second of weather simulation, i’m starting to lean into micro optimizations, so its time to move on! (5 year old computer anyways, should perform great!)

Pics or it didn’t happen:

As you can tell its loop/math/array heavy, but there were MANY optimizations I made to do in bp.

  • Math expression nodes are your friend for heavy math in BP

  • Array variables that were accessed more than 2x per loop were given a variable (saved a few million get/set iterations!)

  • Since we are using a 3D->FlatArray, everything is coded with “Array Indexes” aka pointers, the original code, calculated the array column index EVERY SINGLE TIME a get or set to the array was done, I removed all of them and setup “precomputed” indexes that only ran 1x per loop, vs hundreds per loop

  • Code that didn’t do anything was removed (really… there were a few spots that NEVER hit a break-point)

  • Variables in loops that were set with a value from an array, and used only once… removed (1 get is cheaper than get/set/get)

  • Removed 8+ loops:

  • 3 of the 4 major loops used a xloop -> yloop -> zloop setup, but I realized, the calculated “array index” ended up being sequential, so I used a single loop in place.

  • The 4th major loop does , but has moments where it calls (x-1, y, z), in which case there is a “torridial” function that wraps the columns and rows (can’t have negative indexes!) so there is limited optimizing here…

  • There were values calculated and then a conditional that would set the value again, those were reversed, as we should check n set before blindly calculating… 1x check n set vs 1x set, check, and maybe set again)

  • Direct references were used everywhere, to reduce overhead of copies

    Each major loop totals to about 5200, so about 28,000 loops in total per ONE “second” of simulation

    When all is said and done, the end user shall not have to worry about anything, but setting the time/day/lat/long. Which is already used by the project time manager… everything else will be in a nested blueprint, so there is no clutter when working with the blueprint.

    Just added a picture of the updated Step1, notice the use of math expressions, the removal of two loops,and how much cleaner looks (Not to mention the editor no longer lags for a few seconds over trivial changes like it used to when inside function)

I feel like i want to cry. lol is so amazing and i can’t believe you gave us a copy of .

Hey could the waves maybe have boency for the character? so he floats up and down with the waves.

It is easily do-able, there are coded “test points” that are attached to the object for the buoyancy code to use to generate the effect. I have not had time to even look in that direction yet, so if the test points are done in bp or c++, i’m not sure.

I foresee a small that you would have to over come, and that is the fact I believe the buoyancy code runs under the assumption that the object should always face up, so while a boat will work, a human character that can lie horizontally flat will turn upright, because the code does not understand you are swimming/floating.

I would try making the test points near the horizontal and vertical center of the character the dominate points, and then add a weaker test point to the head and feet (and hands?) but expect the need to play with the weight settings and placement of the test points.

was for the thread regarding NeOcean:

Maybe a job in chicanery, yes.

Really wanted a BP solution, ended up at GumRoad buying NeOcean. was gushing about the latest update. It came with zero documentation, and looked worse than the videos by far, no matter how much I wasted my time.

is happy to share that next version NeOcean is going from it’s current all Blueprints - to be a C++ and Blueprints hybrid, again. Sound familiar?

I asked for a refund, since he told me on Facebook there was a trial and would be treated “special” for buying from Gumroad, I figured there would be no problem.

First, he tells me there’s no refund.
Then he tells me he can’t refund, because of my payment method.
Then he tells me he had told me to wait, for the new website, before I bought (implying it was my fault?)
Then, after making him aware of one, he was acting like a crook, and two, my bank would deal with him, and three, I would share info with the community…

…then, he suddenly, was able to refund my money. I think. I haven’t seen confirmation yet.

If you are thinking of giving kid a job, idk “bright” is the relevant word I’d be using while discussing your available candidates.

is what I could get from masking the postprocess to a sphere, which can easily adapted to a box mask, thou for complex shapes you will still need to go for a Distance Field solution, which unfortunetely takes more time.

The video contains a small level, wich the and an island, the dome inside the and I am showing a glass material for the dome and the changes needed into the Postprocessing material for the mask and some hints on how to expand the concept.

The video: FUxQAv5FIuM

Anyone making useful stuff for project, I invite you all to “share” once in a while, makes sense since project takes a long time to accomplish and its been given for FREE.

Cheers!

+1, I’m pretty sure by the looks of the 300 forks, that many have made improvements, but never updated the fork or ran a pull request…

btw the weather simulator runs .2 second loops now! If I can get it to .1 or even .05 I would be content! (Hopefully I can share the bp exposed version of tied in with the OceanProject on my github in about a week)

I’ve opened a slack channel for those interesting in building project together:
https://join.slack.com/t/oceanandweatherue4/shared_invite/enQtMzE3NjUzNTg0MzczLWM2NTkyOTZkNmQ0ZTY2ZTYwZTI5YTQyYzk0ZTI3MzYyODQ3NWM5MDFjMzFjZjkzZTk0MGZmMDMyZjIwMzZiNmE

may sound dumb, but i am trying to sail the ships/breake the dock rope, and no keys are working, and also the fish do not swim when placed into the world so is there a type of nav mesh or something? sorry, havent found any tutorials on , but i am absolutely LOVING man!