Framebuffers | Game Engine series

Поділитися
Вставка
  • Опубліковано 12 лис 2024

КОМЕНТАРІ • 198

  • @pbentesio
    @pbentesio 4 роки тому +176

    I like the chats because they help in giving us a better overview of how things work, as opposed to just jumping straight into the code

    • @TylerFerraro
      @TylerFerraro 4 роки тому +2

      I find the chats to be informative although sometimes hard to follow. It can often feel like a running train of thought rather than a succinct and direct explanation, filled with lots of exposition and random additions.

    • @sebastianwardana1527
      @sebastianwardana1527 4 роки тому

      @@TylerFerraro your brain, not unlike your body, needs stamina, you can train it :) if you keep coming back and try to grasp something from a video, maybe next time its going to be two things and then you will start applying stuff you saw in the video, be patient!

  • @ramanagrawal1183
    @ramanagrawal1183 4 роки тому +68

    Please make an episode on framebuffers in OpenGL

  • @BlenderhilfeDe
    @BlenderhilfeDe 4 роки тому +32

    Hi Cherno! :)
    i love your series, i get a deeper understanding of the clockwork behind any game engine. very cool!
    Facecam is the way to go, because you chat a lot - witch is totally a good thing! you explain whats going on in detail, thats really cool. Pls keep that.
    We can better follow your explanations if we can see you. So i would suggest to keep the format like it is now. its very good! Dont worry :)
    thx & cheers, Tobi

  • @rendoirs
    @rendoirs 4 роки тому +40

    Cherno, you have nothing to be "insecure" about! Your videos are amazing and we love to hear you talk :)

    • @motbus3
      @motbus3 4 роки тому +2

      keep doing great work cherno!

    • @MuhZubairAli
      @MuhZubairAli 3 роки тому +1

      Exactly !!

  • @coolumar335
    @coolumar335 4 роки тому +16

    Love the new format - really allows one to see your entire thought process

  • @42mix22
    @42mix22 4 роки тому +178

    Keep the facecam, it looks more “natural” that way

    • @chilinouillesdepommesdeter819
      @chilinouillesdepommesdeter819 4 роки тому +12

      When you say natural,are you desribing charno's hair?

    • @pfd_mark_taylor
      @pfd_mark_taylor 4 роки тому +3

      Keep facecam - otherwise, it becomes less "personal" ??? Maybe? IDK, you do you

    • @reyeslexus
      @reyeslexus 4 роки тому +2

      Gay AF

    • @Tresla
      @Tresla 4 роки тому +4

      I like the facecam, because it means we're not constantly jumping between the code view and your face when explaining things. It's a lot less jarring.

  • @user-dm84
    @user-dm84 4 роки тому +6

    The chats/descriptions are perfect mate, keep it up! Thanks for the video.

  • @VladCool2001
    @VladCool2001 3 роки тому +32

    If anyone else is having their images rendered upside down in ImGui, add ImVec2{ 0,1 }, ImVec2{1,0} to the parameters of ImGui::Image to change the UV's of the image. For some reason, ImGui flips them by default

    • @DamirH
      @DamirH 3 роки тому

      Many thanks.

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

      thanks so much!

  • @beProsto
    @beProsto 4 роки тому +29

    I thought that you'd first do an OpenGL Series episode on this, but this is cool too :D

  • @vladcuciureanu
    @vladcuciureanu 4 роки тому +13

    I don't mind the facecam.
    6:30 I like when you go on a tangent or go more in depth on an idea.

  • @lukenukem8028
    @lukenukem8028 4 роки тому +1

    The selfie video is good, and the chat is nice. And filming during your real work, rather than doubling up, is smart.
    You often give us your inner most thoughts about programming stuff, and that can be helpful.

  • @winterSweet-k4m
    @winterSweet-k4m 4 роки тому +7

    I love that all *hair* situation you got over there

  • @GraveGround
    @GraveGround 4 роки тому

    I like the 'smalltalk' because it often describes your reasoning and arguments for why you are doing what you are about to do.

  • @MyEconomics101
    @MyEconomics101 4 роки тому +2

    Lockdown-Hair.
    Welcome to the club.
    PS: I'd recommend Wella Shockwaves (Mousse) Strength 3. Apply a handful in damp hair (not wet) after getting out of the shower. Style back with a comb. Let it air dry. Last for a good 3 days.

  • @lordkenny4889
    @lordkenny4889 4 роки тому +1

    Awesome video man! Unfortunately I haven't got this far in the series just yet but I still watch your newer videos just because they are fun to watch! Keep up the good work man, I really love what you are doing and this is helping me massively! :)

    • @morpheus532
      @morpheus532 4 роки тому +1

      Dude.. this video is 45 minutes long. You didn't even watch a quarter of it lol

  • @skesinis
    @skesinis 4 роки тому

    I think that with the facecam it’s more engaging for the viewer. Also about the chats, keep them because they are giving us insight on why you’re doing some things the way you do. Great work!

  • @programmerpc154
    @programmerpc154 4 роки тому

    Hi the Cherno I have 10 years of experience in software industry but every time I watch your videos I learn something new thank you ,I hope that you can make series about (design patterns , algorithms and Data structures challenges) ,I know there is a lot of tutorials in UA-cam but I think you will explain this topics more clearly thanks

  • @bjdubb
    @bjdubb 4 роки тому

    Hey Yan, Im loving this new video format. Its great to see you explain whats going to happen, write the code and debug it all without any editing. It really helps me to understand what Im writing. Thanks 😊

  • @stuartharvey7677
    @stuartharvey7677 4 роки тому

    Its good your explaining i have played computer games since i was 6ish but always wanted to know how to make one but never wanted to do a course so learning alot off you and getting a understanding why games are set out like they are.

  • @alexanderbaron9778
    @alexanderbaron9778 4 роки тому +4

    I would actually love to see more OpenGL concepts which you explain in the OpenGL series and also use in Hazel, because it would give you a sense for how to actually use these features in a practical concept.

  • @d.bahandov
    @d.bahandov 4 роки тому

    I really like this type of recording. It's nice knowing your personal opinions and thoughts. You are cool man :)

  • @sopalen
    @sopalen 4 роки тому +1

    You do your videos how ever you feel like, i like when you are talking and explaining things and give some different point of views.

  • @rishimenon5632
    @rishimenon5632 4 роки тому

    Awesome video as always !! I love the chats and I love the face cam as it makes it feel really natural and enjoyable. Also, would love to see a detailed video on FrameBuffers and the OpenGL rendering pipeline

  • @WakanaSora
    @WakanaSora 4 роки тому +1

    Keep the facecam, love the little chats too. I would honestly love just a video of Cherno talking about whatever is on your mind as you either code or do whatever, its honestly really great content while I work on my own code.

  • @socketam4524
    @socketam4524 4 роки тому +1

    The new format is so good, enjoying it (face cam must be kept :D).

  • @lukenukem8028
    @lukenukem8028 4 роки тому +3

    [10:20] Well! Now that's a great alternative to a hundred overloads!

  • @DukeLaze
    @DukeLaze 4 роки тому

    Personally I enjoy the longer videos, and having the "little chats" in between can be informative, as long as they are on topic.

  • @Mugistan
    @Mugistan 3 роки тому +1

    For anyone having a problem make sure that you're binding the framebuffer before clearing the screen

  • @dradux2079
    @dradux2079 4 роки тому +2

    I can't tell where you got the struct-idea from for the FramebufferSpecification (and similiar). But what I can tell is, that it is pointed out as good practice in the Cpp Core Guidelines. In this case especially the guideline I.23 (Kepp the number of function arguments low).
    A good example would be a function call like that:
    int area = Rectangle(5, 5, 64, 32);
    In this case it is hard to tell, what the parameters exactly mean. Is it TopLeft and BottomRight as points or is it TopLeft and width, height (dimension).
    int area = Rectangle(Point{5, 5}, Point{64, 32});
    This would be much clearer to the reader.
    The example above is from Kate Gregory, who had multiple talks about that topic. This specific example is from her talk "10 Core Guidelines You Need to Start Using Now" at the CppCon 2017. I can highly recommend watching her talks.
    Everything above is only made, because I can't turn off my inner teacher. Sorry. But on the other hand, have fun with it. ;)

  • @SteigerMiller
    @SteigerMiller 3 роки тому

    These videos are so great. Enjoy the long chats. Would love to see the Framebuffer OpenGL video. I don't know how you write so much code without running/testing immediately. Looking forward to the next one

  • @lakojno5658
    @lakojno5658 4 роки тому

    OMG its amazing ppl working with this so fast

  • @billykotsos4642
    @billykotsos4642 4 роки тому

    This guy keeps putting in the work.!!!! Real inspiration keep it up dude!!!!!!

  • @bukinnear
    @bukinnear 4 роки тому

    You seem unsure of why we watch these videos, so I'll give my (personal) two cents of why I like your videos. (Bear in mind that this is the view of someone subscribed, not someone who came across your video trying to find specific information. Take that for what you will.)
    You are interesting, and informational background noise.
    That sounds mean, but it's my use case. I'm not watching constantly. I flip over every time you start talking about something I find interesting, and your little chats mid way, are absolutely packed with interesting little nuggets. so I love your little rambles mid way, they are probably what I am watching for, in reality, all of those little nitty-gritty tricks of the trade that you just don't find in your average tutorial.
    So I don't want you to just skip straight to the code. I'm here for you, and your experience. If I just wanted to know how to do X, I would have googled it and found it from a million other tutorials.
    I also like the face cam, for similar reasons, it's more of a 'connection' than a tutorial.

  • @hamdaman3593
    @hamdaman3593 4 роки тому +1

    Can't wait to make a game on your engine,
    Keep up the good work

  • @ajc200x
    @ajc200x 4 роки тому

    You are clear and concise, and explaining the reason and the process is sharing your knowledge about a given scenario of use and practises of a given function, the one thing i do find a little frustrating is your use of the alt-tab/file switching, so keeping track on which file your editing is a little confusing at times, you have to pause and rewind to see what your tabbing too, as you know your code we dont so tracking which file your currently on is a little differcult some times, i would add like a subtitle of the name of the file your currently editing to help keep track / follow & learn whats what and what file your editing. a good example is at 14.00 mins in, the titles to the files are soo small, you cant see them properly. you alt-tab or so something and your instantly in a new cpp file, when ever you move to a different file, just sub-title it, so we know what the file is your currently editing, 14.35 onwards you do a lot of quick tabs and do some edit / copy switch to one file then to another file and it gets confusing, you type so quickly or make an edit that quickly, its missed even if its to check something then you swap back to a file and its like ok... what file are you on now?? so subbing your tab swaps will help a lot. I think every swap should be subbed. I hope you see that as constructive to help us with following your Hazel Engine progression.

  • @flat9safety
    @flat9safety 4 роки тому

    Keep the face, and dont worry about it being a 'long' episode! It's fun to watch!

  • @_whittington
    @_whittington 4 роки тому

    The sneeze break was pretty funny.

  • @EsserPeter
    @EsserPeter 4 роки тому

    I really enjoyed the video :) Thanks! and thanks for making this one longer :) I personally think that this length is better for this kind of video :) Keep it up!

  • @gnolex86
    @gnolex86 4 роки тому

    glTexStorage2D is a OpenGL 4.2+ feature that allocates immutable-format texture with specific dimensions, format and mipmap levels. It's almost like calling glTexImage2D for every mipmap level. After being created, its dimensions, format and mipmap levels can't be changed, you can only change its content using functions like glTexSubImage2D. This is the recommended way of creating textures in modern OpenGL because OpenGL can use immutable objects in an optimized way. It's perfectly fine to use it as framebuffer attachment and it might actually be somewhat faster.

  • @glennstormdesign
    @glennstormdesign 4 роки тому

    All good. It also seems appropriate to emphasize a suggestion: do code, then talk (react to code video) In my experience writing code (c++ not so long, other languages a very long time), it takes full focus to do well. Likewise, speaking effectively takes focus. Add to that the assertion that multi-tasking is a myth; we are serial processors, and a few improvements can be clearer. If you feel like talking, an intro sounds good. Coding with that out of the way may feel more straightforward. Taking talking breaks sounds like a good idea. Wrapping up with a conclusion might be best. It may only take the knowledge that you'll have a good long time to talk over your code, in between talking breaks, to feel that your words will come out, and be said well; which can allow you to feel better about coding in silence. This suggestion comes after seeing a halting struggle to do both eloquently speak and write code from scratch. I like the idea that you're finding the right balance between 'just do it' and 'take it slow'. 'Hope that helps, because this series is awesome.
    [EDIT] Mentioning how early Doom (Wolfenstein,etc) programmer Carmack introduced the game frame buffer as the idea 'blitting' to speed up framerate would be good history to mention here. In short, writing color to a block of memory takes less time than drawing color pixels, and then swapping a whole block of memory representing the frame (frame buffer) can be done as a single, fast operation ('blit', or swap) from that buffer memory location to the screen memory location. /my $0.02

  • @ShubhamBirange
    @ShubhamBirange 4 роки тому

    loving this style of videos

  • @rexxarmars760
    @rexxarmars760 4 роки тому

    Yes an OpenGL video on framebuffers would be great! Keep up the good work!

  • @0101-f1j
    @0101-f1j 4 роки тому +1

    His hair just gets crazier and crazier.

  • @TheJorge100
    @TheJorge100 4 роки тому

    That specification stuff you are doing is definitely a subtle thing you picked up at EA. I work there now and I started using it in my code too. I tracked in down and found a bunch of examples of that being done in engine and in game

  • @adrianjakubiak9280
    @adrianjakubiak9280 4 роки тому

    Thanks for increasing the font, it's perfect now!

  • @andrewbain-lindsay
    @andrewbain-lindsay 4 роки тому

    There are a lot of youtube programming videos out there that are just a screen and someone talking over the top of it. I think that having a "personal" connection by appearing on screen is one of the aspects that separates your channel from the crowd

  • @jostclaassen2198
    @jostclaassen2198 4 роки тому

    facecam is good bro. Especially in these times when many of us are in lockdown its great to see a human face and ur a good looking bloke, would be a shame to hide ur face from us.

  • @VanillaSixtySix
    @VanillaSixtySix 4 роки тому +4

    Checking subs at just the right time squad!

  • @kinsondigital
    @kinsondigital 4 роки тому +1

    YES...more opengl videos!!
    DirectX videos would be awesome too. :D

  • @tzimmermann
    @tzimmermann 4 роки тому

    Hi Cherno! I definitely like the new format.
    You might want to use git-flow to create branches more easily when you are developing a new feature. This way when you don't actually want to push to master, simply publish a feature branch with your work in progress so people can benefit from it right away.

  • @georganatoly6646
    @georganatoly6646 4 роки тому

    Great videos! I enjoy experiencing different perspectives going into this degree of detail.
    Tiny point of constructive criticism: Consider using *.hpp instead of *.h for C++ files. I do a lot of work in C as well as C++ and they can tend to use different formats, tools, versioning (different projects/branches), etc., and found separating the two to be quite beneficial. Hardly a big deal though, great video!

  • @prezadent1
    @prezadent1 4 роки тому

    OMG, actual content that I subbed for. I almost had a heart attack it was so unexpected.

  • @mranthonymills
    @mranthonymills 4 роки тому

    I think the thoughts you have on why you're doing the thing are probably more important than actually doing the thing, because they're more broadly applicable and useful.

  • @TheGguuii
    @TheGguuii 4 роки тому

    Maybe add some polls during the video when you want us to decide between one thing or another, it could be easier to get the answer straight away

  • @cookiecan10
    @cookiecan10 4 роки тому +1

    I would really appreciate some more OpenGL videos, stuff about framebuffers, swapchains, double/tripple buffering, shadowmaps, etc. Perhaps a video about what happens behind the scenes in OpenGL.
    As for the facecam, do keep it. There are moments when you're just talking without doing anything in your code, without a facecam there would really be nothing to look at in those moments.
    (Keep it on the right side of the screen, idc if it's the top or bottom. On the left side it will definitely get in the way of your code easily)

  • @VineetNairhero
    @VineetNairhero 4 роки тому +2

    Finally the pineapple lights are back♥️

  • @MichaelAversa
    @MichaelAversa 4 роки тому

    Keep the facecam. The chats are great. I like hour+ long videos too because I like listening to them while I work.

  • @offspec
    @offspec 4 роки тому

    That _____Specification struct is a *very* javascript solution haha. Thoroughly enjoy how easy it is to use.

  • @VirakNgauv
    @VirakNgauv 4 роки тому

    Facecam looks good! Position is good too!

  • @gurjindersingh3843
    @gurjindersingh3843 4 роки тому

    8:00 You can take brake from typing if you want to speak and just get your thoughts out instead of doing two things at once.

  • @doritosvegas2096
    @doritosvegas2096 4 роки тому +2

    Pineapple Lights! Yay!

  • @Sheopaard
    @Sheopaard 2 роки тому

    I LOVE THE FACE CAM. Actually could you make it so that your face takes up most of the screen and the code is in the small screen in the corner?

  • @odedkadshai
    @odedkadshai 3 роки тому

    you are my stackoverflow

  • @iHelpOfficial
    @iHelpOfficial 4 роки тому +1

    Oh, yes please! OpenGL videos would be really helpful

  • @call_me_stan5887
    @call_me_stan5887 4 роки тому

    Hey, Cherno :) Good show! Keep it up! ...and keep the facecam - also I like warm lighting.

  • @AlexDivineycomedy
    @AlexDivineycomedy 4 роки тому

    I would love a framebuffer video.

  • @AnythingSoupVODS
    @AnythingSoupVODS 3 місяці тому

    Heyo, If you're experiencing the Framebuffer being flipped horizontally, in
    ImGui::Image((void*)textureID, ImVec2(1280.f, 720.f))
    be sure to add
    ImGui::Image((void*)textureID, ImVec2(1280.f, 720.f), ImVec2(0,1), ImVec2(1,0))
    & this will fix that problem!

  • @samuelrasquinha6712
    @samuelrasquinha6712 4 роки тому

    I would very much like a dedicated opengl episode on framebuffers, post processing and lighting

  • @rasmadrak
    @rasmadrak 4 роки тому

    Keep the face-cam, and keep the current lightning. Much better contrast and saturation in this video. :)

  • @supersolenoid
    @supersolenoid 4 роки тому

    Love that perm

  • @sebastianwardana1527
    @sebastianwardana1527 4 роки тому

    you know, some people would love to play starcraft the way he programs, and if thats the way im heading to, i cant wait!

  • @ckacquah
    @ckacquah 4 роки тому

    Is it just me? OR Do your videos get better with time?😍👍... And yes more opengl and perhaps vulkan... And yes more face cam

  • @andrewfielden284
    @andrewfielden284 4 роки тому

    Your FrameBufferSpecification struct is a bit like the DTO (data transfer object) pattern, where you encapsulate a lot of separate data items in one object.

  • @valters-tomsons
    @valters-tomsons 4 роки тому

    You can support Vulkan and use MoltenVK by Khronos for automatic metal support.

  • @gamestrap401
    @gamestrap401 4 роки тому +1

    I think that you got the codestyle for the FramebufferSpecification struct and similar from VulkanAPIs VkXXXCreateInfo structs :D At least I got some flashbacks (:

    • @SimonBuchanNz
      @SimonBuchanNz 4 роки тому

      It's also DirectX style, inherited from general Windows API style that evolved over time.
      The name and passing it back out is also a very D3D thing.

    • @gamestrap401
      @gamestrap401 4 роки тому

      @@SimonBuchanNz Interesting I havent worked with DirectX yet so I didnt know that

  • @finn5205
    @finn5205 4 роки тому

    please keep the facecam. it makes it more vivid

  • @MakuDraw
    @MakuDraw 4 роки тому +2

    Hi Cherno, thanks for the awesome tuts, i wanna let you know that i'm interested in an openGL video about FrameBuffers.

  • @onkarshinde2033
    @onkarshinde2033 4 роки тому

    We always hungry for knowledge and Specially if you are the teacher, Framebuffer in OpenGL.....Hell Yesss🤗

  • @KennyTutorials
    @KennyTutorials 4 роки тому

    Omg, In other words, the same thing can have different names in different api's. That is, in Open GL, FrameBuffer is Framebuffer, in DirectX 3D is RenderTargetView, and in Vulcan is RenderPass

    • @SimonBuchanNz
      @SimonBuchanNz 4 роки тому

      Vulkan Renderpass is a little different, in that it's about when things happen, rather than where, given that you're always explicit about the where.

    • @TheCherno
      @TheCherno  4 роки тому

      RenderPasses in Vulkan are not framebuffers, they're a different type of object entirely - Vulkan has framebuffers as well. When I was talking about render passes I meant _in addition to_ framebuffers.

    • @KennyTutorials
      @KennyTutorials 4 роки тому +1

      @@TheCherno Ohh, thanks) Because so much stuff going on, so many differents between single API, and when you are on 70% know open gl, and others apis on 25 its kinda difficult to compare. Thanks again, you really doing great job on the episodes.

  • @iLiokardo
    @iLiokardo 4 роки тому

    nice. you got electric bracket pairing

  • @sc5shout
    @sc5shout 4 роки тому

    AFAIK there is almost no difference between texture storage and texture image. The only difference is that if you use texture storage, a size of the texture is immutable. If you want to resize the texture, you need to recreate it. I also think that texture image does internaly texture storage and when it is needed it recreates the texture.

  • @totallynuts7595
    @totallynuts7595 4 роки тому

    facecam good. keep.
    framebuffers are pretty simple imo, a dedicated epsiode in the opengl series wouldn't really be needed. Maybe an episode in which you go through multiple simple features like framebuffers at once?

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

    This helped me a lot thx

  • @davidmiller3867
    @davidmiller3867 4 роки тому

    Much better (font)!

  • @UncoveredTruths
    @UncoveredTruths 4 роки тому

    the specification struct is what vulkan does

  • @42mix22
    @42mix22 4 роки тому

    Yay! super useful video time!

  • @peter1745dev
    @peter1745dev 4 роки тому

    I definitely think you should do an OpenGL video on Framebuffers

  • @osere6432
    @osere6432 4 роки тому

    Framebuffers and compute shaders, we need opengl videos!

  • @lokeyt2241
    @lokeyt2241 4 роки тому

    Continuing with this rendet to texture thing. I would like to see a dynamic shadows video using depth buffer and depth textures

  • @j.j.733
    @j.j.733 4 роки тому

    Will Hazel be open sourced when released? I think you're doing fine in the video so don't overthink it. You're a cool dude and very interesting to listen to and watch. Pretty excited you're going linux support with vulkan.. this is something i am looking forward to when it's finally is out. Love your videos man so keep them up!

    • @VineetNairhero
      @VineetNairhero 4 роки тому +1

      Hazel is gonna be open sourced after its completely developed 🙂

    • @j.j.733
      @j.j.733 4 роки тому

      @@VineetNairhero thank you very much for the answer!

  • @DridriLaBastos
    @DridriLaBastos 4 роки тому

    framebuffer video --- yes
    facecam ------------------ ok

  • @CombatFXZone
    @CombatFXZone 4 роки тому

    Yaaaay new Video! Please upload more OpenGL content :)

  • @FloatyMonkey
    @FloatyMonkey 4 роки тому

    My own graphics API abstraction also uses structs to pass a large amount of variables on to a class like you do at 10:25. I guess it's pretty common. Mine would be called FramebufferDesc instead of FramebufferSpecification though, the latter takes too long to write and as a programmer, I'm lazy ;)

    • @jamesmnguyen
      @jamesmnguyen 4 роки тому

      Vulkan basically only uses structs to pass arguments to functions. Pretty neat and annoying at the same time.

  • @---qm3wz
    @---qm3wz 4 роки тому

    Love your video
    Can you make a mindmap or something like during the video?I believe it'll bring these tutorials to a higher level

  • @ashwinrohit2026
    @ashwinrohit2026 4 роки тому

    circular facecam would be cool

  • @DrunkTalk
    @DrunkTalk 4 роки тому

    BIGGER FACE CAM Pog

  • @ThomasBussmann
    @ThomasBussmann 4 роки тому

    I'd like to recommend a bullet like (circle) face camera.

  • @20270813978095210
    @20270813978095210 4 роки тому

    yes, vulkan please! : D Vulkan + moltenVK?

  • @jondoe1444
    @jondoe1444 4 роки тому

    CHERNO!! CHERNO!! CHERNO!! CHERNO!! CHERNO!! CHERNO!! CHERNO!!

  • @user-hz4tc2pf3x
    @user-hz4tc2pf3x 4 роки тому +8

    Oh, yeah, the facecam is in a good position