Perspective Projection Matrix (Math for Game Developers)

preview_player
Показать описание
In this video you'll learn what a projection matrix is, and how we can use a matrix to represent perspective projection in 3D game programming.

You'll understand the derivation of a perspective projection matrix in 3D computer graphics. The matrix I'll derive is as used by left-handed coordinate systems like DirectX (OpenGL uses a right-handed system).

In perspective projection, objects that are far away appear smaller, and objects that are close to us appear bigger. We will learn how to perform this type of 3D projection using a projection matrix.

This is a very useful tool for 3D programmers, game developers, and other computer graphics professionals. Understanding the math behind how projection is achieved is important, and I want you to own this knowledge at the end of this video!

Don't forget to subscribe to receive updates and news about new courses and tutorials:

Enjoy!
Рекомендации по теме
Комментарии
Автор

This was *exactly* what I was looking for! Most tutorials are either way too simplistic, are focused on using specific game engines, or are so incredibly advanced that you need a PhD level to understand them. Your tutorial hit that exact sweet spot in the middle, where you get complete, detailed info, but can still understand it without already having ten years of experience. This vid made me subscribe.

Password_
Автор

To those still scratching their heads after watching the end of this video and putting the perspective divide in your [vertex] shader here is the conclusion he left out:

The output of the vertex shader is expected to be in Clip Space -- not NDC space (that is, with the projection matrix applied to the camera space vec4 but without perspective divide). Then, AFTER the fragment shader has run and the depth of each fragment has been determined the perspective divide is handled implicitly by the shader pipeline by dividing the values in the depth buffer by the w value stored in the output of the vertex stage.

Also, contrary to his statements, both modern OpenGL and DirectX assume Clip Space to be a left-handed coordinate system. Vulkan assumes Clip Space to be right handed (with the positive Y axis facing down). Rather, OpenGL's Clip Space expects the near and far plane to be mapped into the -1, 1 range whereas DirectX and Vulkan expect the near and far plane to be mapped into the 0, 1 range.

rdGen-Media
Автор

I honestly love these explanations.
Maybe i am a mongrel, but not using fancy words before explaining them works for me. I dont know why people cant do that normally 😊

motbus
Автор

I was super lucky to find this channel. After picking up some C/C++ and Linear algebra basics will definitively proceed a paid course about CG, Game engine and Raycasting to finally start my computer graphics journey after 20 years of procrastination :)

andreypopov
Автор

That feeling when you find that one video that answers all of your questions👍👌👌👌 thanks for the amazing explanation

florimonpoisson
Автор

Is this a joke, I just started learning rendering stuff and you just posted about the subject I was searching for. Your channel is a gem keep up the good work and thank you soo much for this quality content!

yusuf
Автор

This is the best video I've seen explaining how this perspective projection matrix works. Thank you so much! 😊

rigbyb
Автор

Thats the best video i have seen in the last months i subscribed to your channel and liked the video keep it up you did a great job

Seewolf
Автор

Took me weeks of learning this in school and it's summarized into one short video. Great job

alastairtheduke
Автор

Thank you for the great video! By the way, congratulations for completing the new physics tutorial. Another one that I really want to do!
I can imagine that the last few weeks have been tough. It is often like that on the last mile of a project, right?
Do you already have an idea of what topic you will do next?

starcw
Автор

this video is just something else, it explains so well a really complex thing.

arielpajares
Автор

Excellent explanation! Very well done and paced. I learned a lot!

flwi
Автор

All I can say after watching this video is awesome. You are the best by far compared to other videos on this topic.

grtgoalsgrtgoal
Автор

Your channel is amazing, muito obrigada!! <33

kellybmackenzie
Автор

Very nice and detailed explanation. Thank you very much!

deinemama
Автор

Wonderfully explained. Clear and thorough

deathTurgenev
Автор

I'm already saving for the 2D Physics game course :)

Just saying, I'm enjoying the Raycasting course while at it

Metacious
Автор

great explanation. I was learning shader stuff and it helped a lot

somesome
Автор

Fuck yesss, I have yet to watch but I'm glad to see this!

NonTwinBrothers
Автор

thanks so much, this was very useful and handy for me

shahroozleon