Adding an Interactive 3D Camera System // Ray Tracing series

Поделиться
HTML-код
  • Опубликовано: 19 окт 2024

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

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

    Thanks for watching, hope you all enjoyed the episode! Support the series AND learn all the math you need by checking our sponsor Brilliant! Visit brilliant.org/TheCherno to get started learning STEM for free, and the first 200 people will get 20% off their annual premium subscription.

    • @unkgames-abdullahali4048
      @unkgames-abdullahali4048 2 года назад

      can you back to game engine series

    • @Adam-kk7nw
      @Adam-kk7nw 2 года назад

      Cherno can you please explained how do I step this up in c++ can u explained in detail please
      First, define an integer variable and assign it any value of your choice. Then you'll need to perform the
      following operations with it:
      1. Add 9
      2. Multiply by 2
      3. Subtract 4
      4. Divide by 2
      5. Subtract by the variable's original value
      6. Finally, display what the end result is.
      7. Once your math / code is complete, double check your work by seeing what happens with the
      end result when you use different starting values.
      I'm little confused what to do first to do this

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

    It's just a chef's kiss when you refactor your code to make it more powerful, and only a few characters change because of all the forethought.

  • @zvxcvxcz
    @zvxcvxcz Год назад +7

    When explaining in words he said that a little backwards. Cross products are not commutative, so make sure you cross camera direction (forward vector) with up direction to get the right direction. Just after 12:02 he says it the other way, that is, to cross the up direction with the forward vector, which would give the left vector instead of right. The code he shows is doing it correctly.

  • @aaronh248
    @aaronh248 2 года назад +11

    Mind blowing stuff really. This series along with the hazel series and such really showcases how much work is being done behind the scenes by all the programmers of the world. All these programs we use, games we play, whatever, has someone back there pounding away at their keyboard creating insane code to get everything to function right.
    Amazing. Can't wait to see the next video!

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

      Not just the game programmers too. but also the people making the libraries like GLM!

  • @idomaimon6105
    @idomaimon6105 2 года назад +15

    I simply love seeing how this series is progressing, keep up the great work!

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

    Your explanations are very concise. Can't thank you more :)

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

    This is so addictive. I'm creating a ray tracer too using Gabriel Gambetta's book "Computer Graphics from Scratch" and it's similar to this in many ways, but it's just so cool seeing how your approach differs ever so slightly from mine and Gabriel's (in the book).
    Great series!!

    • @hmmmidkkk
      @hmmmidkkk 5 месяцев назад

      I'm following the same book as well!

  • @peterstewart4352
    @peterstewart4352 Год назад +1

    You are absolutely right, Earl Gray is amazing.

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

    I love all of your C++ videos! They're explained so well! Keep up the amazing work!

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

    Raytracing is so sick, and I’m such a fan of the way you explain these things. You’re awesome!

  • @the.alimohit
    @the.alimohit 10 месяцев назад +1

    Hi Cherno, Thanks for your awesome Ray Tracing series. It's wonderful. Could you please learn about camera more details and its implementation and math

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

    This is awesome man. Thank you so much, this series is so exactly what I wanted to learn and the explanation level is spot on - I can follow along perfectly fine.

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

    Great episode! I would love to see you use S.I.M.D. to optimize the ray-tracer. That would be great ;-)
    Also i really curios how you will implement light transfer and that kind of stuff.

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

    I love your series

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

    great stuff. I couldn't get Vulkan to work on my mac, so i need to learn Metal if i want to get imgui and gpu goodness working

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

    Uhm at 13:10 doing it that way is slightly slower since your multiplying with a vector and a scaler its better to have the single floats in front then lastly multiplying with the vector.

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

    Cherno is like the “MrBeast“ of coding. Full-on dedication while also making this super fun to learn and watch.

  • @ZacharyChan-d3q
    @ZacharyChan-d3q 9 месяцев назад

    Hi, Cherno, you actually did a great job in this series, but one point confused me is that how to rotate sphere by using Mouse input, it looks like when i am holding Right Button and dragging the mouth, it just change the position of sphere not orbit

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

    If you go through the sphere directions go berserk! :)

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

    Will you every do a 3D game engine series??? cause I really like the 2D one but I have always wanted to make a 3D game engine

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

      And every where I look its always an " API " game engine to help you make game in pure C++, not a GUI game engine like you do it

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

    Okay guess nobody is perfect. English Breakfast is the superior tea. 🤪

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

      Earl Grey is better, has more flavour.

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

    Hey Cherno, could you do a short video showcasing how to work with the framebuffer in GLSL? So, when doing continuous processing, we don't have to pass data to and from the GPU.
    Or, if that's too much, I would like to ask for a video on how to best save framebuffer data to filesystem, such as when making a screenshot.

  • @EzraClintoc
    @EzraClintoc 5 месяцев назад +1

    where do I get the camera.h and camera.cpp?

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

    the most important equation: point plane distance (k-value) k = (ax+by+cz-d)/(a^2+b^2+c^2) where (a,b,c) is plane normal and (x,y,z) is the point, k is the vector multiplier along the plane normal

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

      I love the trolls in the morning coffee

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

      for plane-rays you only have width amount of rays to calculate, a ton less on a cpu as well

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

      plane-ray casting is very much like rasterization but its not

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

      matrix shzzz is shzzz, also the world space thing

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

      physically based arguments, not random self-defined concepts that complicate issues

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

    Love your series!!!

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

    The Q and E being flipped on your system is because you need to multiply with m_View instead of m_InverseView on line 132 at 16:42

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

    Awesome teaching bro! : )

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

    "Earl Grey is so much better than English Breakfast." 💯 My wife and I both agree.

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

    Cherno can teach us what std exeption is? Thank you.

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

    Can you do a video on how you have configured your syntax hilighting colors. Please.

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

      Its because of the VisualAssist addon mostly.

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

    Hey Cherno can u pls make a video about modules

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

    Great Video! btw does anyone know what keyboard does he use?

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

    Love you cherno 💜💟

  • @Johnny-tw5pr
    @Johnny-tw5pr 2 года назад

    If the pitch changes, don't you need to update the up vector too?

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

      No because in that case the only thing that changes about the right vector is its magnitude.

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

    I have question for professionals in game engine dev. Would it be helpful to learn in depth how does work iostream in std? If, for example, I am going to make game engine from scratch just for fun? I have some interest on iostreams, but I have a little time to devote for programming because of university.

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

    Havent seen entire video yet. But do you really need to update the view directions when the camera moves? Couldn’t you calculate them once in view space when you have the perspective parameters, and then just apply the inverse view matrix to them when using them?
    Or perhaps at least thread the calculation of them.

  • @unkgames-abdullahali4048
    @unkgames-abdullahali4048 2 года назад

    can you make a episode about frame buffer from scratch using opengl and ImGui to create a viewport image? Thanks

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

    What theme are you using

  • @Basel-ll8fj
    @Basel-ll8fj 2 года назад

    keep up the great work 🌹🌹

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

    I learn from these series, but I have no idea what and how to do any of these, because they are just rushed through, oh lets now add code here, here change this and we have this now. Maybe I'm just really bad at learning no idea anymore

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

    Hi Cherno. Could you talk about how to debug Dx12 DXR Raytracing shaders? I know it's going to be a while before you get to that point in this series. But I need it for my Thesis work. I tried PIX from microsoft. But it doesn't have raytracing shader debugging support. Even a simple reply to this comment might help.

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

    I hope you answer tNice tutorials bro, I am wondering how can I add plugins from another disk drive if my main drive (where I installed soft soft)

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

    Lapsis episode 9 when?

  • @TheRealMangoDev
    @TheRealMangoDev 4 месяца назад

    wait what i thought u could just git submodule update

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

    I love Earl Grey better as well 😊

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

    nice

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

    👍

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

    Quaternions aren't scary, they're just a scaled (sin(a/2) rotation axis and a scalar (cos(a/2)). The code implementation can get a little messy, but that's usually hidden very nicely by the library. The hard part is getting the rotation order correct (when combining rotations), but that's the fault of 3D rotations being unintuitive and non-commuting, not quaternions themselves.

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

    I will not accept this slander against English breakfast 🤣

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

    ;)

  • @Alperic27
    @Alperic27 6 месяцев назад

    🤦‍♂️🤦‍♂️🤦‍♂️

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

    Can you agree ray tracing proves we live in a flat earth digital realm/construct.. A sophisticated simulation.. we each render the game world through our eyes depending on our location.

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

    I'm kinda stuck in the last part...
    In Walnut.cpp, at "OnUIRender()" I keep getting "member function declared with override does not override base class member" and get failures in build...
    Would greatly appreciate any help.