How Games Fake Water

  Рет қаралды 183,909

Acerola

Acerola

10 ай бұрын

Get a free 30 day trial and 20% off an annual plan at
brilliant.org/acerola ! #ad
Many Acerola viewers ask the question: How do games render water? Well, real time water rendering might sound intimidating, but it turns out most video games (Final Fantasy XVI, Elden Ring, Genshin Impact, etc.) use a relatively simple technique. How convenient!
Topics covered include: Intuitive sine waves, the sum of sines, vertex shaders, fragment shaders, central difference normals, calculating normals with partial derivatives, lambert's cosine law (lambertian diffuse), blinn phong specular, why gerstner waves are cringe, euler waves, fractional brownian motion, fresnel reflectance, cubemaps
Support me on Patreon!
/ acerola_t
Socials:
Twitter: / acerola_t
Twitch: / acerola_t
Discord: / discord
Code: github.com/GarrettGunnell/Water
References:
developer.nvidia.com/gpugems/...
iquilezles.org/articles/fbm/
www.shadertoy.com/view/MdXyzX
filmicworlds.com/blog/everythi...
Music:
Afternoon Break - Persona 3 OST
Iwatodai Dorm - Persona 3 OST
In A Moment's Time - Skullgirls OST
A New Frontier - VA-11 Hall-A OST
Midori Eyes - Paradise Killer OST
GO!GO!STYLE - Paradise Killer OST
Prof. Omochao - Sonic Adventure 2 OST
During The Test - Persona 3 OST
Junes Theme - Persona 4 OST
Underground Club - VA-11 Hall-A OST
Karmotrine Dream - VA-11 Hall-A OST
Neon District - VA-11 Hall-A OST
Moonlit Melee - Skullgirls OST
Your Love Is A Drug - VA-11 Hall-A OST
Thanks for watching!
arrow in thumbnail drawn by thlurp
This video is dedicated to my friend, Alotryx.
#acerola #graphics #gamedev #unity3d #graphics #shaders

