How Big Budget AAA Games Render Clouds

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 28. 11. 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...
  • Věda a technologie

Komentáƙe • 355

  • @simondev758
    @simondev758  Pƙed rokem +83

    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 Pƙed rokem +1136

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

    • @Roader_021
      @Roader_021 Pƙed rokem +24

      you just hape to powder some beer's law

    • @Andrew90046zero
      @Andrew90046zero Pƙed rokem +16

      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 Pƙed rokem

      yea

    • @jari2018
      @jari2018 Pƙed rokem

      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 Pƙed rokem +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 Pƙed rokem +219

    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 Pƙed rokem +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 Pƙed rokem +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 Pƙed rokem +2

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

    • @vegardpig8634
      @vegardpig8634 Pƙed rokem +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 Pƙed rokem +17

      @@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 Pƙed rokem +116

    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  Pƙed rokem +36

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

    • @dealloc
      @dealloc Pƙed rokem +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 Pƙed rokem +8

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

  • @ciristudios
    @ciristudios Pƙed rokem +87

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

    • @simondev758
      @simondev758  Pƙed rokem +49

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

  • @robertwyatt3912
    @robertwyatt3912 Pƙed rokem +62

    The graphical presentation in your videos is amazing!!

  • @megahombre24
    @megahombre24 Pƙed rokem +99

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

  • @ardavanansari
    @ardavanansari Pƙed rokem +23

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

  • @cosmotect
    @cosmotect Pƙed rokem +4

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

  • @devantetoppin7879
    @devantetoppin7879 Pƙed rokem +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  Pƙed rokem +5

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

  • @DogwafflDan
    @DogwafflDan Pƙed rokem +15

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

  • @elganzandere
    @elganzandere Pƙed rokem +6

    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.

  • @tristanmisja
    @tristanmisja Pƙed rokem +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.

  • @DarkSwordsman
    @DarkSwordsman Pƙed rokem +46

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

  • @aliphian
    @aliphian Pƙed rokem +4

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

  • @chase_like_the_bank
    @chase_like_the_bank Pƙed rokem +6

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

  • @bluecup25
    @bluecup25 Pƙed rokem +4

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

  • @stephenvanbellinghen933
    @stephenvanbellinghen933 Pƙed 6 měsĂ­ci +2

    Mind blowing this channel exists

  • @benruniko
    @benruniko Pƙed rokem +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!!!

  • @TheCompleteMental
    @TheCompleteMental Pƙed 15 dny +1

    I'd love to see, on future deep dives into the history and different approaches to rendering things like this, insight on the performance cost of each change

  • @kipchickensout
    @kipchickensout Pƙed rokem +2

    Man this makes me wanna get a beer! Awesome video

  • @TechTackleTerritory
    @TechTackleTerritory Pƙed rokem +3

    The graphics so clean and beautiful

  • @mooncatcher_
    @mooncatcher_ Pƙed rokem +3

    Incredibly inspirational and so easy to understand. Simply amazing.

  • @artyomkazakov9414
    @artyomkazakov9414 Pƙed rokem +1

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

  • @z-beeblebrox
    @z-beeblebrox Pƙed rokem +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.

  • @lunkums
    @lunkums Pƙed rokem +3

    great explanation and love the look of the end product!

  • @fuzzyhenry2048
    @fuzzyhenry2048 Pƙed rokem +2

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

  • @GoldSrc_
    @GoldSrc_ Pƙed 6 měsĂ­ci +2

    This presentation is amazing.

  • @SirNightmareFuel
    @SirNightmareFuel Pƙed rokem +3

    Incredible presentation, impressive research. A+.

  • @visuallization
    @visuallization Pƙed rokem +1

    This looks so cool! Great work reconstructing this!

  • @bigkobelive
    @bigkobelive Pƙed rokem +2

    Just found this channel, love your videos!

  • @redsteph
    @redsteph Pƙed rokem +3

    Amazing work and good explanations. Keep on going.

  • @pitchblack5422
    @pitchblack5422 Pƙed rokem +2

    Wow your explanations are phenomenal!

  • @Flinsch77
    @Flinsch77 Pƙed rokem +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!

  • @Galakyllz
    @Galakyllz Pƙed rokem +1

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

  • @deerdev6511
    @deerdev6511 Pƙed rokem +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!

  • @robertwallace5498
    @robertwallace5498 Pƙed rokem +2

    You honestly put out the sickest content, I love it

  • @romarbetc123
    @romarbetc123 Pƙed rokem +3

    As artist learning about how clouds work is pretty amazing

  • @smallbluemachine
    @smallbluemachine Pƙed rokem +3

    Now this, is cloud computing.

  • @Michelcomin
    @Michelcomin Pƙed 4 měsĂ­ci +1

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

  • @Ecks1118
    @Ecks1118 Pƙed rokem +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  Pƙed rokem +2

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

  • @NathanHedglin
    @NathanHedglin Pƙed rokem +3

    Amazing as always. Thanks!

  • @iaobardar3452
    @iaobardar3452 Pƙed rokem +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  Pƙed rokem +1

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

  • @cameronfisher1786
    @cameronfisher1786 Pƙed rokem +2

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

  • @MysteryPancake
    @MysteryPancake Pƙed rokem +3

    Incredibly good visualisations, especially at the start :)

  • @wesleydavis3387
    @wesleydavis3387 Pƙed rokem +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  Pƙed rokem +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 Pƙed rokem +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.

  • @crybirb
    @crybirb Pƙed rokem +1

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

  • @tokyospliff
    @tokyospliff Pƙed rokem +1

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

  • @frederiklenk7756
    @frederiklenk7756 Pƙed rokem +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: czcams.com/video/ci_ZSoMz9lg/video.html

    • @simondev758
      @simondev758  Pƙed rokem +5

      Man, this video is mesmerizing.

    • @frederiklenk7756
      @frederiklenk7756 Pƙed rokem +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.

  • @Memeieli
    @Memeieli Pƙed rokem

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

  • @RayznGames
    @RayznGames Pƙed rokem +6

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

  • @ethanmitchell505
    @ethanmitchell505 Pƙed rokem +1

    Amazing work, learned something cool today! Thanks.

  • @ZooHair
    @ZooHair Pƙed rokem +3

    Very informative and awesome presentation

  • @jinchoung
    @jinchoung Pƙed rokem +1

    wow, what a great explanation! really well done.

  • @ChronicWhale
    @ChronicWhale Pƙed rokem +2

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

  • @cubrman
    @cubrman Pƙed rokem +1

    Amazing analysis, ty!

  • @TennessseTimmy
    @TennessseTimmy Pƙed rokem +1

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

  • @jsierra88
    @jsierra88 Pƙed rokem +1

    Love technical stuff like this. Thanks!

  • @b4ph0m3tdk9
    @b4ph0m3tdk9 Pƙed rokem +1

    Very interesting, and super illustrations!

  • @irjayjay
    @irjayjay Pƙed rokem +4

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

    • @simondev758
      @simondev758  Pƙed rokem +1

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

  • @gmjammin4367
    @gmjammin4367 Pƙed rokem +1

    Amazing videos! Keep them coming!

  • @efwfew
    @efwfew Pƙed rokem +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

  • @gordonbeeman5387
    @gordonbeeman5387 Pƙed rokem +1

    Superb video, very interesting.

  • @BadgerGamePlay
    @BadgerGamePlay Pƙed rokem +1

    these videos are amazing! learned alot

  • @basgerrit907
    @basgerrit907 Pƙed rokem +1

    Very cool! Want to try it out myself now

  • @denizorsel1029
    @denizorsel1029 Pƙed rokem +1

    Simon, you are an amazing teacher.

  • @sleeping_dragon
    @sleeping_dragon Pƙed 5 měsĂ­ci +1

    awesome stuff mate

  • @mushylog
    @mushylog Pƙed rokem +1

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

  • @johngrey5806
    @johngrey5806 Pƙed rokem +1

    Those final clouds look dope!

  • @ChronicWhale
    @ChronicWhale Pƙed rokem +1

    Amazing video as always

  • @rahulprasad2318
    @rahulprasad2318 Pƙed rokem +7

    Can you provide the link to the noise video u mentioned at 6:41 pls

    • @simondev758
      @simondev758  Pƙed rokem +4

      czcams.com/video/sChQCdbLdHE/video.html
      I was kinda joking around, it's my previous video.

  • @JulesHatton
    @JulesHatton Pƙed rokem +1

    Great content as always.

  • @iamsunil21
    @iamsunil21 Pƙed rokem +1

    awesome presentation, you are amazing, thanks!

  • @sanderbos4243
    @sanderbos4243 Pƙed rokem +1

    Loved this, thank you!

  • @VoidloniXaarii
    @VoidloniXaarii Pƙed rokem +1

    Fantastic information, thanks a lot!

  • @stevethepocket
    @stevethepocket Pƙed 4 měsĂ­ci +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.

  • @thebirdhasbeencharged
    @thebirdhasbeencharged Pƙed rokem +2

    This is amazing, Rayleigh next

  • @FromLake
    @FromLake Pƙed 4 měsĂ­ci +3

    Thank you for this video!

  • @boukhadc
    @boukhadc Pƙed rokem +1

    Nice work !

  • @while.coyote
    @while.coyote Pƙed rokem +1

    This stuff is so useful. Thanks!

  • @UnderdogDen
    @UnderdogDen Pƙed rokem +1

    What a cloudy video (good stuff dude)!

  • @Axeiaa
    @Axeiaa Pƙed rokem +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!

  • @ELEKTROZARYA
    @ELEKTROZARYA Pƙed rokem +1

    Great video!

  • @holdenthompson1449
    @holdenthompson1449 Pƙed 2 měsĂ­ci +1

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

  • @toastedcrumpets
    @toastedcrumpets Pƙed rokem +1

    Awesome work!

  • @dariocardajoli6831
    @dariocardajoli6831 Pƙed rokem +1

    Very informative thank you

  • @nielsbishere
    @nielsbishere Pƙed rokem +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)

  • @kevinbeardslee7587
    @kevinbeardslee7587 Pƙed rokem +1

    Joni Mitchell would be proud! Nice work Simon.

  • @FinaISpartan
    @FinaISpartan Pƙed rokem +2

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

  • @cornelius600
    @cornelius600 Pƙed rokem +1

    this video got that Sebastian Lague type of quality

  • @foxy2348
    @foxy2348 Pƙed rokem +1

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

  • @lemonke8132
    @lemonke8132 Pƙed rokem +1

    this channel is so underrated

  • @ruix
    @ruix Pƙed rokem +1

    its actually simple to implement. Amazing

  • @stevphiericardo2790
    @stevphiericardo2790 Pƙed rokem +3

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

  • @nazarremerchant
    @nazarremerchant Pƙed rokem +5

    Great video! Any chance you could link the papers you mention? Your videos are such an excellent instructional resource.

  • @marcelinouzerrio4937
    @marcelinouzerrio4937 Pƙed rokem +1

    Pretty cool ! Thx

  • @duelsoldier3048
    @duelsoldier3048 Pƙed rokem +1

    I love your videos, keep it up

  • @LittleBallOfPurr
    @LittleBallOfPurr Pƙed 5 měsĂ­ci +1

    This has really helped me understand why Volumetric Clouds tank the performance on Ark Survival Ascended so much, especially as you amp up the sample count.
    It does suffer with a major pixelation issue, that reduces as you increase the sample count, mostly going away by 512, though new formations still pixelate, unless you switch to Unreal Engine 5's VolumetricRenderTarget Mode 3.