Camera/View Space // OpenGL Tutorial #13

preview_player
Показать описание
In this video I describe the Camera/View space and provide a full overview of all the coordinate system transitions that are involved in 3D rendering. For the camera I use a well known model called the UVN camera and I describe the steps for creating the camera/view transformation matrix based on that model.

If you want to get the same version that was used in the video checkout the tag TUT_13_CAMERA_SPACE.

Timecodes
0:00 Intro
0:30 Background
1:18 Local Coordinate System
1:42 World Coordinate System
3:15 Camera / View Coordinate System
4:43 Camera / View Transformation
5:40 Coordinate Systems Summary
6:48 The WVP matrix
7:38 Building the view transformation
8:45 The UVN camera model
11:45 Coordinate system change of basis
15:02 Chage of basis in matrix form
17:03 Code review
20:42 Conclusion

Feel free to comment below.

Twitter: @ogldev

My gear (Amazon affiliate links):

Credits:

Enjoy,

Etay Meiri

#opengl #ogldev #opengtutorials
Рекомендации по теме
Комментарии
Автор

While working on tutorial 15 (camera rotations using Quaternions) I found out I have a serious bug in that last slide where I show the final view transformation matrix. I tried to use a shortcut by combining the translation and rotation matrices together but it cannot be done like that. You have to multiply them. I have just pushed a fix for that (ogldev/Common/math_3d.cpp) and I will address it again when the next video is out. Sorry.

OGLDEV
Автор

I have never seen a teacher who teaches Graphics with such an ease. You really have a great sense of explaining. Your strong focus on explaining the concepts is really the best part of you and it makes you unique, a great and valuable teacher.

SourceCodeAR
Автор

I truly believe that one day your series will become the go-to lectures on graphics programming.

taca
Автор

Your video has had a positive impact on my learning, and I wanted to express my gratitude

bdtckdh
Автор

Preaching to the choir here but your content is really fantastic. Thanks for the awesome series! Finding your channel made my day.

devinleamy
Автор

Very clear explanation and well paced, well planned.

ericstorm
Автор

I love how you visualize things. Makes it easier to understand what is going on with the camera behind the scenes.

abdulrahmanalsarori
Автор

I've been struggling to figure out how view matrices work, but this video helped me understand it wonderfully, thank you for this amazing resource!

chopchop
Автор

Thanks a lot, your tutorials are very intuitive and helpful.

ehsmou
Автор

This is an excellent description, thank you!!

brianrosenlof
Автор

thank you so much for making this series, you are so great at explaining and for someone who is learning about 3d rendering at the same time as building a renderer your explanations help so much, and you are the only person i have found who has helped me understand it so well :D

erinuioy
Автор

Thank you so much for sharring all this knowledge and providing those resources. This helps so much with the learning process. Its super well explained as well.

marlinjai
Автор

this videoo...was great..cleared all my doubts....thank you so much for your efforts 😊

Sneha_Negi
Автор

Hello, big fan of your teaching since years ago, as I have mentioned before, thanks to you I have managed to learn OpenGL by learning things from detail by looking at your theory and code.
Perhaps just a simple linear algebra that might help explain why the position of the camera is set to its negative and the camera rotation is its transpose:

The camera transform matrix in world coordinate system, would be the matrix T*R*S, where T is the actual position of the camera R orientation and S scale. that is, considering only rotation and position for now M = (T*R). In order to transform world to camera coordinate system, one simply negates the matrix M, such that M^-1. That means (T*R)^-1, which is equal to (R^-1 * T^-1) which is equal to (R.transpose * T^-1), where T will have its non-diagonal values negative such that M = (R.transpose* -T).

I wish to start someday with Vulkan... Maybe after you have a complete course on it :))

capsbr
Автор

Super helpfull! Having a hard time with Computer Graphics but your channel is helping me so much :)

paulaenchina
Автор

thank you very much and long live your YouTube channel !!

laurentbedief
Автор

Perfect explanation, Thank you so much.

taherlogbi
Автор

@16:11 in the video you say that the matrix inverse is equal to its transpose because the vectors are linearly independent, I think you mean't to say orthogonal. Good video though

suhailmohamed
Автор

some of the math was hard to understand, but i think if i watch it again, i will eventually get it. it feels like i'm looking at what happens when i use a glm::lookAt() behind the scenes.

coderedart
Автор

I'm not sure the jump from how the axis were defined to the fact that they should be normalized is really intuitive. Is it because of the fact that rotation matrix should be orthononormal?

solomonchild