I’m binge watching these videos. Cem does an awesome job at exploring things. I can tell he really enjoys teaching and that is also what makes these visits so engaging! Great job! I will be watching his other content when I’m done with this series. Thanks for making this so approachable. I feel like I could teach someone else this from his excellent explanations. Thank you!!!
I've been studying this topic for a while and have an engineering background. I must say this 2D and 3D explanation of CG matrices for Rot/Trans/Scale is wonderfully done. Thank you very much for posting this to UA-cam.
One of the very few easy to understand explanation of otherwise made complex to understand topic! This one helps build the intuition which is very useful. Perspective projection is combination of Perspective transform + Orthographic projection is something explained very well. Looking forward to upcoming videos :)
Hocam Sabancı Üniversitesinde son sınıf CS öğrencisiyim, Computer Graphics dersimin midterm'üne hazırlanıyordum ki videolarınıza denk geldim. Slide'larınız konseptleri görsel olarak sürekli canlandırmanız ve enerjiniz harika, çok güzel anladım çok teşekkür ederim.
Edit: nvm, i think i got it now ^^ could it be there is a mistake in the matrices in min 37:06 ? Because when the far and near plane are both in negative z direction, 2/f-n gives us a negative scalar => would invert our z-coordinates aka change the handedness of the coordinate system. looking at the source code of glm::ortho for example, they put an extra minus sign in front: -2/(far-near) great videos btw :)
Thank you for the video! 3D rotation was very gentle, it alone worth a couple lessons. And when the homogeneous last coordinate gets to be zero - that's where the fun begins :)
Thanks for this great course Cem. I have a doubt at 58:33, why can't the 3rd row of [0, 0, ?, ?] be [0, 0, Pz, 0]? Would that not help with maintaining Pz = P'z? Since Pz^2 / Pz = Pz? Or does this matrix need to be independent of the P vector?
At 53:40, I am kind of lost here. Do you mean [α*x, α*y, α*z, α] and [x,y,z,1] are the same point w.r.t the camera view? In 2D dimension, for example, [1,2] and [3,6] are not same point with respect to position, but are the same when it represent direction. Is this the correct understanding?
Or another way to understand is that, because the existence of orthographic transformation, these two points ([α*x, α*y, α*z, α] and [x,y,z,1]) will eventually converge to one. Does this make sense?
Homogeneous coordinates take a 3D vector and make it 4D. Therefore [ax, ay, az, a] is a 4D vector. The corresponding 3D projection of such a 4D vector is [x,y,z]. Note that the 4D vector [x,y,z,1] (i.e. a=1) has the same projection.
Great series so far. I can't say I'm comfortable with the math yet but knowing what we're trying to achieve helps keep me motivated. I make environments in Unreal Engine 5 so understanding perspective has already helped me make better scenes. Cheers.
Hi, I’d like to follow these lectures and work on the assignments, but I’m unsure about my JavaScript skills. Is learning JavaScript essential for understanding and retaining the concepts covered in the course? Or are there alternative approaches I could consider? I’d greatly appreciate your guidance. Thank you!
another question: With the orthographic projection we were able to define the location of the view volume ourselfs. Now when we used perspective projection we kinda directly used the vertex-coordinates relative to camera space. that would imply that our view-frustum-box center is at (0,0) in the camera space, wouldnt it?
Cem, at min 54, could you explain why we are dividing the 4th coordinate(previously represented value 1 and for perspective transformation Pz). Looking at 2D transformation video, I thought the value 1 was introduced for the trickery of representing translation as a matrix operation.
The 1 value was enough for the translation part, but not enough for this case. Two things to highlight: one part is that if you take [x,y,z], and multiply by 'α', and do this for all α values in interval (-inf,inf) that gives you one particular line in 3D which goes through the origin. This is useful for us because if the eye is in the origin, we see this line as one point. Second take: we track this 'α' value like this: [α*x, α*y, α*z, α] and this represents the same point as [x,y,z,1] and so [x,y,z]. To get the 1, we divide all by 'α'. To truly understand this I believe you need to go through some calculations by yourself, but I can not help you in the limits of this comment.
I know you can change It however you want but I was alway most comfortable with your eye as 0,0,0 and -x left, -y up, and -z behind. +Y up is cool too if you think of it as Height. But then I’d prefer +Z moving away as a Distance value. Again do what ya like but be consistent.
I’m binge watching these videos. Cem does an awesome job at exploring things. I can tell he really enjoys teaching and that is also what makes these visits so engaging! Great job! I will be watching his other content when I’m done with this series. Thanks for making this so approachable. I feel like I could teach someone else this from his excellent explanations. Thank you!!!
I've been studying this topic for a while and have an engineering background. I must say this 2D and 3D explanation of CG matrices for Rot/Trans/Scale is wonderfully done. Thank you very much for posting this to UA-cam.
I am glad that I find this lectures. Thanks for great videos.
One of the very few easy to understand explanation of otherwise made complex to understand topic! This one helps build the intuition which is very useful. Perspective projection is combination of Perspective transform + Orthographic projection is something explained very well. Looking forward to upcoming videos :)
Lovely! Thank you Cem! 🙂
Your hard work is appreciated, I can tell you put a lot of effort into these videos. Thank you.
Thank you so much for this content. Please keep uploading more videos, this is gold!
Hocam Sabancı Üniversitesinde son sınıf CS öğrencisiyim, Computer Graphics dersimin midterm'üne hazırlanıyordum ki videolarınıza denk geldim. Slide'larınız konseptleri görsel olarak sürekli canlandırmanız ve enerjiniz harika, çok güzel anladım çok teşekkür ederim.
Thank you again University of Utah and Cem Yuksel for making these intro lessions available for the plebs at www
Edit: nvm, i think i got it now ^^
could it be there is a mistake in the matrices in min 37:06 ? Because when the far and near plane are both in negative z direction, 2/f-n gives us a negative scalar => would invert our z-coordinates aka change the handedness of the coordinate system. looking at the source code of glm::ortho for example, they put an extra minus sign in front: -2/(far-near)
great videos btw :)
Thank you for the video! 3D rotation was very gentle, it alone worth a couple lessons. And when the homogeneous last coordinate gets to be zero - that's where the fun begins :)
Beautiful and incredible explanation! Thanks a lot for you really hard work!
Thanks for this great course Cem. I have a doubt at 58:33, why can't the 3rd row of [0, 0, ?, ?] be [0, 0, Pz, 0]? Would that not help with maintaining Pz = P'z? Since Pz^2 / Pz = Pz? Or does this matrix need to be independent of the P vector?
At 53:40, I am kind of lost here. Do you mean [α*x, α*y, α*z, α] and [x,y,z,1] are the same point w.r.t the camera view? In 2D dimension, for example, [1,2] and [3,6] are not same point with respect to position, but are the same when it represent direction. Is this the correct understanding?
Or another way to understand is that, because the existence of orthographic transformation, these two points ([α*x, α*y, α*z, α] and [x,y,z,1]) will eventually converge to one. Does this make sense?
Homogeneous coordinates take a 3D vector and make it 4D. Therefore [ax, ay, az, a] is a 4D vector. The corresponding 3D projection of such a 4D vector is [x,y,z]. Note that the 4D vector [x,y,z,1] (i.e. a=1) has the same projection.
Great series so far. I can't say I'm comfortable with the math yet but knowing what we're trying to achieve helps keep me motivated.
I make environments in Unreal Engine 5 so understanding perspective has already helped me make better scenes. Cheers.
53 years old, if i was young again i would study Computer Graphics (at Utah)
Thanks a lot for posting Sir. It is really a useful lecture
Is there a downloadable link for the slide deck ?
Cem, at 31:15. The Projection Transformation, why 1 represents f and -1 represents n, did I miss something? I like your course very much😃.
Good catch! It's a left-handed coordinate frame. :)
@@cem_yuksel I see , thanks !😀
57:11 Pz multiplied by another Pz? Don't you mean divided by Pz or multiplied by 1/Pz, that's the only way one will get a 1?
Yes!
@@cem_yuksel Thank you for clarifying.
Hi,
I’d like to follow these lectures and work on the assignments, but I’m unsure about my JavaScript skills. Is learning JavaScript essential for understanding and retaining the concepts covered in the course? Or are there alternative approaches I could consider? I’d greatly appreciate your guidance. Thank you!
No, JavaScript is not essential, but it is not a hard language to learn for anyone with programming experience, and it is a good skill to have.
So well explained! Can't thank you enough!
another question:
With the orthographic projection we were able to define the location of the view volume ourselfs.
Now when we used perspective projection we kinda directly used the vertex-coordinates relative to camera space. that would imply that our view-frustum-box center is at (0,0) in the camera space, wouldnt it?
No, it is a transformation from the camera space to the canonical view volume, which has a different center.
@@cem_yuksel thanks!
Your illustrations are so great! Thanks for sharing these videos (^ ^)
Where can I download the slices?
Cem, at min 54, could you explain why we are dividing the 4th coordinate(previously represented value 1 and for perspective transformation Pz). Looking at 2D transformation video, I thought the value 1 was introduced for the trickery of representing translation as a matrix operation.
The 1 value was enough for the translation part, but not enough for this case. Two things to highlight: one part is that if you take [x,y,z], and multiply by 'α', and do this for all α values in interval (-inf,inf) that gives you one particular line in 3D which goes through the origin. This is useful for us because if the eye is in the origin, we see this line as one point. Second take: we track this 'α' value like this: [α*x, α*y, α*z, α] and this represents the same point as [x,y,z,1] and so [x,y,z]. To get the 1, we divide all by 'α'. To truly understand this I believe you need to go through some calculations by yourself, but I can not help you in the limits of this comment.
I know you can change It however you want but I was alway most comfortable with your eye as 0,0,0 and -x left, -y up, and -z behind. +Y up is cool too if you think of it as Height. But then I’d prefer +Z moving away as a Distance value. Again do what ya like but be consistent.
Great explanations.
9:35 yep.
I LOVE THIS CLASS
Thanks Tom Araya!!!
Thank you
School teaches you such generic things and I really want to niche down into graphics, but man the barrier of entry is very high.