Math for Game Programmers: Understanding Homogeneous Coordinates

  Переглядів 57,322

GDC

GDC

День тому

In this 2015 GDC tutorial, SMU Guildhall's Squirrel Eiserloh provides helpful tips on using Homogeneous Coordinates to drive the illusion of 3D space.
Register for GDC: ubm.io/2gk5KTU
Join the GDC mailing list: www.gdconf.com/subscribe
Follow GDC on Twitter: / official_gdc
GDC talks cover a range of developmental topics including game design, programming, audio, visual arts, business management, production, online games, and much more. We post a fresh GDC video every day. Subscribe to the channel to stay on top of regular updates, and check out GDC Vault for thousands of more in-depth talks from our archives.

КОМЕНТАРІ: 62
@KKomalShashank
@KKomalShashank 2 роки тому
Squirrel Eiserloh was my game programming professor at SMU Guildhall. He was the best teacher I ever had. The most amazing person, who explained complex concepts in such a cool, interesting and easy-to-understand manner. Everyone has their No. 1 teacher that they remember fondly for the rest of their lives. For me, that teacher is Squirrel Eiserloh.
@EliorFureraj15
@EliorFureraj15 5 років тому
At 19:50, he takes the extreme example of w -> 0, and that makes the projected image approach infinity in size. I feel that the opposite is a bit more intuitive: as the distance (z) and hence w approaches infinity, x and y approach 0. This means the an object moving farther away, becomes smaller and effectively disappears at infinite distance. You can see this in the vanishing point artists use in perspective drawings.
@magnusm4
@magnusm4 3 роки тому
I've seen some funny Unity tutorials showing the illusion by using two spheres. One is moving back and forth and the other is growing and shrinking and you can't tell the difference.
@khoavo5758
@khoavo5758 14 днів тому
The image of an “infinitely far away” object can land anywhere on the horizon. There are infinitely many vanishing points, and these are *different* from points at infinity. Edit: Not to mention there are infinitely many horizons. To see that, just tilt your head: you can make the horizon vertical if you want.
@theIpatix
@theIpatix 6 років тому
I really like these relatively basic but educational talks.
@ThefamousMrcroissant
@ThefamousMrcroissant 5 років тому
It's basic linear algebra. It's probably in the realm of "intermediate" simply because of that. I do agree though, it's relaxing to be able to sit through a lecture without having to think much about what is being said.
@andrewherrera7735
@andrewherrera7735 3 роки тому
Just watch a youtube tutorial. These are meant to be presentations about professional game development not lessons.
@ahbarahad3203
@ahbarahad3203 3 роки тому
I have watched this video for 4 times now, its beautiful
@amilamad
@amilamad 6 років тому
Hey , Thanks for this video. Now I can understand the magic of projection matrix. :)
@dwolfwoodicus
@dwolfwoodicus 5 років тому
Such a great talk. Thanks for this!
@DlcEnergy
@DlcEnergy 5 років тому
yesterday i google'd "homogeneous coordinates" and watched two great videos today youtube recommends me this even more awesome video that spelled it all out perfectly. and introduced plucker coordinates, whatever those are.
@Ray25689
@Ray25689 4 роки тому
But keep in mind, all those things are just simplifications from projective space and plucker coordinates to make them more intuitive. To understand the real reasons and logic behind it (f.e. why you call directions points with an infinite distance or why you dont have problems with forcing w to be 0 or 1), it not suffices to look at those videos.
@DenerWitt
@DenerWitt 6 років тому
very nice I've worked with matrices in shaders and translations/rotations but never actually understood them, but now I understand what the hell w is a little better
@HairyPixels
@HairyPixels 6 років тому
I thought matrix transforms were black magic! Amazing to understand that after a mere 20 minutes. Good work!
@ForeignChaos
@ForeignChaos 3 роки тому
this is just the tip of the iceberg, there a whole lot more to learn. I would advice you to read Multiple View Geometry by Hartley and Zisserman. Once you have a clear understanding of the math the possibilities are infinite, not just for graphics proramming but also for computer vision and robotics.
@ForeignChaos
@ForeignChaos 3 роки тому
@@ginxxxxx thanks! I didnt knew that advise was a verb, and advice a noun. Thanks for pointing that out! Its a sign that I need to read and write way more than i think.
@amortalbeing
@amortalbeing 2 роки тому
This was fantastic, wish this to last much longer
@zoltankurti
@zoltankurti 3 роки тому
To be honest the only way to understand perspective projection is to go through the calculations once yourself. Set up a virtual screen and the far clip plane in worldspace, and calculate where a point has to go in NDC space. Than realize that you always have to divide by the same formula, so you can do that by writeing it in w. The hardware/driver will do the prespective division automagically before rasterization.
@manuelpagliuca
@manuelpagliuca 3 роки тому
This was really good, thank you.
@badradish2116
@badradish2116 2 роки тому
the translation column /is/ a position -- its the position of the origin of the graph
@zynix976
@zynix976 2 роки тому
Precisely! The transformation matrix can be thought of as defining our coordinate system, and every vector we input through it (ie, every vector we multiply it) is going to be put in relation to the new coordinate system. Think of his example of the dog-head sprite. It is expressed in some local coordinate space by a position. After applying the transformation matrix, the result is the sprite being "placed" in the new coordinate system, defined by the transformation matrix (but crucially, the actual coordinates, are still in "our" coordinate set: The local ones). It's basically doing half of a change of basis - see for example the 3blue1brown video on change of basis.
@antonydellavecchia2301
@antonydellavecchia2301 3 роки тому
great talk
@authentic6825
@authentic6825 5 років тому
Holy shit, this is good
@200kolya
@200kolya 3 роки тому
this is the best video explaning the use of matix multiplications an homogeneous vectors and how they work
@tech_science_tutos4155
@tech_science_tutos4155 3 роки тому
very very good, excellent
@josbelclobo1376
@josbelclobo1376 6 років тому
Hello! Thanks for your videos. I am a Web Developer and I would like to start learning Game Programming, but, I don't know how to start off. Any suggestions? Thank you.
@coen44444
@coen44444 6 років тому
Start off with scripting (C# for Unity perhaps?), learn about vector math (which is basic game math). And try out a game engine like Unity.
@josbelclobo1376
@josbelclobo1376 6 років тому
Thank you! I'm looking for it. I know some things about mathematics, because I'm Systems Engineer and studied a lot of Physics and Mathematics. I'll tell you how I'm progressing. Kind regards.
@amilamad
@amilamad 6 років тому
Ya you dont have to be expert on 3D math. Sometimes for 3D games all you need is simple 2D vector math.
@annogaming9535
@annogaming9535 6 років тому
planning.cs.uiuc.edu/node99.html#eqn:2dhomog or if you don't want links just google "steven m. lavalle 2d homogeneous". it explains coordinates in a very good way. And also, do some tutorials in unity. they give you good understanding of how to make games and you learn things not specific for unity but more like how different things work together to make a whole game.
@AM-jx3zf
@AM-jx3zf 21 день тому
weird cut at 2:35
@deltakid0
@deltakid0 3 роки тому
Juan Luis Guerra imparting math, impressive.
@martin6548
@martin6548 6 років тому
Imagine the greatnes of first person wich was able to invent this rules
@Scy
@Scy 6 років тому
William Rowan Hamilton, or Benjamin Olinde Rodrigues. The latter sort of discovered it first, but Hamilton got the big picture.
@AE-yr6mo
@AE-yr6mo 3 роки тому
@@Scy stfu
@AkamiChannel
@AkamiChannel 2 роки тому
@@Scy Hamilton invented quaternions, but using homogeneous coordinates so that you can use matrices to conduct affine transformations? Was he the one to invent that?
@starplatinum3305
@starplatinum3305 5 місяців тому
Bro got that W rizz ? Im sorry 😔🔫
@cheesepie4ever
@cheesepie4ever 4 місяці тому
A follow Gen Z in the comments
@seditt5146
@seditt5146 4 роки тому
14:00 " I have a super cheezy JIFF" It is so funny, people got trolled by the creator of GIFs and now they think it is correct to pronounce it with a J. I laugh every time I hear someone do that it's great.
@fluffyking94
@fluffyking94 6 років тому
It's videos like these that remind me that I can never be a game designer. I have no clue what is happening at all in this talk.
@jostein6581
@jostein6581 6 років тому
COLTON DOUGHERTY Rome wasn't built in one day. Take your time and play around making simple 3D scenes in OpenGL. Make it fun :)
@youreallinsane
@youreallinsane 6 років тому
Game design isn't programming. I assume you meant you could never be a programmer, and, like jostein said, you learn a little bit at a time. I'm a self-taught programmer and i don't understand a lot of these talks, but i manage anyway.
@amilamad
@amilamad 6 років тому
hey this is for someone who has intermediate knowledge of 3D math. I have developed games and simulation software for 5 years without knowing how the projection works. Sometimes you don`t have to know the deep especially when you are not in to graphics programming. Chill and try to learn from a simple OpenGL tutorial. Good luck !
@buraianmath
@buraianmath 3 роки тому
@@amilamad 3
@jgcooper
@jgcooper 6 років тому
good talk, but you switch too much and too fast between slides, try to time 1 sec between switching slides when comparing them, and try not to switch them when unnecessary, otherwise you're subjecting viewers to your trigger happy finger ocd which is irrelevant and disorienting to them.
@MatheusLB2009
@MatheusLB2009 6 років тому
Agreed. I think the talk was more of a quick guide on math for beginners, rather than a recap for someone who already studied it, so he shouldnt go too fast. Still good tho
@ZoidbergForPresident
@ZoidbergForPresident 6 років тому
Yeah, it lost me too (and annoyed me :p)
@ZoidbergForPresident
@ZoidbergForPresident 6 років тому
Not a talk for I then. :/
@HairyPixels
@HairyPixels 6 років тому
He probably agrees but he's just doing his best despite. I'm sure I'd mess it up also myself. :)
@Nightlurk
@Nightlurk 6 років тому
Oh the greatness of YT providing the ability to slow down playback speed!
@jayp9158
@jayp9158 4 місяці тому
The lecturer is going too fast and made several presumptions. This was particularly problematic when he performed the matrix operations.
@youreallinsane
@youreallinsane 6 років тому
This was a long way to go to explain how a basic 3d engine works.
@error.418
@error.418 6 років тому
This really wasn't a long way to go. It was concise and clear.
@DenerWitt
@DenerWitt 6 років тому
thats how teaching works, either you do it properly and clear, or you dont maybe on your head these things are all very short and simple, but to present/teach you actually need to make sure you are being understood btw the presentation was short
@DlcEnergy
@DlcEnergy 5 років тому
your head forms an efficient understanding once you understand the logic. you could write it down and perfectly understand it on a single slide. but your prior self would take longer to take in and understand that the same way. you'd have to do the thinking yourself. what this video does, is give you the perfect chain of thought processes needed. the questions that need answering to properly understand it. heck, your prior self could try skim through the slideshow hisself and see if he'd understand it all faster. but no, having it explained at the right pace was best.
@jamesrockford2626
@jamesrockford2626 6 років тому
bad
Math for Game Programmers: Juicing Your Cameras With Math
31:34
ФОКУС С ЧИПСАМИ (секрет)
00:44
Masomka
Переглядів 3,8 млн
😱СНЯЛ ФИКСИКОВ НА КАМЕРУ‼️
00:35
OMG DEN
Переглядів 1,3 млн
Помилка,  яку зробило військове керівництво 🙄
01:00
Радіо Байрактар
Переглядів 316 тис.
Essential Mathematics For Aspiring Game Developers
47:06
javidx9
Переглядів 375 тис.
Building Worlds in No Man's Sky Using Math(s)
53:52
GDC
Переглядів 97 тис.
Tech Toolbox for Game Programmers
48:14
GDC
Переглядів 248 тис.
Math for Game Programmers: Dark Secrets of the RNG
30:17
GDC
Переглядів 50 тис.
50 Game Camera Mistakes
1:00:53
GDC
Переглядів 495 тис.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Переглядів 2,3 млн
Math for Game Programmers: Interaction With 3D Geometry
1:07:01
Nuts and Bolts: Modular AI From the Ground Up
1:02:43
GDC
Переглядів 44 тис.
Sand Rendering in Journey
22:18
GDC
Переглядів 72 тис.
Something Strange Happens When You Follow Einstein's Math
37:03
Veritasium
Переглядів 6 млн
ФОКУС С ЧИПСАМИ (секрет)
00:44
Masomka
Переглядів 3,8 млн