Download

[Community Project] WIP Weather & Ocean Water Shader

Yeah the foam is no where near ideal, I left it in as I have not come up with a better system yet unfortunately. Do you have any more info on the AO technique? Moving it out of base color would help as I don’t like calling DepthFade so many times along the line, it is bound to cause issues (maybe even the one you show in the image). Before I added in the foam the opacity depth worked much better, now it seems to only affect the color instead of actually fading by distance.

Thanks for reporting these issues!

EDIT: Looking into this a bit more it looks like the DepthFade is inverted somehow, the translucency should pull away from in front of the camera when the value is decreased, instead it is making the areas furthest from the camera translucent first, the lower the value, the closer it comes to the camera. I’m not going to upload a new version of this until I get this sorted out, the TimeMultipler fix is fairly simple, but this is not good at all…

EDIT #2: So after some more investigating the normal output from the wave calculations is causing major problems in the DepthFade for Opacity & Base Color. I have simply removed the connection from the 2 DepthFade node’s and can see a big improvement to the overall look.

I will be updating the links shortly with this fix in place, it is not the answer to this issue but makes a big difference.

I have to say DotCam, this is really incredible work! Keep it up. I love how easy it is to customize it to your liking. Seriously great!

Hey thanks Tesla! I saw all of the requests for some kind of water system and decided to do something about it, it has been a great learning experience for me so far, but is still far from complete. Glad you like it though!

I’m just uploading the new files, there was a couple of bugs and rendering issues with the depth fade and opacity, they have been temporarily fixed, but will still be working on a permanent fix as well.

Your tutorials have been a huge help, I spent the first six months just leaning UE4 through tutorials like yours, so thank you for providing them!

Let me know if you have any ideas to improve the system! :slight_smile:

I know that there is a AO being done. But I don’t know how you can access it . it is available as a buffer. It would need to be inverted and have its contrast adjusted but in theory should provide a perfect masking solution for object penetrating the water. the other solution would be to do the math and calculate it yourself to give you more control.

I did find this. But honestly it is way over my head. http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/a-simple-and-practical-approach-to-ssao-r2753

Not sure if that would work though you are prolly going to need a solution that avoids self occlusion and only calculates for other objects.

Also note that this is not practical for the shore line and that the depth based approach is prolly more effective there.

Yeah I think that’s too far over my head as well for now, but I can see how that system would help. I was also thinking about recreating the mesh (which I am doing anyways) to use a separate material near the shoreline, only difficulty is not everyone’s shoreline is going to be the same shape. I’m also looking into constructing multiple smaller panels through the construction script, just not sure how difficult it would be to construct them so they follow the landscape (or whether that would even work in the first place :smiley: - never mind the performance implications). The material is in WSC so multiple panels will line up properly and can overlap, I’m just not sure if multiple overlapping sections are possible with the translucency issues noted previously.

Anyways thanks for the info, will test out these ideas this week.

Ok So it looks like the AO can be pulled in using a SceneTexture Node. You can then go into the list and select the AO buffer.

Not sure if this means that you just also have to generate a foam pass and then use it to mask the 2 passes after the fact or what. That part is a little beyond me. I know that is a offline rendering world we would do it that way and put it together in post.

hi
I really like this but when will Buoyancy be added to it?

HEROTPP.JPG

Please can you add some water reac/impact flash at HeroTpp body character. Thanks. :slight_smile:

Jesus Christ, this is the most intimidating material set I have ever seen. My mind melts just looking at it.

I will be adding buoyancy very soon, along with a couple other new features :wink:

This is another feature I have been working on, creating particle effects for splashes (as well as rain), I am working out the details but this should also be in the next release with buoyancy.

Ha! lol…Yeah I know it is fairly complex, even with everything placed into parameters & functions it is still a large material (over 600 instructions). If your mind isn’t melting enough from that, have a look at the math involved (this is for calculating a single Gerstner wave) :cool:

c822b522a9ddfa20a2cb4f5b36ed816e6cf32fb0.jpeg

013equ04.jpg

I just wanted to say thank you DotCam for all the hard work and making this project a reality!! It just looks sick and cant wait for your next version!! Best of luck with the next release!

Any ETA on Buoyancy?

EDIT: Had to edit my post to ask another question.

How would I go about syncing multiple Water planes together in the world composition tools to look like they are one mesh?

Just curious,

HeadClot

Nice work, the weather really makes it come alive. Particularly the lightning! Also love the foam off the rocks. As I posted on another ocean shader post, would love to see some ocean spray here and there… Still awesome without it though!

Thanks… for this free project you made… i hope this will add to UE4 Modes at Landscape :slight_smile: thanks for your answer… Good luck

Just wanted to say thank you for the awesome work. I can’t wait to see what you have planed for the next release.

If you feel this is a bug please report this on the Answer Hub: https://answers.unrealengine.com/ and include a link back to this post. That is also where you would want to post a feature request.

Thanks!

Absolutely amazing work, when everything is tweaked right you can create some truely fierce storms. I wish I could help but most of this is beyond me for the moment, can’t wait to see how this develops.

Gah! I just noticed your post now… Ugh… sorry HeadClot.

But some good news!! Buoyancy is almost ready, I found I was calculating the wave incorrectly from the OceanManager BP, got that fixed and I can get something to float a bit finally. It still needs a bit more work but it should be any day now!

I am creating a BuoyantMesh blueprint base classes that will allow you to set any static mesh you want, and it will calculate the mass and center of mass offset of the input mesh. It will be adjustable as well, but by default it will create 4 debug spheres around the COM of the object that get used for applying gravity or buoyant forces to each sphere so it can rock back and forth with the waves.

Regarding multiple water planes as it stands right now, you can add a second Ocean BP right next to (or even overlapping) so long as they have the same settings. But that is the least performant way of doing this, I am planning to add a Mesh Spawner in the Construction script to create multiple meshes in a grid format. The material itself is in WSC so there shouldn’t be any problems getting them to line up correctly, you can even overlap them if you need to.

Also I have been working on getting an LOD system functional to avoid the performance issues I just noted, I will have some more info on this later, but if you have any ideas you’d like to pass my way I would be all ears!

Thanks HeadClot! :slight_smile:

Thanks Steve, I have ocean spray on my list, but it’s a long list :smiley:

This actually was a bug worth mentioning, only problem is I can’t get it to happen again. The issue ended up being that the Slider value range for one variable got set to 0 when it should have been 10 after I migrated out the content from my master project. Somehow this value got changed in the process, it ended up forcing the value to 0 when I tried to adjust the value, freezing the ocean waves in place.

Anyways if I can get it to happen again I will be reporting it on AnswerHub. :slight_smile:

Thanks guys! new version should be out very soon. :slight_smile:

I love you DotCam. Superb work.