JBaldwin - UE4 Content Preview Thread

I FINALLY got a bit of time to begin playing around with UE4. What better way than to dive into a fun shader!
I am making an ocean shader and have roughed out some of the structural trigonometry and some of the simple physics equations. However, there is still several parameters that are not being calculated properly and some of the Trig. needs to be updated and modified. After that, I am going to be generating the smaller waves and tessellation. Once all the math is done, I will make the shader look pertty (Hopefully packed full of features such as translucent crest color) :wink:

After I finish everything, I will write an e-article and post it up on my website showing a detailed breakdown of how I constructed it.

-Jeremy-

Particular reason some parts got masked out? :slight_smile:

The math were not correct i believe like he said it will be posted when fully ready. He still has to finish the trigonometry and the smooth repetitive oscillation AKA Sine wave.

Sorry for the late reply. The masked out areas are incomplete parts of the equation. (Some of the master shader is also not finished.) Therefore I didn’t want people building those parts only to find out that the gersnter wave was squashing too much.

I am still trying to read a few papers to find out how I want to implement these.
The current equations I am using are from nVidia, however for large ocean swells and large, slow moving choppy waves, I might be utilizing some of Jerry Tessendorf’s work.

** As seen from nvidia **
Simple waves:

http://http.developer.nvidia.com/GPUGems/elementLinks/ch01_eqn001.jpg

http://http.developer.nvidia.com/GPUGems/elementLinks/ch01_eqn002.jpg

Sine Modification:

http://http.developer.nvidia.com/GPUGems/elementLinks/01equ08a.jpg

http://http.developer.nvidia.com/GPUGems/elementLinks/01equ08b.jpg

Direction vs Circular:

http://http.developer.nvidia.com/GPUGems/elementLinks/011equ01.jpg

Gerstner Waves:

http://http.developer.nvidia.com/GPUGems/elementLinks/013equ01.jpg

http://http.developer.nvidia.com/GPUGems/elementLinks/013equ02.jpg

http://http.developer.nvidia.com/GPUGems/elementLinks/013equ03.jpg

http://http.developer.nvidia.com/GPUGems/elementLinks/013equ04.jpg

Oh nice! I’m looking forward to reading the detailed breakdown of this :wink:

Nice one :wink:
Looking forward to seeing your results!

I also look forward to seeing this. Good luck!

If you want, you can use Gersner waves calculations from my own realization: Ocean shader - Work in Progress - Unreal Engine Forums . Material function is created mosly with HLSL code based on nVidia algorythm.

Thank you. The true goal of this is to really try and bridge the gap between mathematics and implementation in a modern game engine so that artists can understand. If only more people knew how wonderful and powerful the vertex animation was in UE3 and especially UE4, then it would boost their product quality. The more I talk to people, the more I find that the stumbling block is the actual conversion of math into nodes. This in-depth article will target that problem area and try to break down how things like (obtaining the sine of (equation)) can be constructed in Node View as well as (ex: Σ) is constructed with multiple complex node “trees”.

I am rusty at the more complex equations, therefore I am trying to learn a bit more from a petrophysicist “Name Withheld”, when I hit a snag. This slows the progress down a bit, but not by much.
This is proving to be a fun adventure so far, and I look forward to seeing all of the equations working in harmony.

Absolutely agree. You’re making a good thing :slight_smile:

Ufna - I really appreciate the offer. However, to try and accomplish my goal, I am building everything in nodes so that artist may do this as well. The gerstner wave is just one of several options I hope to implement. Once the waves are working right, I am going to be looking into reflectance waves, wind curve over wave crest and influence, and many other options. Then later, I will build a tessellation equation to generate the many miniature waves and noise across the ocean surface. (Hopefully a foam generator as well - Using GPU particles). Doing this in node form is most likely not going to be as efficient, but the purpose of this is to implement everything in the most easily understood way (For the community). Most people flinch at code / HLSL or become discouraged, visual feedback and easy to follow spline connections within a node editor seem to yield better results when trying to simply learn a complex object.

I’ll be really happy to participate if you not mind. I suppose I’m a big fan of ocean in UE, and my project is even open source now. You can find useful examples of ocean surface equations, height calculation both with and without tesselation, etc. Soon I’ll add foam and splashes, as it’s very important part for ships movement visuals :slight_smile: FFT will be next, because it’s much better and faster than Gerstner waves approach.

We’re working on the same things, and I’ll be happy if some of my works will be helpful to your article.

P.S. - I’ve moved Gerstner wave equation into node form: http://gyazo.com/40645b9619eb3e672d9df59debc8a390 .

Collaboration is something I am always up for (Especially when it is a project for the community). Do you happen to have skype?
It is much faster than “forum tag” :slight_smile:

Sure, PM’ed you :slight_smile:

I like you guys.

Transferring Math into Nodes in UE has always been my main struggle, if you could simplify that and make it a reality for me Jeremy that would be great! Looking forward to this!

@TheJamsh yea lots and lots of hours are needed for FX artists to figure out a load of math and all. This will be very useful to everyone in here that isn’t good with maths or even lazy :wink:

Update:
New Micro Waves
Modified Wave Algorithm
Created Ocean Swell Simulation

This is still in need of a lot more work.

1 Like

Looks really good! Keep up that work!

Looks alive! :cool:

Which spectrum did you used? :slight_smile:

For some reason that was totally hypnotising :stuck_out_tongue:

Looking forward to the final outcome.