Тёмный

The True Power of the Matrix (Transformations in Graphics) - Computerphile 

Computerphile
Подписаться 2,4 млн
Просмотров 569 тыс.
50% 1

"The Matrix" conjures visions of Keanu Reeves as Neo on the silver screen, but matrices have a very real use in manipulating 3D graphics. John Chapman explains the true power of the matrix.
Graphics series with John Chapman:
1/ Universe of Triangles : • A Universe of Triangle...
2/ Power of the Matrix : • The True Power of the ...
3/ Triangles to Pixels : • Triangles to Pixels - ...
4/ Visibility Problem : • The Visibility Problem...
5/ Light and Shade in Computer Graphics: Coming Soon
John Chapman is a graphics programmer who blogs here: www.john-chapman.net
How NOT to store Passwords: • How NOT to Store Passw...
Addendum - at 12:35 the formula should read: x*0+y*0+1*1
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computerphile is a sister project to Brady Haran's Numberphile. See the full list of Brady's video projects at: bit.ly/bradychannels

Опубликовано:

 

11 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 453   
@ApocDevTeam
@ApocDevTeam 10 лет назад
and this is just one triangle, now imagine modern video games that consist of tens of millions of triangles all textured, shaded, constantly moving and interacting with eachother at 30+ frames per second. you truly start to appreciate the power of a graphics processor.
@joaza772
@joaza772 10 лет назад
You should write matrix-vector multiplication in the correct way of x' = Ax and not x' = xA. Matrix multiplication is not commutative and xA cannot be evaluated. Also, do not teach people to use the 'x' for the dot product, that is for cross product. I know I'm an ass for pointing out how to write stuff but people should learn it the right way, considering this video was made for learning purposes :)
@nerdbot4446
@nerdbot4446 10 лет назад
Nice! Keanu Reeves explaines the Matrix. He knows best
@Xray-Rep
@Xray-Rep Год назад
I realize this video is 9 years old (at the time of this comment) but it is the BEST explanation of matrix transformations that I have seen and heard. Prior to watching this video, I have watched at least 18 or 20 other videos that explain matrix transformations but all of them left me confused. Now I understand details that were skimmed over or simply left out of the other videos. THANK YOU COMPUTERFILE for this excellent tutorial!
@MorreskiBear
@MorreskiBear 8 лет назад
I've tried to make 3D graphics from scratch on my old Commodore 64 before. The best I could do was rotate a stationary cube one point at a time, one axis at a time. Later I learned that somehow you could smush all three rotations together in something called a matrix - but couldn't begin to wrap my head around how or why that worked. Your video might have helped me begin to understand matrices and 3D stuff. Thank you!
@ThePrimebrook
@ThePrimebrook 10 лет назад
Don't skip the maths please, that's not a 'cool thing' to do. Presumably we're here because we're interested in the subject, so don't try and hide what it REALLY involves. You're doing the same thing that the profs in the 'Problems with High School Physics' video (on sixty symbols) were talking about - cutting out the maths. It's not boring, maths is beautiful and attractive - it describes the truth of systems (physical and simulated), and I'm interested in the truth. Thank you
@AbdulrahmanMajash
@AbdulrahmanMajash 10 лет назад
At 12:44 I think he made a mistake in the last set of additions. Since it's matrix multiplication it should've been: xa+yb+1*c xd+ye+1*f x*0+y*0+1*1 It wouldn't have mattered in the end (due to multiplying by zero), but this should've confused people who don't know matrix multiplication. Also, multiplying 3x1 by 3x3 isn't valid (# of columns of the first =/= # of rows of the second). He did it the other way around. It's alright using the formulas he put, but doesn't agree with the "row column" multiplication method which I assume many does it that way. I'm sure he knows what he's doing, but just wanted to clarify some points. Good video btw. Important for signal processing as well c:
@goeiecool9999
@goeiecool9999 10 лет назад
Why did he have to fast forward the rotation formulas!? I was really interested in seeing him work it out
@energysage9774
@energysage9774 10 лет назад
To any math nerds who freaked out when he multiplied two 1x2 matrices at 2:30, he did that for clarity for viewers who aren't clear on matrix multiplication (which seems overly complicated when you first learn it). He clearly applies the transformation which would be the 2x2 matrix given by first row [1, 0] second row [0, 2]. The way he wrote it, though, isn't so much incorrect as it is a different operation... it's element-wise multiplication, which programmers use often.
@carlossoto9511
@carlossoto9511 8 лет назад
"We're doing a shear operation in 4-dimensional space, which then casts it's shadow back to 3d space as a translation" am I the the only one that finds that beautiful?
@Sad-Lemon
@Sad-Lemon 7 лет назад
You can feel how passionate about graphics the presenter is by listening to him. I hope every single teacher in my country would share that passion for their respective disciplines ;)
@mkaatr
@mkaatr 10 лет назад
Looking forward to the video about how to map a 3D object/Surface into our 2D display screen :)
@yushatak
@yushatak 10 лет назад
WHY DID YOU FAST FORWARD HIS EXPLANATIONS OF THE PARTS THAT CONFUSE ME? O_O
@Kram1032
@Kram1032 10 лет назад
I bet it's going to be an extra video soon.
@bitasy1
@bitasy1 10 лет назад
In all honesty, they would confuse us more XD OOH he should put the explanations on NUMBERPHILE! :D
@ScottLahteine
@ScottLahteine 10 лет назад
Ah, this takes me back to the mid-2000's when I did a lot of work directly with OpenGL, and matrices were a real revelation. Happily today we hardly have to think about it, since the work has been done. We can just open up Unity 3D or some other 3D simulation environment and go to town with nary a thought for trigonometry. It's still essential to understand these concepts, since we sometimes need to do some fancy things, and it forms a good foundation to understand the world of 3D, but we no longer have to look at these complicated underpinnings very much today.
@SimonDouville1
@SimonDouville1 9 лет назад
I don't know why i'm watching these videos. I understand nothing to maths. But find it interesting that something that seem so simple to do in photoshop is in fact so complicated. Kinda feel humbled by that.
@CastelDawn
@CastelDawn 9 лет назад
i find it smoothing, i don't even really care about he's saying but the way he's talking i swear it's like smoking some.
@finthegeek
@finthegeek 10 лет назад
Disappointing, what is the point of going into this complex an idea and skipping out half of the detail....grrrrr that said having a decent understanding of it already it was a solid enough video
@isaac10231
@isaac10231 10 лет назад
Computerphile is probably one the best of your channels, Brady. You can't find such simplicity and good explanations elsewhere, that will give you a foundation to work off of. It is really nice.
@superearthbender
@superearthbender 9 лет назад
I think he's in The Matrix right now.
@LiborVojtek
@LiborVojtek 9 лет назад
Shouldn't last row be x*0 + y*0 + 1*1? 12:33
@chronikuad
@chronikuad 10 лет назад
This guy's been my favorite computerphile. He's been the easiest for me to understand and the most interesting. I've learned matrices but didn't know they had such applications.
@aglees2b
@aglees2b 10 лет назад
I like where this channel is going with the more in depth videos. Keep it up!
@Mrkol_
@Mrkol_ 10 лет назад
NOOOO! Make a separate video about all complicated math parts! DO IT!
@UltraMaXAtAXX
@UltraMaXAtAXX 10 лет назад
We do need some linear algebra in Numberphile.
@Crobisaur
@Crobisaur 10 лет назад
For his example of translating 2d objects (images for example) look up "Image Homography" it will explain all the stuff he left out.
@chiblast100x
@chiblast100x 10 лет назад
Wouldn't that be more in Numberphile's wheelhouse than Computerphile's? :D
@gumenski
@gumenski 10 лет назад
It's computerphile... doesn't seem fitting to me to go too deep into mathematics and should stick to explaining the general logic trains and technologies. Matrix operations are really a general maths topic and apply to all branches of science, and really would fit better on numberphile.
@dakirn3098
@dakirn3098 10 лет назад
This was awesome. Probably one of the coolest explanations of vector matricies I've seen. Thank you both for making it.
@Bignic2008
@Bignic2008 10 лет назад
Really fascinating stuff. I just learned about linear transformations and their matrices in linear algebra this semester, and seeing how it applies to computer graphics is quite incredible.
@vicktorioalhakim3666
@vicktorioalhakim3666 8 лет назад
I like how this video is making such trivial math operations seem like mystical "powers". :D Also, you have some problems in your math notation. You can't "multiply" two column vectors, unless you specify that you use a Schur product (element wise product). Also, in your vector matrix multiplication, why is the vector on the left side of the matrix, as opposed to the right? This is the first time ever I saw this notation, and I've red plenty of books/papers.
@herp_derpingson
@herp_derpingson 10 лет назад
This guy is so excited. All guys on this channel are so excited :O
@mrjoehimself
@mrjoehimself Год назад
The ability to teach these topics so eloquently is a real gift, it's truly a joy to watch.
@Dayanto
@Dayanto 10 лет назад
I love that you're covering more advanced stuff. This is litterally what I'm learning right now in college! :)
@dashama
@dashama 9 лет назад
Loved your video! Blessings and Love, Dashama
@KurakiN64
@KurakiN64 10 лет назад
This is one of the most interesting videos on Computerphile yet. ♥
@_m.a-x
@_m.a-x 7 лет назад
@13:15 Sir, that was a beautiful explanation. I had no idea that the third row/column for 2D (and 4thr for 3D respectively) were acutally doing something in the extra dimension. I thought that the "hack" was just to add placeholders for the translation parameters. But now that you explained the "sheer" in 3D makes so much sense!!! Thank you for that! Subscribed!!!
@AlphasysNl
@AlphasysNl 10 лет назад
I've seen this matrix translation in programs before, but never understood it, until now! Thanks a bundle!
@FerroNeoBoron
@FerroNeoBoron 10 лет назад
There should be a disclaimer about the convention he uses for vector/matrix and vector/vector multiplication. His vector/matrix multiply is reversed from what a lot of people have learned and the "x" he used for vector/vector multiply is the wrong operator (though there isn't an agreed upon one) for elementwise multiplication.
@bengski68
@bengski68 10 лет назад
One of the best explanations of matrix multiplication I've seen. Well done!
@HiAdrian
@HiAdrian 10 лет назад
I'm really glad you're doing this. I had to read up on this stuff when I wanted to write some simple code for geometric manipulation and it was difficult for me to grasp it. It's an interesting topic.
@NeilRoy
@NeilRoy 8 лет назад
This took me a while to wrap my head around a while back. But I really love just how powerful matrix math is. Great video, and I loved your commend at the end. :)
@brickman409
@brickman409 10 лет назад
This all went over my head
@mattt2684
@mattt2684 6 лет назад
Great video! Really had a great explanation!
@darkangel2139
@darkangel2139 10 лет назад
Awesome video. Would love to see the fast forwarded stuff in a continuation video :)
@investornewbie
@investornewbie 10 лет назад
This was an excellent lesson! These transformations were super helpful for doing engineering problems in 3 dimensions but I can never seem to remember them
@nodelynk
@nodelynk 10 лет назад
That's some special edition matrix/vector notation right there... Anyhow, nice video! :)
@Falcrist
@Falcrist 10 лет назад
I needed to come back to this video when I had time to really pay attention to it. I suggest that this is a VERY, VERY good thing. Most of these videos shouldn't be so complex, but some of them should go deeper. Very good video.
@laban123321
@laban123321 10 лет назад
Best editing seen in a long time =)
@Kram1032
@Kram1032 10 лет назад
If you are interested in this topic, you probably should also look into "Geometric Algebra" which is a slightly alternate but very powerful formulation of vector spaces.
@eduardogomes4865
@eduardogomes4865 7 лет назад
Wow, I was just very disapointed with the way that we had to translate an object using a matrix, because a linear transformation can't move the origin, but that explanation just made me so amazed! I never understood why everyone talked about shears, now I know their importance. Very clever.
@MacBuilder
@MacBuilder 10 лет назад
3D boolean intersect operations, Raytracing, Global Illumination, Reflection would all be interesting topics.
@shadowxelnaga
@shadowxelnaga 10 лет назад
awesome episode. i love the episodes with mathematical explanation
@supamap
@supamap 10 лет назад
awesome video!! i had seen matrix transformations in school and also realized that i couldnt translate with matrices... awesome trick with the shear!
@GermanSnipe14
@GermanSnipe14 10 лет назад
This guy reminds me of a James Bond villain. I like it.
@sergeys7603
@sergeys7603 Год назад
Good tutorial. Very useful to understand matrix transformation.
@ThomasGiles
@ThomasGiles 9 лет назад
Interesting stuff. I've known about matrices for a while, but it makes much more sense, now. Good job! Also, is there any chance that cut out bit will be posted at some point? I'm not 100% sure what it was he was doing in that bit, but I'd be interested to find out ;P
@ykmukund
@ykmukund 9 лет назад
This is by far the only video I have seen that explains that the 3D translation is actually a shear in 4D and that 4D shear is a linear operation. Excellent video. A lot of people I asked regarding the usage of 4 coordinates, just said "use it, it works" :P But this was a very good explanation indeed. To anyone interested, the "trickery" is actually a new kind of co-ordinate system called homogeneous cordinates :-)
@jonathanfox5
@jonathanfox5 10 лет назад
Really nice explanation, thanks!
@Sparragus
@Sparragus 10 лет назад
Thank you! I love these videos. Here's a quick suggestion: On the video description it would be nice to have some links for further reading on the topic. :)
@ioefhsof25913
@ioefhsof25913 10 лет назад
I love this videos so much having learned how to do this in the past brings so many cool memories :D thx for doing this videos :D
@peanutbuttersoldier8641
@peanutbuttersoldier8641 10 лет назад
I've been trying to teach myself all this lately. This really helps :D
@cyberkartoshka6667
@cyberkartoshka6667 8 лет назад
Pay attention kids, if you want to actually make video games this is going to be your life!
@DevAnomaly
@DevAnomaly 10 лет назад
Going for computer sciences in September, it's refreshing to see this. I'm mostly looking forward to writing my own engine for making video games or rendering 3D scenes that I have built in the past.
@Amunisify
@Amunisify 7 лет назад
Thank you so much. Helped a lot! :)
@Ubeogesh
@Ubeogesh 10 лет назад
Thank you! Please more 3d graphics videos!
@saadmaksood
@saadmaksood 4 года назад
Me and my girlfriend sitting in front of her parents and everything is awkward. Her : Say something ! Me : 0:01
@P4INKillers
@P4INKillers 10 лет назад
Hey, it'd be great if you guys could do a video on what quaternions are, and how they relate to transformations in graphics. Thumbs up!
@TomatoBreadOrgasm
@TomatoBreadOrgasm 10 лет назад
One day, I sat down and decided to learn how to do math with matrices, just for the hell of it. I'm glad I did, 'cause this would be completely mystifying to me otherwise.
@bitmaxim
@bitmaxim 10 лет назад
Excellent treatment of an important, fundamental subject.
@skinnyjohnsen
@skinnyjohnsen 10 лет назад
Thanks! I really enjoyed this .
@raydredX
@raydredX 10 лет назад
I think the last part turned really interesting but I think this is a bit like: The ones who know already will get it and the one who don't won't. Still loved the ending though, a really great solution to simplify it.
@eideticex
@eideticex 10 лет назад
Well the ones who do get it were brought to that understanding by using it for practical purposes. Easiest example would be game development, vectors and matrices are first class citizens and get more attention than anything else in game development due to how insanely useful they are.
@evroa
@evroa 8 лет назад
6:28 He forgot what is sin(90) that moment, they had to pause the record, then they remember and start recording before they finish laughing, lol :D
@AlexBayes
@AlexBayes 10 лет назад
Brilliant video, cheers.
@dinul117
@dinul117 10 лет назад
wish the rotational formula wasn't skipped over, i was enjoying the way john was explaining everything!!
10 лет назад
Awesome video. Please do more Computational Geometry videos.
@VeteaTOOMARU
@VeteaTOOMARU 10 лет назад
indeed !
@bbbbburton
@bbbbburton 10 лет назад
glad i took matrices quite seriously in school. should make things a bit easier at varsity next year :)
@DaFish1337
@DaFish1337 10 лет назад
Varsity? Isn't that a schools's sports team?
@Thomvd
@Thomvd 10 лет назад
***** VGHS I recon :)
@DaFish1337
@DaFish1337 10 лет назад
While I heard that word in VGHS for the first time, further research showed that it is in fact a school's sports team even in real life. But since this is a totally normal word in American English, why did you think about VGHS (a little creepy ;))? (Neither am I American nor is English my first language, which is why I had to look it up.)
@alexfortune9716
@alexfortune9716 10 лет назад
Basics of Computer Graphics. And yet even though I knew all of this before, It was a pleasure.
@Temerator1
@Temerator1 7 лет назад
If I had teachers like him I wouldn't skip a class. Explanations are crystal clear and simple, pleasure to listen.
@obiwanjacobi
@obiwanjacobi 9 лет назад
So that is how it works. I knew where to put the numbers for the desired transformations but never knew why. Now I do. Thanx!
@Harlequin314159
@Harlequin314159 10 лет назад
Fantastic explanation. Not dull at all. Cheers!
@AngriestEwok
@AngriestEwok 10 лет назад
Well, this is the best description of 3d graphics I've seen and that includes an over-priced university education.
@EduardoLorenzo
@EduardoLorenzo 10 лет назад
PLEASE MAKE MORE OF THIS!
@PatrickImboden
@PatrickImboden 10 лет назад
Please .. make a video with the complete explanation. .. I'm willing to chew into it. .. Love this channel
@chromatosechannel
@chromatosechannel 9 лет назад
this takes me back.
@patrickmoloney672
@patrickmoloney672 8 лет назад
The mathematics is a little dirty but I like the concept of whats being explained. Interesting to see how the things we learn in mathematics are all applicable to the world we live in.
@surysunny17
@surysunny17 9 лет назад
I finally understand why that 1 shows up in transformations . Thanks!
@pencilself
@pencilself 6 лет назад
sorry, could you tell me what video editor you use? Your voice remains the same during fast playback Thanks
@pbezunartea
@pbezunartea 10 лет назад
Exactly, mind-blowing! Thank you! :)
@erlingpetersen1935
@erlingpetersen1935 10 лет назад
lol, taking a final in this very subject on Thursday. Nice way of summing it all up :)
@GameDr04
@GameDr04 10 лет назад
More of this guy! He's awesome.
@EmyllSomar
@EmyllSomar 10 лет назад
This guy is like a real life Gaius Baltar.
@Bedsize
@Bedsize 10 лет назад
Exactly :)
@Shimmen
@Shimmen 10 лет назад
Can we get an uncut version of this?
@allendupras
@allendupras 10 лет назад
Are you guys going to do one on calculating surface normals?? That is something that I've been able to do but can never really conceptualize what is going on completely. :)
@adamfatka
@adamfatka 10 лет назад
This is fantastic!
@DFX2KX
@DFX2KX 10 лет назад
I haven't seen some of those formulas in years... wow... nostalgia time!
@PrimusProductions
@PrimusProductions 9 лет назад
The first one should be a 2 by 2 matrix pre multiplying the vector (without the cross symbol since that implies vector product).
@orth6340
@orth6340 8 лет назад
+Primus Productions correct
@richardellard
@richardellard 8 лет назад
+Primus Productions Yeah, he's post-multiplying column vectors by matrices all over the place (which isn't even defined). He should either be using row vectors or premultiplying, unless graphics programmers decided to redefine matrix multiplication for some reason.
@rodjacksonx
@rodjacksonx 10 лет назад
Wow, didn't realize how much I loved this stuff.
@utubewaala
@utubewaala 10 лет назад
What a Calm, Peaceful voice this guy has !
@ImaginaryMdA
@ImaginaryMdA 10 лет назад
Lovely projective geometry you're doing there :D
@Lttlemoi
@Lttlemoi 10 лет назад
Could you please do a video about quaternions? I have never understood them, though I know that they are very important for rotations.
@musicalsimon
@musicalsimon 10 лет назад
this is great. would like to see an extension of the rotation talk going into quaternions
@LA6NPA
@LA6NPA 10 лет назад
I think I finally understand! Wow! This blew my mind! :)
@rogerfroud300
@rogerfroud300 8 лет назад
Presumably the benefit of filling in the matrix with the calculated values of Cos(a) and Sin(a) is that in a displayed scene all of the triangles will use the same transformaton and therefore you only need to calculate them once?
@aswinvk28
@aswinvk28 10 лет назад
Hi, I'm wondering about the matrix multiplication shown at the timeline - (07:23). The conventions adopted for multiplication does not match those provided in wiki. As per the conventions adopted in the video, I will get my order of multiplication wrong. The scaling factor is normally applied as (lambda).(X) and not (X).(lambda). The cross product is distributive which I confirmed from wiki, but here the conventions adopted seem to be different that what I was taught.
@lobaxx
@lobaxx 10 лет назад
Having read Linear Algebra, it was interesting to see it applied. However, I doubt someone without any prior understanding of LA would get much out of this video...
Далее
Triangles to Pixels - Computerphile
8:17
Просмотров 229 тыс.
In Video Games, The Player Never Moves
19:21
Просмотров 460 тыс.
Try not to Laugh Game!
00:38
Просмотров 1,7 млн
Good dad 🥰 #demariki
00:17
Просмотров 6 млн
A Universe of Triangles - Computerphile
11:24
Просмотров 454 тыс.
How do Video Game Graphics Work?
21:00
Просмотров 3,3 млн
The Font Magicians - Computerphile
19:31
Просмотров 366 тыс.
The Opposite of Infinity - Numberphile
15:05
Просмотров 4,3 млн
The deeper meaning of matrix transpose
25:41
Просмотров 356 тыс.
What Is A Graphics Programmer?
30:21
Просмотров 392 тыс.
Error Correction - Computerphile
11:30
Просмотров 247 тыс.
Cracking Enigma in 2021 - Computerphile
21:20
Просмотров 2,4 млн
Try not to Laugh Game!
00:38
Просмотров 1,7 млн