Bloom.

Поделиться
HTML-код
  • Опубликовано: 4 июл 2024
  • Become smarter in 5 minutes by signing up for free today: cen.yt/mbthecherno - Thanks to Morning Brew for sponsoring today’s video! ❤️
    Patreon ► / thecherno
    Instagram ► / thecherno
    Twitter ► / thecherno
    Discord ► / discord
    Thumbnail was rendered in Hazel.
    SOURCES:
    📈 An example of CRT bloom (this video shows two types of bloom!): • An example of CRT bloom
    📈 Learn OpenGL Bloom tutorial: learnopengl.com/Advanced-Ligh...
    📈 Sascha Willems Vulkan examples: github.com/SaschaWillems/Vulkan
    📈 Next Generation Post Processing In Call of Duty: Advanced Warfare: www.iryoku.com/next-generation...
    📈 Unity's bloom shader: github.com/Unity-Technologies...
    TIMESTAMPS:
    0:00 - What is bloom?
    3:00 - Creating bloom in Photoshop
    6:22 - Bloom tutorials
    10:30 - How bloom works in Unity
    19:32 - Bloom in Call of Duty: Advanced Warfare
    22:34 - Bloom in Hazel
    This video is sponsored by Morning Brew.
    #Hazel

Комментарии • 383

  • @TheCherno
    @TheCherno  2 года назад +170

    Hope you all enjoyed the video, let me know if you want to see more like this one! ❤️ HUGE thank you to Morning Brew for keeping my juice knowledge relevant and for allowing me to spend so much time working on this video! Sign up for free here: cen.yt/mbthecherno

    • @sigurdskaga5524
      @sigurdskaga5524 2 года назад +7

      Loved the format of this video. Well done.

    • @nexovec
      @nexovec 2 года назад +10

      This is actually the best format you've tried so far.

    • @nullbeyondo
      @nullbeyondo 2 года назад +3

      I like it a lot.

    • @domjanabi6006
      @domjanabi6006 2 года назад +1

      first 30 seconds got me hooked
      i think this is a nice format

    • @devtry
      @devtry 2 года назад

      Really enjoyed it, I'll look forward for other videos like this

  • @octaviosilva5808
    @octaviosilva5808 2 года назад +301

    Whenever i feel overconfident about my code, this man humbles me down

    • @user-si9jy3zs1j
      @user-si9jy3zs1j 2 года назад +15

      lmao this message is perfect with that pfp

    • @sanjayshorey4225
      @sanjayshorey4225 2 года назад +4

      I was feeling like a software engineer after printing sum of two digits. I came to this channel to get humble. We are bros.

  • @Danidev
    @Danidev 2 года назад +515

    Great video Cherno!

    • @ganes1612
      @ganes1612 2 года назад +6

      Hello, Dani!

    • @rashmigoyal2629
      @rashmigoyal2629 2 года назад +9

      Is He Still Alive ?

    • @rashmigoyal2629
      @rashmigoyal2629 2 года назад +6

      I Thought He Was Dead

    • @siddharthasarmah9266
      @siddharthasarmah9266 2 года назад +4

      Was playing MUCK, why don't you make the game a bit easier?

    • @rashmigoyal2629
      @rashmigoyal2629 2 года назад +21

      Why Don't You Try And Make A Game Without An Engine(Or You Can't Do That) :)

  • @CodeMonkeyUnity
    @CodeMonkeyUnity 2 года назад +410

    Wow excellent video! I never thought about the inner workings of Bloom, I learned a lot, thanks!

    • @michmich6645
      @michmich6645 2 года назад +2

      Whats up checkmark

    • @R.B.
      @R.B. 2 года назад +5

      @@michmich6645 verified account. Code Monkey has a lot of good Unity content.

    • @bloom._.9725
      @bloom._.9725 2 года назад +1

      Yeah no problem

    • @hevlp
      @hevlp 2 года назад

      i got ur ad in this video 👌

    • @rdxrid
      @rdxrid Год назад

      Wow, Unity boss is here!

  • @agsamani5701
    @agsamani5701 2 года назад +160

    10:17 OMG A freaking RENDERING COURSE. Can't wait

    • @pat917
      @pat917 2 года назад

      No way I missed that thsnks

  • @meanotaku
    @meanotaku 2 года назад +90

    The ultimate channel for learning about game engine I came for learning C++ but stayed for the Engine

    • @nofeah89
      @nofeah89 2 года назад +1

      Hey, I'm trying to learn but get confused with terms like texture and bump maps etc? Do you recommend any playlist from the cherno?

    • @sanjayshorey4225
      @sanjayshorey4225 2 года назад

      Is this engine petrol or diesel variant?

    • @nathansnail
      @nathansnail 2 года назад +2

      @@sanjayshorey4225 electrical engine, nvidia variant. run with electricity from shiny pikachu

  • @gregwaste2594
    @gregwaste2594 2 года назад +79

    One of the best videos you've made cherno. So comprehensive. I wish the rendering course will be full of that stuff. Keep it up.

  • @NamePointer
    @NamePointer 2 года назад +20

    I actually used the Bloom tutorial from learnopengl and always wondered why it looked so bad. I've always though bloom was just a very simple two-pass post-processing effect and now I finally see how wrong I was. Thank you so much for making this video!

    • @bryanlozano1741
      @bryanlozano1741 2 года назад

      Hey! I like your videos. I guess you used that learnopengl Bloom for the sun in your gravity simulator? It would be interesting if you could try to implement this bloom effect and make a video about it :)

    • @NamePointer
      @NamePointer 2 года назад +1

      @@bryanlozano1741 Hi! I'm happy to hear that! I did indeed use learnopengl for the bloom in my gravity simulator. If I ever come back to that project in the future, I will probably improve the bloom effect, but I wouldn't make a dedicated video about it (because this one exists) but it could be part of a third video in the gravity simulator series.

  • @barj
    @barj 2 года назад +23

    This was an awesome style of video dude! I'd love to see more stuff like this :)

  • @alonsorosadogarcia8082
    @alonsorosadogarcia8082 2 года назад +45

    I quite liked the effort poured into this one! The format and the explainations were really neat.

  • @alexo.o418
    @alexo.o418 2 года назад +48

    Great video! I especially liked that you referenced the CoD presentation. However I have a small nitpick with the implementation: bloom should not be added to the scene color, as adding increases the brightness of the image. This way the bloom magically creates energy out of thin air, which is at odds with energy conservation. An alternative is to lerp the images instead, the interpolation factor can be used to control the strength of the effect. Apart from being energy conserving this has two benefits: firstly the images with and without bloom will be similar in terms of overall brightness. Secondly the thresholding can be removed, which results in a more natural effect. The latter is also mentioned in Jimenez's presentation.

    • @blacklistnr1
      @blacklistnr1 2 года назад +20

      I have a small nitpick with your nitpick: Provided that the adding occurs before the tone mapping, or that tone mapping handles it correctly, no energy is created out of nothing, since tone mapping, a.k.a. crushing the range, destroys both energy and detail information such that you get something realistic/visually pleasing.
      Lerping will actually give you a worse visual result since it's linear whereas tone mapping can have nonlinearities which better model how light/camera behave.
      And lastly, a game engine's job is to fool the eye as fast as it's possible, not to run a full physics simulation which preserves all invariants. I don't think there are any physically accurate real time game engines, they all use tricks and approximations.

    • @Mempo1
      @Mempo1 2 года назад +2

      @@blacklistnr1 Bloom is typically applied on top of the non-tonemapped result of the physically based lighting result so it does break the correctness of the PBR theory. Personally I'd prefer the lerp because its less of a magic number compared to having a threshold.

    • @blacklistnr1
      @blacklistnr1 2 года назад +5

      @@Mempo1 "Less ... magic" :)) love the reason, perfectly valid. My point was that adding a thresholded bloom before tonemapping isn't "bad" and lerping images to preserve energy isn't always visually pleasing as it can muddy gradients, as the standard RGB color space isn't uniform to our eyes, so you need some non-linearities to make it look good. By the time you're in the "what does look good to a human?" part, physical correctness falls a bit lower in your priority list.

    • @Mempo1
      @Mempo1 2 года назад +4

      @@blacklistnr1 Fair, I'm not sure which one of the two looks better in practice but if its recommended in the cod presentation it probably works well in production. should also consider which parameter is friendlier to artists

    • @blacklistnr1
      @blacklistnr1 2 года назад +3

      @@Mempo1 Oh boy, I remember my first experience with the v-ray renderer. As an artist you open settings to get rid of some noise in the scene and you get 1000 algoritms, metaparameters and choices. I can only hope that artists have it better nowadays

  • @3DevSoftware
    @3DevSoftware 2 года назад +30

    I loved the format of this one Cherno. Very informative and a joy to watch. Thank you.

  • @ipotrick6686
    @ipotrick6686 2 года назад +5

    This new style of video is GREAT!

  • @gebriish
    @gebriish 2 года назад +21

    I like this new format
    JK , I love this new Format

  • @Gunslinger962
    @Gunslinger962 2 года назад +12

    This new video format though 😳

  • @GonziHere
    @GonziHere 2 года назад +10

    I like your videos in general, but this was absolutely the best. So much information, so much research, great format. Perfection.

  • @santi5655
    @santi5655 2 года назад +3

    this is the kind of video i want to see. thanks cherno

  • @dimitribobkov-rolandez5729
    @dimitribobkov-rolandez5729 2 года назад +3

    This is probably one of the better explanation of how bloom works that I've ever seen, especially with the photoshop part. Liked and subbed!

  • @lennyphoenixc
    @lennyphoenixc 2 года назад +5

    The production quality on this one is incredible, awesome work!

  • @TheTimster02
    @TheTimster02 2 года назад +6

    This video is really great to watch, keeps things interesting while still being informative and in-depth

  • @Test-iv4pm
    @Test-iv4pm 10 месяцев назад

    Need more videos like this from you for more visual effects.
    This 'Bloom' video is still the undisputed greatest video on youtube, 2 years after its release.

  • @gholamrezadar
    @gholamrezadar 2 года назад

    Searched for a good bloom tutorial everywhere on the web, couldn't find any!
    and the next day youtube recommends this Amazing video!
    Thank you so much.

  • @Mystixor
    @Mystixor 2 года назад

    We asked for a Bloom tutorial, you delivered right-away. Awesome, keep it up!

  • @deformercr6680
    @deformercr6680 2 года назад

    Phenomenal video, really great deep dive into the inner working of bloom, introduced in a really intuitive way. Can't wait for your course!

  • @SiddharthMandhata
    @SiddharthMandhata 2 года назад

    Hey Man!! Awwweesommmeee video!!! Hats off to you!!
    Last year I learnt a lot of new things about C++ from your series and subscribed to your channel after that.
    After that I found a bit of change of style in several videos, which was not to my taste.
    But this video was in the same "fun to watch" and still "providing so much new information" zone.
    So glad to have you back! Lots of love and appreciation! :)

  • @ZoruaTheTrickyFox
    @ZoruaTheTrickyFox 2 года назад +4

    I understand it might require a big effort but I'd love more videos in this format.

  • @Futureblur
    @Futureblur 2 года назад +9

    Wow I love this new format!

  • @bulentgercek
    @bulentgercek 2 года назад

    Man, that was unbelievable work to learn all the details. Excellent presentation. You did it again! Love you, keep it going!

  • @MrCarburettor
    @MrCarburettor 2 года назад +2

    Great video!! So happy to hear that a rendering course on the way!!

  • @olkris2666
    @olkris2666 2 года назад

    THANK YOU DUDE !! I've been doing research on bloom for a few months to implement it into my drawings and make a tutorial about it. This basically confirms all of my research. However I didn't know about the downsampling technique, thank you for sharing it.

  • @guilhermesenko
    @guilhermesenko 2 года назад +1

    I usually don't comment on videos but I think this one deserved it. Very well thought out and brilliantly presented. I hope we see more content like this in the future!

  • @nicolaskeller9511
    @nicolaskeller9511 2 года назад

    Excellent video, the step-by-step analysis of another engine where you show each texture was the best part of it all. Thx!

  • @revesx
    @revesx 2 года назад +2

    1:12 overuse of the bloom effect really causes discomfort, thanks for sharing! Awesome video format, so much work, research and experience in one video.

  • @avram_traian
    @avram_traian 2 года назад

    this might be one of the most coolest youtube videos ive ever watched! hope i'll see this type of content in the future

  • @sigmaroxt9631
    @sigmaroxt9631 2 года назад

    This new video format is so good. Keep up with the good work man!

  • @simonbaxter8001
    @simonbaxter8001 2 года назад

    Fantastic video Jan! This video style IS definitely the way forward.

  • @arash1934
    @arash1934 2 года назад +1

    Epic intro, epic graphics, epic ad, epic humor. This video is absolutely epic! Thank you for the effort you put into these videos cherno!

  • @EmersonPeters
    @EmersonPeters 2 года назад +1

    This is AWESOME! These types of videos make the world better.

  • @michaeloconnell145
    @michaeloconnell145 2 года назад

    I think this is one of the best video's you've ever made! Thank you!

  • @kamran_aghlami
    @kamran_aghlami 2 года назад

    Fantastic material right here! I'm really digging this format. Great one Cherno!

  • @StevenMartinGuitar
    @StevenMartinGuitar 2 года назад

    Great approach to making this video. Lots of great information explained with examples

  • @GameDevBits
    @GameDevBits 2 года назад +2

    Wow, this was fascinating to dig into. Thanks so much for all the details. Learned so so much from this one.

  • @InfernoTNT
    @InfernoTNT 2 года назад

    More of videos like this. The style is just right for learning.

  • @Test-iv4pm
    @Test-iv4pm 3 месяца назад

    I come back here every few months just to rewatch the best video on youtube :)

  • @LittleRainGames
    @LittleRainGames 2 года назад

    I knew about the down and up sampling, but the photoshop example really solidified it for me. GREAT video

  • @parasharkchari
    @parasharkchari Год назад

    22:50 -- That's exactly the reason. Since you were looking at URP (previously called LWRP), it is meant to have backwards compatibility for older hardware. It's the same reason that the terrain doesn't do indirect rendering in URP. HDRP is a different story, though. It actually is targeting newer hardware. Also, some platforms like VROS didn't yet support Vulkan in 2020.x or even OpenGL ES 3.1, so compute was not supported even though the hardware itself could do it.

  • @northhamptonshire
    @northhamptonshire 2 года назад

    This was a really well put together video and really nice result! Good job!

  • @stasdev
    @stasdev 2 года назад

    👏👏👏 I like how you upgraded all the aspects of the video
    A more clear explanation, a little bit of humor, lots of examples and analogies
    Can definitely see that a lot of effort was put in these 26 minutes

  • @Mugistan
    @Mugistan 2 года назад +1

    I literally can't wait for the next video
    This looks amazing

  • @gouravkd8545
    @gouravkd8545 2 года назад

    Man, this is Fantastic!!
    I love the way you explain this.
    I just don't have words to appreciate.
    AMAZING!

  • @bharatr3260
    @bharatr3260 Год назад

    Absolutely fantastic video! I am implementing my own Vulkan based game engine and thought bloom had something to do with fragment shader lighting! Didn't know it was such a complex effect...

  • @emi6aston
    @emi6aston 2 года назад

    Dope Video! I was waiting for it. Thanks!

  • @masondeross
    @masondeross 2 года назад

    My conceptual understanding of what bloom actually does is much better now, thank you.

  • @gillian6792
    @gillian6792 2 года назад

    that was cool and very nicely polish. I enjoy it ! Hope you enjoy making it.

  • @prajwalprvce
    @prajwalprvce 2 года назад +1

    Love this new format

  • @UnderdogDen
    @UnderdogDen 2 года назад

    I love this style of videos, this is awesome!

  • @fudgeracoon2529
    @fudgeracoon2529 2 года назад

    That's a neat format, keep it up!

  • @whosnooby
    @whosnooby 2 года назад +2

    Please make more of this!

  • @falxie_
    @falxie_ 2 года назад

    Been seeing your stuff in my feed a few times, is the video that's made me sub

  • @adibattie9619
    @adibattie9619 2 года назад

    Fantastic video! Well explained and structured. Learned a lot!

  • @Tal__Shachar
    @Tal__Shachar 2 года назад

    Incredible video. Such high quality and dedication

  • @MecegguemMohamed
    @MecegguemMohamed 2 года назад +1

    very good explanation of the bloom effect, thank you :)

  • @HAWXLEADER
    @HAWXLEADER 2 года назад

    I love this video!
    It's even in landscape mode!

  • @RadicDotkey
    @RadicDotkey 2 года назад

    Thank you. Very well done presentation. I've been waiting for it.

  • @LogicEu
    @LogicEu 2 года назад

    Incredible video Cherno, thank you, will be waiting for that excellent sounding renderer course.

  • @xsandre-l
    @xsandre-l 2 года назад

    Omg i cant wait for the rendering course!!

  • @maxximus8904
    @maxximus8904 2 года назад +1

    I generally think I have a pretty good grasp on how the 3d graphics I work with are made. Even though I'm an artist, I love to see all the technicalities behind the scenes.
    I learned a lot watching this, never knew it did so many passes!
    The bloom in unity's HDRP starts with the threshold all the way down or something strange like that because it's "physically accurate" I can imagine it just blurs dark pixels less and bright pixels more. The gears in your head really start turning after watching something like this!
    I would love to see more videos like these!
    About:
    lightmapping
    SSAO
    Voxelized effects like VXGI and VXAO
    the all-new Mesh shaders
    There is so much to learn and know!

  • @DerrickCanfield
    @DerrickCanfield 2 года назад +1

    Excellent medium-high level view of bloom! AFAIK you are right in that Unity doesn't use compute shaders for calculating bloom to support older hardware. I'm not sure why they don't implement a compute version and switch the implementation by querying the features of the GPU. They could easily do it since the logic for bloom exists in separate source files they could just link to. I think any modern engine should be 100% compute when it comes to post effects and I'm glad to see that is the route you took.

  • @GreenDave113
    @GreenDave113 2 года назад

    Absolutely loved this more technical video focusing on one effect.
    Please do more!

  • @michaelgevlich2770
    @michaelgevlich2770 2 года назад

    Finally, someone have said it! Thank you! I tried the lessons and completely refuse the result in my project! I'll give it a try again!

  • @martonkos5775
    @martonkos5775 2 года назад

    The quality of this video is amazing.

  • @JakeDownsWuzHere
    @JakeDownsWuzHere 2 года назад

    this is great! thanks for putting this together!

  • @michelepa87
    @michelepa87 2 года назад +1

    There are many reasons why screen pass effects are still done in PS rather than CS. If nothing specific to compute is being used (sharedgroup mem or async), PS is mostly faster than CS, at least in my experience working with GCN arch. One of the main reason is that PS writes through ROPs (which has an orthogonal cache to L1/L2) while CS writes through cached memory, so the CS execution is way more sensible to cache coherency.

    • @jcm2606
      @jcm2606 2 года назад

      Yep, but there are ways to improve cache coherency in compute through "thread group swizzling" or "lane remapping" (NVIDIA calls it thread group swizzling, AMD calls it lane remapping, both are basically the same thing done in different ways), which basically alters your sampling coordinates for looking up textures to improve cache throughput by making texture accesses more spatially coherent. There's a few different ways of doing it, you could just use tiles (NVIDIA's thread group ID swizzling blog post uses tiles), you could use a Morton-Z curve, or you could use a Hilberts curve, but ultimately they all do the same thing. In fact, it seems like at least NVIDIA is investigating this lately on Ampere (probably Turing and Pascal, too), as I've noticed that some workloads where PS would outperform CS have actually switched to having CS outperform PS, and the only thing I can think of is the driver's making this same optimisation.

  • @ehrensto
    @ehrensto 2 года назад

    I'm not a game developer, but I am slowly getting into video making and a bit of VFX. And knowing how computers simulate bloom helps me understand how that'd work in a program like After Effects. Thanks!!

  • @danyapolyakoff
    @danyapolyakoff 2 года назад

    Wow, I really enjoyed the video!! Great work!

  • @CYON4D
    @CYON4D 2 года назад

    An excellent explanation of the bloom effect.

  • @PDivision1
    @PDivision1 2 года назад

    Thanks man, missed these slides. Will fix bloom in my engine :)

  • @AmazingMaxStuff
    @AmazingMaxStuff 2 года назад

    Awesome video! Thank you so much

  • @Pspet
    @Pspet 2 года назад

    Best format yet

  • @markhumes2645
    @markhumes2645 2 года назад

    Great video! Very well put together

  • @scott3489
    @scott3489 2 года назад +1

    This is really an excellent video!

  • @donutdude246YT
    @donutdude246YT 2 года назад

    This is so awesome!! Thank you for this!!!

  • @mneher97
    @mneher97 2 года назад

    Love the format! More like a video essay. Though I suppose it takes a lot more time to make than your typical style vids...

  • @devdeev3675
    @devdeev3675 2 года назад

    Awesome video, would love to see more videos like this

  • @Kaldrax
    @Kaldrax 2 года назад

    Really great explanation. Love it!

  • @creativity5155
    @creativity5155 2 года назад

    This video is bloody magnificent.

  • @CaptainJeoy
    @CaptainJeoy 2 года назад

    This is a really great video!
    My goodness, I really love the world of computer graphics!
    It can just be really frustrating some time, y'know as many things are not very well documented.

  • @angela_jx
    @angela_jx 2 года назад

    This was fantastic thank you

  • @ViviTheEnbyWitch
    @ViviTheEnbyWitch 2 года назад +1

    Great vid! There's one bloom effect I really like that was in Call of Duty Black Ops 1, where the bloom size is separated into X and Y axes (they stretched it out vertically quite often, one example is in the main menu), and I haven't seen it replicated in other games that often, I think it's a super neat artistic tool! Would love to replicate it for my own game.

    • @SimonBuchanNz
      @SimonBuchanNz 2 года назад +1

      You might be thinking of either anamorphic bokeh, which is a depth of field effect simulating fancy film lenses, or the anamorphic lens flare JJ Abrams style, which is a camera artifact simulating misused fancy film lenses when exposed to too much light, similar to bloom.

  • @newbiex11
    @newbiex11 2 года назад

    I liked this new format, it's easy for my to understand

  • @Test-iv4pm
    @Test-iv4pm 2 года назад

    This is a great video, thank you for making it

  • @JMRC
    @JMRC 2 года назад

    One of your best videos.

  • @mateuszbahyrycz7003
    @mateuszbahyrycz7003 2 года назад

    Great video, waiting for more

  • @JonathanMacher
    @JonathanMacher 2 года назад

    I would recommend the "screen" blending mode. I like the way it overlays the bloom better, and you don't need so many blur passes

  • @GreenFlame16
    @GreenFlame16 2 года назад

    I'd so love more of the C++ series, especially videos on more complex stuff, any plans on updates there
    Sir, you're *the* best source for C++, and I don't say it lightly. Your educational videos helped me a lot 🎩

  • @sanjayshorey4225
    @sanjayshorey4225 2 года назад

    Thank you for this great information.

  • @furroy
    @furroy 2 года назад

    one of your best videos!

  • @brightbluesmurf
    @brightbluesmurf 2 года назад

    Very nice explanation thank you

  • @kye2920
    @kye2920 2 года назад

    really cool video! thanks!

  • @AdriansNetlis
    @AdriansNetlis 2 года назад +3

    Amazing video! I was already aware of these bloom techniques as I did extensive dig into graphics rendering in the past, but I am sure there's a LOT of people benefiting from this right at this moment.
    Also a suttle note (taken from Unreal Engine) - the most realistic approach to this is using a threshold value of 0.0. The threshold is something you use for artistic control, but in case pure realism is what you're looking for, a threshold of 0.0 is the way to go. Oh, and at 18:21 blending using mix is the more nautral looking and realistic approach where you use a very, very small mix coefficient for the bloom texture.
    Edit. The reason why that approach is more realistic is because it effectively ensures energy conservation.

    • @vaanidel2117
      @vaanidel2117 2 года назад

      How small of a mix coefficient would you say is proper? Like, numbers? I'm playing around with it in my engine as well with my bloom, so I'm curious what you think

    • @AdriansNetlis
      @AdriansNetlis 2 года назад +2

      @@vaanidel2117 Very much depends on the style you're going for (clean lens or not, surrounding air humidity etc.). Also, you may want yo mix in a bit extra to fake atmospheric scatter if you do not have volumetric lighting calculations preset, while having lower value if you do. But generally around 0.00005-0.0002 is what I would go for.

    • @vaanidel2117
      @vaanidel2117 2 года назад

      @@AdriansNetlis Alright, thanks! I'll play around with my settings, then