Пікірлер: 838
@Acerola_t
@Acerola_t 10 ай бұрын
Get a free 30 day trial and 20% off an annual plan at brilliant.org/acerola #ad Hope you like the video!!
@k_otey
@k_otey 10 ай бұрын
nice
@syaoranli7869
@syaoranli7869 10 ай бұрын
have you considered Tessendorf's model for Fluid Sims?
@clarkey8598
@clarkey8598 10 ай бұрын
you said it was free!
@C0nejin
@C0nejin 10 ай бұрын
Nice haircut 👍
@PlanetComputer
@PlanetComputer 10 ай бұрын
swagilicious man
@bloom945
@bloom945 10 ай бұрын
this isnt just how to make water, this is a crash course in graphics programming
@rafaelbordoni516
@rafaelbordoni516 10 ай бұрын
16:32 once I was trying to make the surface ripples of water running in a direction like a stream, and one of my attempts had small ripples that were just moving along the surface without any disturbance and I thought it was unrealistic and added some noise to it, then I saw water running down the street in the rain and it had super static unchanging ripples running along the surface, I felt really stupid
@Litl_Skitl
@Litl_Skitl 10 ай бұрын
Laminar flow babyyyyyy
@Solutra
@Solutra 10 ай бұрын
@@Litl_Skitl that isn't what laminar flow is but ok
@simonfrancis110
@simonfrancis110 10 ай бұрын
@@Solutrait is
@Solutra
@Solutra 10 ай бұрын
@@simonfrancis110 captain dissolution has done an entire video on laminar flow, watch that before you say anything else
@Litl_Skitl
@Litl_Skitl 10 ай бұрын
@@Solutra Sorry I thought you meant ripples that stayed perfectly in place. I need to read more carefully...
@LighthoofDryden
@LighthoofDryden 10 ай бұрын
BABE WAKE UP-
@UliTroyo
@UliTroyo 10 ай бұрын
Poor babe. Who can catch a nap in this house?
@noobissk3001
@noobissk3001 10 ай бұрын
It's a new acerola video!!
@naiknaik8812
@naiknaik8812 10 ай бұрын
babe, babe please why aren't you waking up
@user-kx8pu6ys5i
@user-kx8pu6ys5i 10 ай бұрын
It was 3 years ago, ​@@naiknaik8812 it wasn't your fault...
@partlyblue
@partlyblue 10 ай бұрын
​@@user-kx8pu6ys5iLook at me, son. It's not your fault.
@gustavosantos106
@gustavosantos106 10 ай бұрын
I've worked as a fisherman for a decade. A lot of that time was spent watching the sea and thinking 'there must be a logarithmic mixture to reproduce this effect'. Here comes Acerola to crown himself again.
@justinblin
@justinblin 10 ай бұрын
The man himself has come to bring us another well explained video about complex topics I will forget as soon as I try to do it myself
@compilererror2836
@compilererror2836 10 ай бұрын
this is the most accurate comment ever
@neonfoxgamer-9738
@neonfoxgamer-9738 10 ай бұрын
I swear to god staring at a thing in reality, questioning whether or not I would consider it realistic if it was presented in a video game is too relatable you explained a few concepts in this video that I took like, 2 years to figure out on my own, damn you! (but thanks for sharing it for others) now I can finally point people to a specific good video when they ask for shader knowledge
@nuvuv1
@nuvuv1 10 ай бұрын
i literally do this all the time lol. when he mentioned it in the video, i let out a sigh of relief that im not the only one who does this 😅
@GRAVENAP
@GRAVENAP 10 ай бұрын
Nobody does it like you. Explained well, entertaining, thorough, explained performance pitfalls and how to solve them, etc. Your work is a goldmine. Thank you!
@MidnighterClub
@MidnighterClub 10 ай бұрын
GPU Gems that are explained simply could be a whole series. You should do more of these.
@idrios
@idrios 10 ай бұрын
On shadertoy there's a shader called "Seascape". Even with the source code right in front of me, I've never been able to understand it. This was a phenomenal explanation and I feel like I actually understand it now.
@machaoverlord5925
@machaoverlord5925 10 ай бұрын
basically becoming game dev also means becoming mathematician for that juicy wet water
@joaoguerreiro9403
@joaoguerreiro9403 9 ай бұрын
I would say a computer scientist hahaha
@machaoverlord5925
@machaoverlord5925 9 ай бұрын
@@joaoguerreiro9403 i mean you gotta sacrifice one or two braincells to fry to create this magnificent juicy water. Not as Avatar 2 level of water but convincing splashy water.
@machaoverlord5925
@machaoverlord5925 9 ай бұрын
@@eveningcommenter6312 i would love that on vr
@seedmole
@seedmole 10 ай бұрын
I spent all day making structs do what I want them to do in my midi sequencer. This is what I needed to unwind. Hell yeah, that was some comfy overlap between audio and graphics. So many topics that are extremely familiar to someone who has spent more time with synthesizers than with code. Ultimately it all comes back to the Fourier transform when doing things involving sums of sines. Also one thing used in audio design to reduce noticeable beating (i.e. the audio analogy of tiling) is to vary each oscillator independently as a function of time. Plenty of ways to solve that issue but that's the one that immediately comes to mind for me.
@Acerola_t
@Acerola_t 10 ай бұрын
it's all waves all the way down! (also that sounds like a good idea)
@DarkSwordsman
@DarkSwordsman 10 ай бұрын
I am constantly amazed at your ability to make complex topics easy to understand and fun to watch. As an aspiring game dev and current 3D artist, thank you.
@uwunora
@uwunora 10 ай бұрын
thank GOD someone finally spoke up against screenspaced reflections
@crancpiti
@crancpiti 10 ай бұрын
I'm looking forward to the next video. The waves in Sea of Thieves look so impressive, they even have physics!
@pyrus2814
@pyrus2814 10 ай бұрын
Watching this at 0.25x speed to offset the goober who watched at 2x speed. Gotta internalize every detail.
@borgking620
@borgking620 10 ай бұрын
Awesome video, I learned a lot! Still two minor corrections/annotations: 1) frequency is not 2/wavelength, but 1/wavelength. Probably that mistake somehow slipped in with the graph at 1:46. You can see there that you are not showing sin(x) but sin(PI*x). The natural wavelength of a sinewave is 2*PI, also known as a radian. Basically this is an angle-measurement that is based upon the arclength (= traversing the surface) of a circle with the radius of one. 2) the Blinn-Phong model is NOT in any way the basis for PBR. Blinn-Phong is an approximation on the basis on artistic criteria, calculated purely for verisimilitude, not realism. PBR models on the other hand approach the calculations on the basis of physical values. For example a light in Blinn-Phong can be brighter going out than it goes in since it is added once in the diffuse and a second time in the specular breaking energy conservation. A PBR model on the other hand only distributes the total amount of light into reflection and absorbtion, so it can never be brighter than it goes in. Oh and I didn't expect you to be this young, with the quality of your videos and complexity of the topics discussed I expected you to be an industry veteran for at least a few years!
@Acerola_t
@Acerola_t 10 ай бұрын
1) gpu gems is wrong then idk 2) I added an annotation saying blinn phong is no longer considered pbr by today's standards
@nk361
@nk361 10 ай бұрын
Yes! I have been hoping for a good detailed video about FFT and iFFT realistic water. I would still like one on that spooky partial differential equation one too, but I know that it's got hands
@LiveWire937
@LiveWire937 10 ай бұрын
Acerola, you're a lifesaver. You just saved the surfing mechanic I was thinking about scrapping because until now my waves looked like an unyielding herd of gelatinous migratory hillocks. still gotta work out a more performant way to make the big waves that crash and go tubular etc., but at least now it feels like I'm on the ocean, and not lost in some sort of undulating mound dimension.
@Acerola_t
@Acerola_t 10 ай бұрын
this method I still think looks yucky for bigger waves, it looks really nice for slower water/stillwater distortion on reflections. Next vid will go over the logic behind the nice realistic big waves though!
@merlang7
@merlang7 10 ай бұрын
water is one of my favorite topics when it comes to computer graphics because there's so many ways to go about implementing it. my personal favorite video game water is Mario Galaxy, because it feels really stylized and unique, without resorting to solid colors and repetitive textures like a lot of other examples for stylized water. The toxic waste in Portal 2 also looks really nice, despite basically being brown sludge.
@a52productions
@a52productions 7 ай бұрын
I'm a physics student going into grad school, and I'm planning on working on real time fluid simulations! It's fascinating seeing it from a nonphysical, more approximate perspective. Of course Fourier series would make their appearance! The domain warping aspect is very fascinating! I would never have thought of that, but it works perfectly. It also seems to naturally result in the low regions being flat and low detail, and the high regions being spiky and high detail. That's so cool! It's also fascinating learning about all this optics stuff. That's the one bit of physics I never got. I suppose if I want to work on games (a hobby of mine) I'll have to learn it some day...
@volkoivan
@volkoivan 10 ай бұрын
It's such a pleasure to watch an ugly looking plane of sine waves slowly but surely becoming a masterpiece
@jbritain
@jbritain 10 ай бұрын
You and Sebastian Lague have made me realise I want to be a graphics programmer, and I thank you for that.
@raiton99
@raiton99 10 ай бұрын
THIS! This field is so interesting!
@Toesty5
@Toesty5 10 ай бұрын
Good luck!! You can do it!
@SpringySpring04
@SpringySpring04 10 ай бұрын
Acerola and Sebastian Lague collab when?! I also really like Sebastian's work. I remember obsessing over ant simulations about 2 years ago when I saw his ant/slime simulation videos! lol
@real_vardan
@real_vardan 10 ай бұрын
You explain those topics better than my professor, it's hard for me to understand certain equations without having an intuitive grasp about it. Your visualization really helps!
@chakra6666
@chakra6666 10 ай бұрын
It's cool to see a breakdown of how stuff usually works, but it's much rarer to see any content explaining 'better' options. Excited for the next video :)
@torphedo6286
@torphedo6286 10 ай бұрын
Nice video! This helped a lot in my understanding of lighting, other explanations I saw were really dry and didn't explain the math very well. You should also cover distortion textures! By abusing distortion and multiple scrolling textures, you can make most visible tiling go away. There's a great video by a channel named Jasper about how they used this for water in Mario Galaxy 2.
@0xC272
@0xC272 10 ай бұрын
Love the videos, mad props. One thing I do wish though is that we didn't get a 101 to graphics programming (what a normal is, what diffuse/specular are) in each video. Perhaps just refer people back to an earlier one? I know it's a difficult balance to strike to adjust it correctly for the target audience. Keep up the awesome videos!
@Acerola_t
@Acerola_t 10 ай бұрын
I'd rather each of my vids be a complete package
@LukeFlavel
@LukeFlavel 10 ай бұрын
Ever since I started watching your videos, I've been looking at real objects and thinking about the way it could be modelled digitally. Water has been the primary object of my attention, so I was ecstatic to see an Acerola water shader video! Thank you so much and I'm looking forward to more water shading stuff in the future :D
@RayDimn
@RayDimn 10 ай бұрын
I started my college degree of computer science in the beginning of this year, and even though my primary objective is not to become a graphics designer and also because i am still a noob when it comes to programing and everything, your videos still are always really amazing, informative and fun to watch. Ngl, you are even better to explain somethings than my teachers are lol, hope you grow even more here on KZfaq you deserve it
@Acerola_t
@Acerola_t 10 ай бұрын
Have fun! also graphics designers make logos not video game graphics, important distinction!
@RayDimn
@RayDimn 10 ай бұрын
@@Acerola_t noted 👍🏻
@skoovee
@skoovee 9 ай бұрын
“wow frass nal!” was far more funny than it should have been
@dmnkb
@dmnkb 10 ай бұрын
I really appreciate the quality of content that you produce! I can't remember having ever had such good, yet fun explanation on any topic!
@TeslaPixel
@TeslaPixel 10 ай бұрын
I really hope you get around to the more advanced wave methods. The result at the end of this video looks great but sea of thieves' waves are something else.
@sumdude5172
@sumdude5172 10 ай бұрын
sea of thieves waves take up half the screen 80% of the time. You bet your ass they have teams of dedicated, nda-locked programmers and artists, who are as smart and hard-working as, if not more than, a single sleep-deprived youtuber, focused solely on the water.
@TeslaPixel
@TeslaPixel 10 ай бұрын
@@sumdude5172 And this prevents a high level exploration of some of the methods how?
@Acerola_t
@Acerola_t 10 ай бұрын
give me 2 weeks idk
@someloser7991
@someloser7991 10 ай бұрын
@@Acerola_t 2 months it is, got it 👍
@0osk
@0osk 10 ай бұрын
@@sumdude5172 They did a siggraph talk in 2018 going over it. The talk was called "The Technical Art of Sea of Thieves," it's on youtube. I'm not a developer so maybe they left out some important details, but it seems pretty complete from what I can tell.
@Nuttygamer27
@Nuttygamer27 9 ай бұрын
your honestly one of the game dev people that I like to watch I find it more better of someone explaining me how it's done than someone just tell me how to make it and just coping the code without no knowledge of how it's done, and you're more entertaining to watch than a 2 hour video of someone explaining it like you video are more faster but not to fast to were I don't understand and can't follow along
@sousoulefou
@sousoulefou 10 ай бұрын
Always interesting. Love the editing, as always 😂 Keep it up!
@stradius
@stradius 10 ай бұрын
Having watched a lot of your videos back to back, it's pretty apparent how good you've gotten with pacing and delivering just enough information to explain concepts without getting lost in the details. Awesome work as always, looking forward to the next one! You did raise a good question that I've never seen a satisfying answer for: why DO games include a bunch of post-processing effects that a lot of people always turn off? Are those people in the minority? Are the effects often just not done well? Is it mostly for consoles/lower-end hardware where lower framerates need more fancy effects to compensate?
@Acerola_t
@Acerola_t 10 ай бұрын
gamers only notice when they look bad and don't have the knowledge to identify the effect when it looks good
@Dominik-K
@Dominik-K 10 ай бұрын
Love the video, great topic. Would love to see more water and PBR rendering topics
@ZTimeGamingYT
@ZTimeGamingYT 10 ай бұрын
Trigonometry and fluidity are two topics I would have never have guessed would apply in graphics together. Now, it makes sense!
@funx24X7
@funx24X7 10 ай бұрын
Totally agree about screen space reflections, they're like ants: once you notice them you see them everywhere and it totally ruins immersion.
@bastian3461
@bastian3461 10 ай бұрын
would love to see that more complicated wave motion 🕵
@voon7820
@voon7820 10 ай бұрын
Wow, expertly breakdown the details to the most basic component. Great video!
@bytezero3818
@bytezero3818 10 ай бұрын
Holy shit, the amount of information is incredible, also i love how you actually manage to keep my adhs-ruined attention span
@Ithenos
@Ithenos 10 ай бұрын
Just wanted to say that I adore your videos. They're wonderful.
@gamingtoday1418
@gamingtoday1418 10 ай бұрын
19:20 I cant believe Acerola forgot to mention the 4th forbidden reflection technique of just using a 2nd camera to render the reflections
@Acerola_t
@Acerola_t 10 ай бұрын
basically the cubemap approach
@syaoranli7869
@syaoranli7869 10 ай бұрын
I have been waiting for this video to come out! YEEEESSSSSS Thank you!!!!
@tymon7054
@tymon7054 7 ай бұрын
21:26 I'm sorry to say this, but with this rendering time you brought up a great Polish meme
@VetNovice
@VetNovice 10 ай бұрын
Nice haircut, just as fresh as your water. Those specular highlights.
@DarkSwordsman
@DarkSwordsman 10 ай бұрын
20:13 LITERALLY ME AFTER I LEARNED ABOUT HOW POWERFUL FRESNEL IS
@bobozeehax
@bobozeehax 10 ай бұрын
Heyy thanks for another informative video! You rock, Acerola! :)
@thejinxedartist
@thejinxedartist 10 ай бұрын
I do like this implementation of water, it looks quite natural and great at the same time, the approach I generally go for is just to take two noise textures and use procedural sampling so that it doesn't tile but I might start using a similar approach to this in the future. also i got a bit confused because I completely forgot about the water community post and was looking on your GitHub post processing effects for different tonemappers and saw the lens flares so yea lmao, still a great video and very informative
@Acerola_t
@Acerola_t 10 ай бұрын
I tried to implement a decent lens flare for the video but it kinda just looked like shit so I cut it
@thejinxedartist
@thejinxedartist 10 ай бұрын
@@Acerola_t yea i was a bit confused lmao, i thought it might have been like an early version or something, still a cool idea though
@DeanEdis
@DeanEdis 9 ай бұрын
One of the best explanations I’ve ever seen. Thanks!
@PhilSamoylov
@PhilSamoylov 10 ай бұрын
Trove of invaluable tricks as always! Thanks!
@Acerola_t
@Acerola_t 10 ай бұрын
Thank you so much!!
@MrMolian
@MrMolian 9 ай бұрын
You got yourself a new suscriber ! Everything was clear and explained in a fun way, keep going 😁
@alan_5127
@alan_5127 10 ай бұрын
Its always a great day when i see you upload! great vid as always
@xadxtya
@xadxtya 10 ай бұрын
I really like how you explain things, thank you
@freevbucks8019
@freevbucks8019 10 ай бұрын
14:00 - You also need to sample the collision points at least 3 times to get an accurate surface function for the CPU. It was honestly really simple once I got hang of it.
@nicj_art
@nicj_art 10 ай бұрын
IM SO HAPPY you have so many monogatari figures. bro thats my favorite anime of all time. bro just HAD to show them all off
@lunaumbra5179
@lunaumbra5179 10 ай бұрын
As a UI programmer your videos have helped me understand more about graphics than any other. Well done chap
@RoySATX
@RoySATX 9 ай бұрын
Dude, I'd be lying if I said I learned or comprehended much of what you just did, I'll be sixty next year and my short-term memory is, what was I saying? What I can say truthfully is I was able to follow along with you the whole video, you didn't lose me, my eyes didn't glaze over, and my mind didn't drift off. That's good, you have a knack for this! I wish you had been around when I was in high school, I'd have learned a lot more math and enjoyed math a lot more instead of dreading it out of fear I'd become a CPA..
@crckrbrrs
@crckrbrrs 10 ай бұрын
first off. amazing video as always, goes without saying since your quality is literally unmatched not only in the graphics rendering space but across youtube as a whole secondly, your hair looks great
@coorie
@coorie 10 ай бұрын
Great video! Excited for more water stuff next time.
@amaryllis0
@amaryllis0 10 ай бұрын
Really cool video! Only time I've done a realistic water shader is following Sebastian Lague's planet projects, using wave patterned normal maps
@blackedoutk
@blackedoutk 10 ай бұрын
Man, wish I could make videos this entertaining. Is it just a special gift you have? Really cool
@BakeBakePi
@BakeBakePi 10 ай бұрын
That's so interesting! Great explanation!
@jm-alan
@jm-alan 10 ай бұрын
The replay stats on various parts of this video are gonna go crazy and I love it
@icesentry
@icesentry 10 ай бұрын
Are you planning on covering refractions and depth effect in a future video? It would be really nice followup
@Acerola_t
@Acerola_t 10 ай бұрын
in an ideal world i will inevitably cover every topic ever but whether that's within your preferred range of time is another thing
@icesentry
@icesentry 10 ай бұрын
@@Acerola_t lol, yeah that's fair. Depth based stuff is pretty easy, but refraction would definitely take a while.
@doce3609
@doce3609 10 ай бұрын
It is always nice when a new Acreola Video rolls out
@Agent9
@Agent9 8 ай бұрын
After the opening of this video and seeing all the monogatari figures, I can finally understand why your title screens always remind me of that show! It was inspired by it!
@torikenyon
@torikenyon 9 ай бұрын
So I’ve been watching you for a while and I’ve always loved watching these videos despite me barely understanding anything. This was the first time I watched an acerola vid and felt like I actually understood most of it, so much so that it motivated me to download unity and learn shader coding to replicate this water effect. I actually managed to get a nice looking sum of sines with lambertian diffuse and blinn-phong specular! I’ve never touched graphics programming or even a game engine before and somehow this video single handedly dragged me past the barrier. But I’ve kinda been learning exclusively shader programming and avoiding learning Unity itself, apart from like, “Shader Lab” *shudders* Now it seems I actually have to learn Unity to make a script that automatically generate waves with decreasing amplitudes and wavelengths instead of entering those parameters manually
@Acerola_t
@Acerola_t 9 ай бұрын
This makes me super happy to hear! If you didn't you should definitely try reading the references in the description to sorta absorb the theory through your applied experience, that's what works best for me. There's also plenty of ways to extend the project by either doing what you said and trying to create a sort of automated weather system that can blend between different sums, or trying to layer multiple sums of differing scales to reduce the tiling dilemma, or experimenting with different waveforms, or improving the water shader itself by implementing a more sophisticated physically based shader or maybe trying to optimally stylize instead, or perhaps you wanna try and simulate buoyancy and float some objects in the water (it's pretty easy!). It's a super exciting space to work in!!!
@mrbonono2951
@mrbonono2951 8 ай бұрын
A video on fast Fourier transform would be awesome. Thanks for another amazing video acerola!
@gloober.
@gloober. 5 ай бұрын
Saw Punpun on your shelf and immediately hit the subscribe button. I already know you have good taste so the videos have to be just as good.
@DurmanHimself
@DurmanHimself 10 ай бұрын
Love your videos. Hope you get to 100k soon.
@sujalgvs987
@sujalgvs987 10 ай бұрын
I've been learning opengl recently and i wrote my own code for a wave, but it was just one sine wave, and the vertices were...cubes. And i was computing the position in the cpu. Never thought i should do it in the gpu, that's brilliant. Thanks aceroler
@samuelazeredoo
@samuelazeredoo 8 ай бұрын
I finally found a use for all the knowledge obtained from calculus classes: being able to understand Acerola's videos
@hungryporpoise5940
@hungryporpoise5940 10 ай бұрын
Holy moly it’s another acerola video it truly is a wonderful day
@Yukiixs
@Yukiixs 2 ай бұрын
I liked the fact that you chose something else than gerstner waves, which is commonly accepted for being the go-to for waves simulations, you explained why and proved that you could still have good looking water without that much complexity…
@therealyojames
@therealyojames 8 ай бұрын
Bro these videos are amazing where have you been in my yt feed all this time
@DamianReloaded
@DamianReloaded 9 ай бұрын
The algorithm seems to have picked on me talking about caustics and reccomended me "VFX Artist Explains the HARDEST Visual Effect to Make" from corridor crew. I wouldn't mind at all a third video in this series about caustics to tight the knot.
@JessWLStuart
@JessWLStuart 9 ай бұрын
Only problem with the sound addition at 21:09 is of surf sounds. When on the ocean, you don't hear waves doing anything but hitting the side of your boat sometimes. Being on a beach sounds like the surf, but being a mile out to sea sounds a lot more quite since there is almost no sound (from water) of waves hitting things. You do hear the wind on when out on the sea, depending on the height of things on your ship.
@rafaeltota
@rafaeltota 10 ай бұрын
Every other Ace video I go like that "Oh" gif, starring Chi McBride No better way to convey how this feller here makes me understand stuff that hadn't really sunk in
@KoshakiDev
@KoshakiDev 10 ай бұрын
Phenomenal video, Acerola!
@ibotje1
@ibotje1 10 ай бұрын
I really hope you'll teach us a little bit about the system sea of thieves uses. since i'm very curious to find out how they achieved such good looking water. And you have a great way of explaining these concepts and formulas, as well as visualizing every step to make it easy to follow for people who lack Graphics programming skills.
@px64
@px64 4 ай бұрын
Very well explained and I learned a lot. I think its okay to not show something on screen for every noun and verb. Sometimes it felt excessive.
@SillyOrb
@SillyOrb 10 ай бұрын
First and foremost: Beautiful results, excellent in-depth info, very entertaining and funny. Acerola continues to be one of the best graphics programming edutainment channels I know on YT. Looking forward to the follow-up video, but no pressure. We should be thankful to get these, so I am now considering signing up for Patreon, if there isn't a better (more direct) way to support these accessible, relevant and honestly simply good videos. On topic: A few years ago I created an ocean system for a game that was featuring a lot of water, both visually and mechanically. As pointed out, that Gerstner waves aren't that easy to control and that is a very good point and the reason I chose to not use them. If you need a lot of game design control over water, I found that simple and small look-up textures did the trick. Artists set up simple animation curves in the editor along with additional parameters (calm vs. stormy water looks very different, so you want different contributions from different frequency bands), which were then baked on start-up and evaluated in simulation steps on the CPU and GPU respectively. So, artists could shape waves to look like Gerstner or any other type of non-overlapping wave. They could also have multiple peaks at different heights etc. Amplitudes were controllable locally, as it was just another runtime simulation parameter, so it was easier to control the chaotic patterns when the situation demanded it. You don't want players to be frustrated, because they got unlucky with an extreme trough and couldn't reach a safe spot in time. The solution was very fast on last generation hardware and its synchronous but independent implementation meant that no data beyond basic control parameters needed to be transferred between processors. The GPU computed a height map (there was more than just waves that shaped the water) for rendering and the CPU simply computed samples on demand when queried by gameplay systems, so no height map was required (we also had orders of magnitude fewer queries than the sample count required to compute such a map).
@williammanning9323
@williammanning9323 9 ай бұрын
Speaking of sine waves, here's a neat graphics curve you can use: `sin(t * pi) ^ 0.15`. It quickly fades in and out at the outer edges near t=0 and t=1 respectively. Although I've seen weird numeric errors where when t=1, the output is not exactly 0.
@Kaboom1212Gaming
@Kaboom1212Gaming 9 ай бұрын
Something to mention with Sea of Thieves, you actually can see the repetition in the water from high viewing angles i.e. climbing a mountain. It is just very expertly hidden behind all of their other fancy work.
@Acerola_t
@Acerola_t 9 ай бұрын
yeah this is cause the fft approach is too expensive to compute in the shader so it's instead computed into a texture that tiles, otherwise there wouldn't be repetition.
@Kaboom1212Gaming
@Kaboom1212Gaming 9 ай бұрын
​@@Acerola_t That makes a fair amount of sense. It's still something I'm really interested in learning as well. Most of my stuff is done using textures too to be fair, though lately I've been baking heightmap and other data out of Houdini water sims to get an actual simulation as the baseline and then work with everything outside of that. Have you also seen their big talk about their cloud rendering system? It's quite an approach they use, they gave a whole breakdown at GDC 2019 called Sea of Thieves: Tech Art and Shader Development. I think it might be worth looking at as an approach as well for your other videos coming up, since you mentioned you were getting into cloud rendering as a subject soon too (iirc in your CS2 smoke grenade video)
@vicentetarabelli
@vicentetarabelli 10 ай бұрын
This is just what I needed for my RTS, only don't need the render, just the waves. It's an aether map, some gameplay stuff, so I'll need to figure out how to get back the data to the cpu eventually. Thank you very mucho!!
@JAnon__
@JAnon__ 10 ай бұрын
"turn that poop, into wine" - L. Ron Hoyabembe
@ardyolt9788
@ardyolt9788 10 ай бұрын
Amazing work!
@rodslay
@rodslay 9 ай бұрын
Such a well made video! Keep up with the great content.
@choudclucker
@choudclucker 9 ай бұрын
I’ve worked with gerstner waves quite a bit and I’ve only ever noticed issues with waves curling in on themselves if you add a wave to the mix with parameters higher than the one that came before it. I’d be interested in seeing you talk more about gerstner waves or explain a bit more why you don’t like them!
@Acerola_t
@Acerola_t 9 ай бұрын
tbh the real reason I dont like them is it heavily complicates the partial derivatives due to the horizontal displacement and I found that the e^sin(x) waves looked great anyways for less effort (mentally and computationally)
@choudclucker
@choudclucker 9 ай бұрын
@@Acerola_t I can agree with that. They certainly add way more complexity than needed for some water use cases. I already find derivatives annoying and adding the non linear, multi dimensional nature of gerstner waves to the equation is a bit much lol Much love can’t wait to see what you upload next!
@DrunkenUFOPilot
@DrunkenUFOPilot 5 ай бұрын
Great explanation for anyone new to 3D and starting to play with shaders and procedural textures. Next, could you show how to make froth on the wave peaks?
@leonstansfield
@leonstansfield 10 ай бұрын
New favourite acerola video. One day I will be epic like you!
@cupofdirtfordinner
@cupofdirtfordinner 10 ай бұрын
great stuff, aced roller 👍
@zainrj979
@zainrj979 8 ай бұрын
As amazing and interesting this and other videos from your channel are, i cannot help to feel a little overwhelmed by how many topics are related and used all ar once! Can you provide some advices or resources to learn and truly comprehend this without dying trying?😊
@VesselEngineer
@VesselEngineer 8 ай бұрын
That video made my life way easier, thanks mate!
@sleepyghostmp3
@sleepyghostmp3 10 ай бұрын
Just wanna say that Hard to Explain by the Strokes is one of my favorite songs ever, thank u for that reference/reminder
@Acerola_t
@Acerola_t 10 ай бұрын
they played it live when i saw them it was so good!
@sleepyghostmp3
@sleepyghostmp3 10 ай бұрын
@@Acerola_t That's awesome
@aqua-bery
@aqua-bery 6 ай бұрын
Man what a cool vid. As you mentioned, there will be a pattern that's pretty easy to see. Even in your example, you can see the waves moving in parallel lines lol! This vid made me excited to learn about math at school
@Acerola_t
@Acerola_t 6 ай бұрын
if you look at water irl you can also see the waves moving in parallel lines sometimes
@pcp351
@pcp351 10 ай бұрын
Great video! Can't wait for the FFT waves. Is there a reason the frequency formula has a 2?
@Acerola_t
@Acerola_t 9 ай бұрын
that's just how it was in the gpu gems article!
@lucanapora4016
@lucanapora4016 7 ай бұрын
This dude is actually the goat! What a generous man to be spend his free time doing this for us
@akkihole_
@akkihole_ 10 ай бұрын
I love this channel so much
I Tried Simulating The Entire Ocean
27:19
Acerola
Рет қаралды 461 М.
Do Video Games Fake Buoyancy?
17:08
Acerola
Рет қаралды 209 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 118 #shorts
00:30
Kitten has a slime in her diaper?! 🙀 #cat #kitten #cute
00:28
О, сосисочки! (Или корейская уличная еда?)
00:32
Кушать Хочу
Рет қаралды 6 МЛН
Ocean waves simulation with Fast Fourier transform
14:26
Jump Trajectory
Рет қаралды 361 М.
The Math behind (most) 3D games - Perspective Projection
13:20
Brendan Galea
Рет қаралды 361 М.
Your Colors Suck (it's not your fault)
37:01
Acerola
Рет қаралды 461 М.
The Strange Graphics Of LETHAL COMPANY
15:59
Acerola
Рет қаралды 634 М.
The biggest lie in video games
15:18
AIA
Рет қаралды 1 МЛН
What's The Deal With Depth Of Field
14:36
Acerola
Рет қаралды 110 М.
This Black Hole Could be Bigger Than The Universe
11:44
Kurzgesagt – In a Nutshell
Рет қаралды 2,3 МЛН
Why Stairs Suck in Games... and why they don't have to
11:24
Nick Maltbie
Рет қаралды 1,5 МЛН
How Do Games Render So Much Grass?
15:52
Acerola
Рет қаралды 312 М.
I Tried Sorting Pixels
18:03
Acerola
Рет қаралды 852 М.
Carregando telefone com carregador cortado
1:01
Andcarli
Рет қаралды 1,3 МЛН
Переходник для IPhone • 181649538                         Делюсь обзорами в профиле @lykofandrei
0:15
Что еще за обходная зарядка?
0:30
Не шарю!
Рет қаралды 2,3 МЛН
Save Work Efficiently on Your Computer 18/05/2024
0:51
UNIQUE PHOTO EDITING
Рет қаралды 308 М.
Apple, как вас уделал Тюменский бренд CaseGuru? Конец удивил #caseguru #кейсгуру #наушники
0:54
CaseGuru / Наушники / Пылесосы / Смарт-часы /
Рет қаралды 4,1 МЛН