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.
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
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.
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!
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!!
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
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.
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.
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
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.
can you back to game engine series
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
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.
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.
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!
Not just the game programmers too. but also the people making the libraries like GLM!
I simply love seeing how this series is progressing, keep up the great work!
Your explanations are very concise. Can't thank you more :)
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!!
I'm following the same book as well!
You are absolutely right, Earl Gray is amazing.
I love all of your C++ videos! They're explained so well! Keep up the amazing work!
Raytracing is so sick, and I’m such a fan of the way you explain these things. You’re awesome!
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
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.
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.
I love your series
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
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.
Cherno is like the “MrBeast“ of coding. Full-on dedication while also making this super fun to learn and watch.
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
If you go through the sphere directions go berserk! :)
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
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
Okay guess nobody is perfect. English Breakfast is the superior tea. 🤪
Earl Grey is better, has more flavour.
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.
where do I get the camera.h and camera.cpp?
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
I love the trolls in the morning coffee
for plane-rays you only have width amount of rays to calculate, a ton less on a cpu as well
plane-ray casting is very much like rasterization but its not
matrix shzzz is shzzz, also the world space thing
physically based arguments, not random self-defined concepts that complicate issues
Love your series!!!
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
Awesome teaching bro! : )
"Earl Grey is so much better than English Breakfast." 💯 My wife and I both agree.
Cherno can teach us what std exeption is? Thank you.
Can you do a video on how you have configured your syntax hilighting colors. Please.
Its because of the VisualAssist addon mostly.
Hey Cherno can u pls make a video about modules
Great Video! btw does anyone know what keyboard does he use?
Love you cherno 💜💟
If the pitch changes, don't you need to update the up vector too?
No because in that case the only thing that changes about the right vector is its magnitude.
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.
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.
can you make a episode about frame buffer from scratch using opengl and ImGui to create a viewport image? Thanks
What theme are you using
keep up the great work 🌹🌹
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
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.
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)
Lapsis episode 9 when?
wait what i thought u could just git submodule update
I love Earl Grey better as well 😊
nice
👍
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.
I will not accept this slander against English breakfast 🤣
;)
🤦♂️🤦♂️🤦♂️
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.
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.