How Big Budget AAA Games Render Clouds

Поділитися
Вставка
  • Опубліковано 28 лис 2022
  • Explored a few of the latest techniques in procedural cloud rendering used in Horizon: Zero Dawn and the FrostBite engine.
    🛒 Recommended books (on Amazon): www.amazon.com/hz/wishlist/ls...
    ❤️ Support me on Patreon: / simondevyt
    🌍 My Gamedev Courses: simondev.teachable.com/
    Disclaimer: Commission is earned from qualifying purchases on Amazon links.
    Follow me on:
    Twitter: / iced_coffee_dev
    Instagram: / beer_and_code
    In this video, I walk through how cloud rendering generally works, as well as covering some of the more recent tweaks/improvements and optimizations.
    Referenced Papers/Talks:
    www.ea.com/frostbite/news/phy...
    www.guerrilla-games.com/read/...
    magnuswrenninge.com/wp-content...
  • Наука та технологія

КОМЕНТАРІ • 354

  • @simondev758
    @simondev758  Рік тому +82

    Patrons can now vote for the next video! Thank you for your support.
    ❤ Support me on Patreon: www.patreon.com/simondevyt
    🌍 Live Demo + Courses: simondev.io

  • @stephenkentperez7705
    @stephenkentperez7705 Рік тому +1130

    Triple A studio: We need realistic clouds for the games background.
    Game Dev team: Hold my beer's law.

    • @Roader_021
      @Roader_021 Рік тому +24

      you just hape to powder some beer's law

    • @Andrew90046zero
      @Andrew90046zero Рік тому +15

      Legit like XD
      People might not ever notice some of these cool details in big games.
      But this is what happens when a big company pays you like 100k per year and your job is to:
      "Add as much graphical realism as possible that the hardware allows"
      And all this knowledge you've built up over the years has finally come down to this point.
      And you know that you must make the best damn looking clouds possible, even if people won't notice it.

    • @verlax8956
      @verlax8956 Рік тому

      yea

    • @jari2018
      @jari2018 Рік тому

      you only need a skybox like in old unreal games nothing more - since the lightning anyway always suck in modern games

  • @4.0.4
    @4.0.4 Рік тому +424

    This gotta be one of your best videos. I can tell you did a lot of research, and it's so well presented!

  • @mooooooooooooove
    @mooooooooooooove Рік тому +215

    The clouds in Microsoft Flight Simulator are so realistic that I was waiting for your take on them, but, in the end, this was a very informative video. Thank you

    • @Desopolis
      @Desopolis Рік тому +53

      Flight simulator doesn't use volumetric clouds, it uses particle sprites of legit clouds. Essentially just transparent images layered really smoothly.
      The super close distance actually lets you get away with it

    • @joeysipos
      @joeysipos Рік тому +3

      @@Desopolisyeah, this is actually how o do clouds in my game Glider Sim too. Much easier. In theory could have the sprites easily cast shadows as well.

    • @youtubebannedme
      @youtubebannedme Рік тому +2

      @@joeysipos not only it's easier, it's also more resource friendly in term of graphical power needed

    • @vegardpig8634
      @vegardpig8634 Рік тому +5

      @@Desopolis You sure? In game it says volumetric clouds and in their feature discovery series they refer to them as 3d fully volumetric clouds.

    • @jcsk8
      @jcsk8 Рік тому +16

      @@Desopolis I think MSFS 2020 uses volumetric clouds. That you said was used in earlier versions, such MSFS 2004 and MSFS FSX (10)

  • @To-mos
    @To-mos Рік тому +115

    Always loved volumetric smoke over billboard texture layers. Quake III: Arena in 1999 even had volumetric volumes for fog cubes. Well if I remember correctly it was more of planes and you had to tell the BSP compiler that the camera was going to be above or below the plane. It used normalized vector fog coordinates as texture coordinates in order to index a special fog texture which contains the fog density as opacity then it uses alpha blending in order to apply the fog to the fogged parts of the scene. Carmack is flippin' clever. Amazing explanation of new algorithms I always love keeping in the loop, Cook-torrence BRDF is cool but this is even cooler.

    • @simondev758
      @simondev758  Рік тому +36

      Carmack is one of those "I can't believe how smart this guy is" kind of people

    • @dealloc
      @dealloc Рік тому +36

      Carmack is very smart indeed, but he didn't come up with the volumetric fog in Quake 3. Brian Hook did a lot of the work on shaders in Quake II and Quake III. I'm sure Carmack had some hand in it, but it was mostly pioneered by Brian Hook, who also presented the Quake 3 rendering architecture at GDC 1999.
      A lot of the early work was also done in Quake II, which was presented in SIGGRAPH Conference in 1998 by Brian Hook.

    • @justamanofculture12
      @justamanofculture12 Рік тому +8

      Absolutely insane comment right here brother. As a CS major i can say you explained the concept beautifully. Thank you.

  • @ciristudios
    @ciristudios Рік тому +87

    You could also make a part 2, showing how the cloud shapes are formed.

    • @simondev758
      @simondev758  Рік тому +49

      That'd be really interesting, I figured the weather system was a whole thing in itself and kinda ducked out heh

  • @bluecup25
    @bluecup25 Рік тому +4

    It sounds as if man just got out of bed at 3AM and decided to make an excellent video on rendering clouds.

  • @robertwyatt3912
    @robertwyatt3912 Рік тому +62

    The graphical presentation in your videos is amazing!!

  • @megahombre24
    @megahombre24 Рік тому +99

    Videos like this one never fail to amaze me, well done!

  • @devantetoppin7879
    @devantetoppin7879 Рік тому +7

    Amazing video. Easy enough for the layman to understand but deep enough that if someone wants to attempt to implement this they definitely have enough to go off off and all inside of 10 minutes. That's real talent.

    • @simondev758
      @simondev758  Рік тому +5

      Very cool, I was hoping to land somewhere in that zone.

  • @ardavanansari
    @ardavanansari Рік тому +23

    Raising the bar with each video. Your channel helps fill a big void in game development learning resources. Thank you

  • @tristanmisja
    @tristanmisja Рік тому +4

    I've been binge-watching your videos, and applying what I've learned to my projects, and I have to say, your content is amazing. You deserve way more subscribers.

  • @DogwafflDan
    @DogwafflDan Рік тому +15

    Just the work involved in this presentation is pretty mind-blowing

  • @cosmotect
    @cosmotect Рік тому +4

    I think this is basically the only video on youtube that goes into this much detail on volumetric raymarching. Bravo

  • @aliphian
    @aliphian Рік тому +4

    One of the few channels that I get notifications for and it never disappoints. Great video!

  • @DarkSwordsman
    @DarkSwordsman Рік тому +46

    Your channel is invaluable. Thank you for your work! Really excited to experiment with clouds again

  • @elganzandere
    @elganzandere Рік тому +5

    Stumbled upon this video entirely by mistake. Instant subscription, Sir. This is precisely the sort of learning I've been pursuing, of late.
    Appreciate your efforts.

  • @benruniko
    @benruniko Рік тому +2

    Subbed as soon as i realized what you were presenting and how. This is exactly the kind of thing I love learning about! Someday I will find a way to make this knowledge useful, but even if I cant, thank you so much for making this wonderful, educational presentation with such detail and research put into it, as well as the graphics generation!!!

  • @chase_like_the_bank
    @chase_like_the_bank Рік тому +6

    Been so long since we've had a good shader UA-camr. Keep making these!

  • @lunkums
    @lunkums Рік тому +3

    great explanation and love the look of the end product!

  • @mooncatcher_
    @mooncatcher_ Рік тому +3

    Incredibly inspirational and so easy to understand. Simply amazing.

  • @visuallization
    @visuallization Рік тому +1

    This looks so cool! Great work reconstructing this!

  • @SirNightmareFuel
    @SirNightmareFuel Рік тому +3

    Incredible presentation, impressive research. A+.

  • @artyomkazakov9414
    @artyomkazakov9414 Рік тому +1

    That's amazing! I'm on my journey into programming, and your videos inspires me. Thank you

  • @redsteph
    @redsteph Рік тому +3

    Amazing work and good explanations. Keep on going.

  • @pitchblack5422
    @pitchblack5422 Рік тому +2

    Wow your explanations are phenomenal!

  • @deerdev6511
    @deerdev6511 Рік тому +1

    Wow, such a good job, just stumbled across your channel and I have to say this really reminds me of sebastian lague, overwhelmingly good job!

  • @MysteryPancake
    @MysteryPancake Рік тому +3

    Incredibly good visualisations, especially at the start :)

  • @Flinsch77
    @Flinsch77 Рік тому +1

    Very good video, thank you for this! I would love to see a similar video on real-time explosions and smoke. That would be much related to this topic. Keep up the good work!

  • @robertwallace5498
    @robertwallace5498 Рік тому +2

    You honestly put out the sickest content, I love it

  • @Michelcomin
    @Michelcomin 3 місяці тому +1

    That was an amazing well-explained video. Thank you!! 🙌

  • @bigkobelive
    @bigkobelive Рік тому +2

    Just found this channel, love your videos!

  • @RayznGames
    @RayznGames Рік тому +6

    Really good job! Appreciate the effort of explaining everything in detail with amounts of video feedback! Keep it up!

  • @NathanHedglin
    @NathanHedglin Рік тому +3

    Amazing as always. Thanks!

  • @ZooHair
    @ZooHair Рік тому +3

    Very informative and awesome presentation

  • @Galakyllz
    @Galakyllz Рік тому +1

    This looks awesome! I can't wait to take a look at your code. Thank you for making this video.

  • @TechTackleTerritory
    @TechTackleTerritory Рік тому +3

    The graphics so clean and beautiful

  • @tokyospliff
    @tokyospliff Рік тому +1

    Really great video man, keep it up, I learned a lot.

  • @iaobardar3452
    @iaobardar3452 Рік тому +2

    This is a great video! I had my eye on the Guerilla games paper for a while but never figured out what their noise really did. I will need to go read the frostbite paper your mentioned. :) thanks!

    • @simondev758
      @simondev758  Рік тому +1

      Here's the project the Frostbite team put together: github.com/sebh/TileableVolumeNoise that my code was based off of.

  • @wesleydavis3387
    @wesleydavis3387 Рік тому +1

    Something to remember too is that clouds are never static.
    Cumulus will always be fed by rising air, so will have upward motion at the center. The cloud top for cumulus will change as the day goes on, because the rising air is going to keep warming the air at the inversion (where the temperature gradient changes from warming with height to cooling). If you’ve lived in the Midwest or south you’ve seen this effect. Patchwork clouds evenly distributed in the AM but they coalesce into thunderstorms by the afternoon.
    Stratus come from large air masses of different temp/humidity compositions and will more or less move as one. Their rain is more steady but with smaller droplets.
    Always love the videos.

    • @simondev758
      @simondev758  Рік тому +1

      Great point! I didn't want to dive into creating the full blown weather system, maybe as a follow up some other time. They describe it in quite a bit of detail though.

  • @Suthriel
    @Suthriel Рік тому +11

    Awesome breakdown :) However, looking at stormclouds, you probably don´t want half resolution, or lower res, you more likely want higher resolution for all the details, that are there. I guess, the higher contrast and rougher light situation in a storm makes those fine details way more visible than in your regular fair weather cloud.
    Maybe to realize that, it would be good to use some regular high res sprites/textures/particles at the edges to get all the crisp details, and the volumetric cloud for the insides and correct coloring and scattering. The sprites/particles then just would need to get their color info from the volumetric cloud area, they are in.

  • @TennessseTimmy
    @TennessseTimmy Рік тому +1

    I was configuring the clouds in Arma reforger and didn't know what some of the settings meant, this helped, thanks

  • @gmjammin4367
    @gmjammin4367 Рік тому +1

    Amazing videos! Keep them coming!

  • @Memeieli
    @Memeieli 11 місяців тому

    Amazing tutorial, learning about temporal techniques is something I'd love to see converted as its very popular these days.

  • @GoldSrc_
    @GoldSrc_ 5 місяців тому +2

    This presentation is amazing.

  • @crybirb
    @crybirb Рік тому +1

    Damn this video summed out something I've been reading about for so long. That's great thanks!

  • @z-beeblebrox
    @z-beeblebrox Рік тому +4

    Astonishing how much care and effort went into perfecting and optimizing volumetric clouds for the Frostbite Engine, whose games proceeded to use it for...the same shit they were using skyboxes for anyway.

  • @stephenvanbellinghen933
    @stephenvanbellinghen933 5 місяців тому +2

    Mind blowing this channel exists

  • @efwfew
    @efwfew Рік тому +1

    Great video. Thank you, learned a lot. I was in charge of creating a cloud material within a game engine at my work, I.. didn't like it because there were few infos online (for a non programmer like me) this video explained perfectly clear

  • @Ecks1118
    @Ecks1118 Рік тому +13

    Incredible video. I've always been a big fan of artistic detail in games(not that I'm very good at it). A quick suggestion if you're fine with it would be a video on branchless programming, figured it might be cool.

    • @simondev758
      @simondev758  Рік тому +2

      Branchless programming? I've kinda had a half-baked video plan about branching in general, might be good to fold into that

  • @b4ph0m3tdk9
    @b4ph0m3tdk9 Рік тому +1

    Very interesting, and super illustrations!

  • @ChronicWhale
    @ChronicWhale Рік тому +1

    Amazing video as always

  • @jinchoung
    @jinchoung Рік тому +1

    wow, what a great explanation! really well done.

  • @cameronfisher1786
    @cameronfisher1786 Рік тому +2

    If you want to check out implementing this into a game, Sebastian Lague used this technique in his "Geography Game"

  • @kipchickensout
    @kipchickensout Рік тому +2

    Man this makes me wanna get a beer! Awesome video

  • @fuzzyhenry2048
    @fuzzyhenry2048 Рік тому +2

    Why does it take so long for UA-cam to recommend this treasure channel to me! Love your voice BTW

  • @ethanmitchell505
    @ethanmitchell505 Рік тому +1

    Amazing work, learned something cool today! Thanks.

  • @johnsmith539
    @johnsmith539 Рік тому +3

    Beers law: when your glass is empty, fill it.

  • @mushylog
    @mushylog Рік тому +1

    I got interested in this technology after I played some Kerbal Space Program 2; the clouds are beautiful, this is so intriguing!

  • @cubrman
    @cubrman Рік тому +1

    Amazing analysis, ty!

  • @sleeping_dragon
    @sleeping_dragon 4 місяці тому +1

    awesome stuff mate

  • @JulesHatton
    @JulesHatton Рік тому +1

    Great content as always.

  • @romarbetc123
    @romarbetc123 Рік тому +3

    As artist learning about how clouds work is pretty amazing

  • @jsierra88
    @jsierra88 Рік тому +1

    Love technical stuff like this. Thanks!

  • @BadgerGamePlay
    @BadgerGamePlay Рік тому +1

    these videos are amazing! learned alot

  • @gordonbeeman5387
    @gordonbeeman5387 Рік тому +1

    Superb video, very interesting.

  • @VoidloniXaarii
    @VoidloniXaarii Рік тому +1

    Fantastic information, thanks a lot!

  • @irjayjay
    @irjayjay Рік тому +4

    Super informative, especially since I've been struggling to make performant clouds my own way for a few weeks now.

    • @simondev758
      @simondev758  Рік тому +1

      There's a lot more to be done here. When I have some time, I'll try out some of the other optimizations.

  • @smallbluemachine
    @smallbluemachine Рік тому +3

    Now this, is cloud computing.

  • @ChronicWhale
    @ChronicWhale Рік тому +2

    I'd love to see one about water, rivers, oceans with waves, etc.

  • @johngrey5806
    @johngrey5806 Рік тому +1

    Those final clouds look dope!

  • @FromLake
    @FromLake 3 місяці тому +3

    Thank you for this video!

  • @basgerrit907
    @basgerrit907 Рік тому +1

    Very cool! Want to try it out myself now

  • @sanderbos4243
    @sanderbos4243 Рік тому +1

    Loved this, thank you!

  • @iamsunil21
    @iamsunil21 Рік тому +1

    awesome presentation, you are amazing, thanks!

  • @nielsbishere
    @nielsbishere Рік тому +1

    Very underrated channel. Something else like you said at the end; a-svgf would probably be a good match for this, together with killing off samples more frequently if they are too dark (Russian roulette)

  • @denizorsel1029
    @denizorsel1029 Рік тому +1

    Simon, you are an amazing teacher.

  • @UnderdogDen
    @UnderdogDen Рік тому +1

    What a cloudy video (good stuff dude)!

  • @stevphiericardo2790
    @stevphiericardo2790 Рік тому +3

    You sir, deserves a medal.. I wish you a million of subscribers soon... what an underrated channel... thanks for the knowledge shared!

  • @toastedcrumpets
    @toastedcrumpets Рік тому +1

    Awesome work!

  • @boukhadc
    @boukhadc Рік тому +1

    Nice work !

  • @while.coyote
    @while.coyote Рік тому +1

    This stuff is so useful. Thanks!

  • @stevethepocket
    @stevethepocket 3 місяці тому +1

    Insider did a two-part video a year or so ago listing off one new piece of tech that was introduced for each Pixar movie. For _The Good Dinosaur_ it was volumetric clouds. It's amazing how closely what's state of the art in games follows what's state of the art in CGI; I always figured it would be way behind because the CGI people have whole render farms at their disposal and can brute force everything, whereas games have to do the same thing in a fraction of a second.

  • @ELEKTROZARYA
    @ELEKTROZARYA Рік тому +1

    Great video!

  • @holdenthompson1449
    @holdenthompson1449 Місяць тому +1

    I'm going to buy your Shader course, you seem to know what you're talking about!

  • @dariocardajoli6831
    @dariocardajoli6831 Рік тому +1

    Very informative thank you

  • @frederiklenk7756
    @frederiklenk7756 Рік тому +5

    I am not well versed in programming, but one thing I would have loved to try to program is how autumn leaves would look in games, with the brown colours that become super vibrant when backlit. Inspiration came from this video from posy: ua-cam.com/video/ci_ZSoMz9lg/v-deo.html

    • @simondev758
      @simondev758  Рік тому +5

      Man, this video is mesmerizing.

    • @frederiklenk7756
      @frederiklenk7756 Рік тому +2

      @@simondev758 Right!? I recommend checking out his video titled "Hot Water Colors" as well. While not something that you'd really program (I think lol), it it sooo beautiful.

  • @FinaISpartan
    @FinaISpartan Рік тому +2

    Just wanted to add, by taking an integral of the density function, you can get a more accurate calculation of light / absorbtion.

  • @Axeiaa
    @Axeiaa Рік тому +3

    I bet if we had beer's law clouds in real life rain would be something a lot of people would look forward to!

  • @juancruzrabaglia722
    @juancruzrabaglia722 Рік тому +2

    This is great! I've actually just started working a week ago on trying to apply light effects into a volumetric cloud in threejs and i've been kind of lost, but i think this puts me on the right track!. I would love a tutorial on how to apply this with the threejs api.

    • @simondev758
      @simondev758  Рік тому +2

      I just dropped the code on Twitter, and it's implemented in Three.js, so go nuts.

    • @juancruzrabaglia722
      @juancruzrabaglia722 Рік тому +1

      ​ @SimonDev man that's amazing, thank you so much! i'll be studying it in the following days for sure.
      Btw, I appreciate the amount of work you put on your videos, they are insanely good.

  • @foxy2348
    @foxy2348 Рік тому +1

    I just do it with one click in unreal. Great too see what kind of dedication lyes beind those things. respect!

  • @davidgladwell6283
    @davidgladwell6283 Рік тому +1

    This was a great video, the cherry on top was sharing your references. What software do use to visualise your code. Is it the open GraphicsLibrary?

    • @simondev758
      @simondev758  Рік тому

      The video is basically one giant shader in GLSL. I talk about how I did it on twitter, with example code, if you're interested.

  • @duelsoldier3048
    @duelsoldier3048 Рік тому +1

    I love your videos, keep it up

  • @tharteon1866
    @tharteon1866 Рік тому +2

    Simon: "Easy peasy lemon squeezy"
    Me: "Im mentally slow and im a fraud"

  • @lemonke8132
    @lemonke8132 Рік тому +1

    this channel is so underrated

  • @NaiyoGames
    @NaiyoGames Рік тому +1

    F*cking hell x) it amazes me and stresses me out at the same time haha!! Great video as always!!

  • @remygrandemange8460
    @remygrandemange8460 4 місяці тому +1

    Amazing content 👏👏👏🙏🙏🙏

  • @marcelinouzerrio4937
    @marcelinouzerrio4937 Рік тому +1

    Pretty cool ! Thx

  • @Ascyt
    @Ascyt Рік тому +1

    This is soo cool!

  • @TilDrill
    @TilDrill Рік тому +2

    really good video