The other two Godot repos by this person are very interesting as well. I love the level of detail they add to explaining their repos. This one is particularly interesting: <a href="https://github.com/2Retr0/GodotGaussianSplatting">https://github.com/2Retr0/GodotGaussianSplatting</a><p>Wonder if they are a student, they seem to cite other work frequently and have a strong grasp on recently published materials.
20 years ago I could spend months tweaking ocean surface in renders and not get even close to that. Amazing how good this is!!<p>Although the demo clip feels a bit exaggerated (saying this having over 50k Nm open water ocean sailing in my logbook). Waves that sharp and high would need the wind blowing a lot stronger. But I am sure that is just a parameter adjustment away!<p>Since it is in Godot I assume the rendering is real time? Does it need a monster GPU?
Things like this brought me into computers, but along the way I fell for the easy and boring life of glueing libraries, endpoints and corporate bullshit that leads to burnout.
Perhaps some day...
Different approaches, but if someone's interested in waves/ocean simulation, Acerola published some awesome (as always) videos on this topic. <a href="https://youtu.be/PH9q0HNBjT4" rel="nofollow">https://youtu.be/PH9q0HNBjT4</a> and <a href="https://youtu.be/yPfagLeUa7k" rel="nofollow">https://youtu.be/yPfagLeUa7k</a> (edit: just realised one is linked in the references, just under the real name rather than nick)
It's interesting how hard this problem is. We've been trying for decades, and we're still in the uncanny valley with it.<p>If you freeze-frame this, the peaking waves look like snow-capped mountains. It feels unrealistic because for water to have features this sharp, it would have to be quite windy -- and the wind would never be blowing straight up. Here, the sharp features would need to be directional.<p>The simulation has the swell nature of the waves down pretty well though. There isn't as much horizontal movement, as more up-and-down, which is what you'd expect to see in open water.
I spent years living on the beach. When you live on the beach, you watch the ocean for hours at a time because it’s mesmerizing and feels sensational. I wouldn’t guess for a second this was a render.
Shadertoy also has nice ones <a href="https://www.shadertoy.com/view/Ms2SD1" rel="nofollow">https://www.shadertoy.com/view/Ms2SD1</a>
This is great, but this approach will break down a bit for REALLY big waves as they become non-linear. Water waves are not sinusoidal, but are close enough for small and medium wave heights that these methods work really well. The big big waves are not only much farther from sinusoidal but the waves start interacting with each in a non-linear way that can't be captured by the linear superposition approach used here.<p>So for most sea states, this is fantastic. But if you want to do the 'perfect storm' wave or something like that, you need to use a different approach for realism.
It is very impressive, and better than anything I've seen before but think something is bit off with the swell. If I had to explain I would say that high frequency waves don't travel on top of low frequency waves the way they do in the video.
Very neat! I'm hydrodynamics by background and I wondered a long time ago why this kind of approach was not used as I always found ocean waves to look awful in movies. Once you describe ocean sea state in frequency domain, it is quite easy to give to floating objects like ships realistic motions using what we called RAO in this field (linear operator). You can also model sea disturbance (diffracted and radiated waves) caused by an object in a similar fashion.
This is astoundingly good work; even though, as other commenters have said, it could still be improved on, the fact that it achieves such a level of realism with such a simple and elegant framework is truly impressive.
Oh my - this is great!<p>Does it mention what the density of the mesh is, or is it a flat plane with no displacement?<p>Also, I wonder if there's a way to optimise the foam particles in some way. It does seem very wasteful to generate them across the whole plane, when most are culled. I wonder if the particle emission / creation could be linked to foam density?
Any other resources on empirically derived rendering/animation methods?<p>A lot of hobbyist gamedevs can think of tutorials where we "slap noise" on various things. While a good temporary use, there's an pedagogical gap between beginner and advanced methods.<p>Another that comes to mind is vegetation animation. Like ocean waves, we often see animators throw a few octaves of sin/cos on plants to simulate wind, but because it doesn't spectrally match what we see in the real world, it looks off.
I was a bit confused what use an FFT had here since I was only familiar with the Fourier transform in the _forward_ direction (compute the component frequencies of a signal given samples). But this uses the _inverse_ Fourier transform, which effectively lets you take samples of a signal given its component frequencies. Here, those component frequencies are generated by mathematical functions developed (by other researchers) to model ocean waves, which are explained in <a href="https://github.com/2Retr0/GodotOceanWaves#ocean-wave-spectra">https://github.com/2Retr0/GodotOceanWaves#ocean-wave-spectra</a>.
It looks really good.<p>Out of curiosity, I’m sure everybody has heard of the FFT. They are quite general and used all over the place, and I imagine they’d be the first thing somebody would reach for if they had to describe waves.<p>But I’d never heard of Gerstner waves. This leads me to believe that Gerstner waves are a more specialized thing. Since lots of work has already gone into rendering water, I tend to assume the method with a name I’ve never heard of was only reached for after very clever people rejected Fourier transforms for some reason.<p>But, the results look better than most of what I see elsewhere. Has something changed to enable the more conventional solution?
Great! I've shared this with every physicist I know who's not directly involved in animations.<p>Quick question from my swimming class yesterday: We know that professional swimmers use a range of technologies, both old and new, in their training. Is there currently a model that fully simulates the physics of swimming across different styles? If not, this seems like a great project idea!
While I appreciate ever more realistic water bodies, the part that game makers really struggle with is where the water encounters an obstacle.<p>I did not see any mention of this in the description. Conceivably though, this is not a huge conceptual leap right? A game maker would simply need to add logic to impact the frequencies near objects, no?
This is awesome to see! Much more progress than I have made on my gplv3 version for my system. (the original intention was to replicate Blackwake style ship combat)<p>For what it's worth, the real difficulty in gameplay is getting physics objects to interact with the waves properly.
What level of math is this?<p>I struggled in calculus over the summer but passed and am currently taking discrete math but recognized basically none of the math equations in the github project readme.
Nice, but may need to adjust the limits:
<a href="https://news.ycombinator.com/item?id=41631177">https://news.ycombinator.com/item?id=41631177</a>
The demo looks unrealistic. The waves never break. Increasinlgy steeper slops with pointy peaks travel from left to right until they just sink down towards the left.
Reminds me of Sea of Thieves<p><a href="https://youtu.be/aGogFt4bhTM?t=12" rel="nofollow">https://youtu.be/aGogFt4bhTM?t=12</a>
i live by the sea and have a sea view. when a gust comes through to stir seadogs the color is darker in patches where there is wind in small areas. You cant havr choppy weather without some of this patchy color. also the white chop never goes straight up as in the videos, but it curls at least slightly.
2 of the linked references have full implementations of very similar things, with some shared references.<p>Is there something here which godot is enabling which wasn't previously possible? It seems to be entirely GPU compute workload with particles which are available as part of all mature rendering engines
Looks awesome. Is it from a fixed perspective only? If not should show the camera rotation in the video demos so it's clear how it could be used.<p>Would be curious to see how it looks from different angles etc. as the light changes.