A Universe of Triangles - Computerphile
Vložit
- čas přidán 28. 11. 2013
- We see objects all the time and our brains decode the 3D shapes, but how do computers model these shapes and why break it all down to triangles?
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
/ 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
This dude would make a badass villain in some sort of Sherlock Holme-ish type movie/series. :D
Kudos to whoever does the animations for Computerphile. They are always very helpful.
I am at 00:34 nd have decided already this guy can be leader of my village.
It sounds like james bond is giving me a lesson on co-ordinates, it's awesome.
I am very bad at maths, geometry and stuff but this dude's explanation is just crazy. I wish i had a teacher like him.
As a designer I'm never going to be able to use a triangle without being accused of being Illuminati.
One of the best explanations I ever see!
Thanks a lot.
Can we have more of this dude in future?
I wonder if they were sitting on a three legged stool when they figured to model with triangles... interesting that the same reasoning for why to use triangles is the same reason why 3 leg stools are better than 4 legged ones - no wobble.
That's a lot of triangles for the side of a cylinder! I'm sure you could get away with 2 per side ;)
Quaternion tie-in with Numberphile. Do it! Do it! :)
This would be amazing! I've read a bit about them, but I just can't wrap my head around the concept.
Would love that too mayne.
***** same here, I get what the 4 components stand for and it seems like a reasonable idea, but I don't get how you can deal with them, like how can you apply two rotations to the same object one after the other if you're using quaternions? how can I make first-person camera rotations using them?
I also don't understand any of their advantages, how does it really avoid a "gimbal lock"?
Yeah, totally agreed, I can't wrap my head around them yet. Btw. here's a great presentation about them. acko.net/blog/animate-your-way-to-glory-pt2/
While triangles are easiest for rendering, displaying a mesh. Quads are more convenient for modelling, creating a mesh
1:48
Your coordinate system isn't right-handed. It's good usage to make it right-handed, usually.
I agree, it's one thing to switch the Y with the Z (which I got used to and accept), and another thing to make it left-handed, this one drives me crazy :S
If you have X right and Y up, then Z has to be towards you damn it! don't make it more confusing to me when rendering stuff :S
This dude reminds me of the Tenth Doctor. Also, of caffeine.
Can I borrow John Chapman to go to a restaurant with me and my friends so he can explicitly and careful describe everything about the food I ordered from the menu and how I plan to consume it and drive all my friends nuts? :)
P.S.: If you think I was trolling him, that wasn't my intention. He has such a detailed way of saying things and a Sean Connery-esk voice I think it'd be awesome for him to describe something mundane. :)
Ultimate wingman...
Have to once again thank you for these videos. it's just so easy to link a playlist instead of spending hours explaining it.
I'm happy to see comments about the animations. They are a fantastic touch to these videos. Keep doing that :)
Looking forward to the next video about moving them about in 3D space.
This man is the richard hammond of triangles
Love this series, I am actually getting a basic and more clear understanding than I ever had. Clear and concise explanation. Much appreciated.
Would have saved me so much time if this video existed a few months ago when I learned this all the hard way.
There is a hard way?
Brute force learning of how vertices map to create models by hand..
This is just awesome ! Watch the whole series.
This is very interesting, looking forward to the next computer graphics video!
I always learn new stuff with Computerphile videos, so, thanks a lot, and keep it up ;) !
A great summary of how polygons are used and drawn by a computer. Good job!
This is the worlds best video on a particular topic where a topic is explained so clearly and easily that i am beyond impressed and writing the comment in the middle of watching the video
Oh, it hurts so much seeing a left handed coordinate system.
What a lovely video. Thank you!
This was fun to watch. Reminds me of my GameMaker days (the 3d engine in GM is quite simple, and you had to do a lot of the rendering manually)
I wish i was this fluent in math and geometry.
Really cool stuff, I never learned about it in this way and I think it might come in handy in some of my projects
Now I know what models are made of. The more you know. :D Thanks Computerphile!
Thank you! More 3D graphics videos please!
Very well done videos, thanks. I already understood these concepts, but this was perfect to share with friends.
Amazing presentation! Very well done. Thank you.
I really enjoyed this one! Loved hearing about those geometry problems. Thank you.
Ive noticed in some older video games though that both sides of the triangles are rendered. If you walk too close into a corner in some 3rd person games you could see the inside of the characters body, and its coloured the same way as the outside.
Here's a drinking game for you, a beer and a shot of tequila every time the word "verticies" is used, and no, I'm not responsible for your alcohol poisoning.
Gammel Prutte I had so much trouble trying to spell "vertices" right when writing my Bachelor Thesis, and I think I still got it wrong :D
Hassan Selim I'm not even sure I've heard the word before I saw this video. English isn't exactly my first language.
Stopped after three, and now I feel really stupid.
That was a very good video. Thanks Brady.
I think maybe the rectangular piece of paper should have been folded out of the plane (with the fold line intersecting the two opposite vertices), instead of it being bent to create a curve. As you could obviously curve the triangle into a new plane also, but you could not fold the triangle into a new plane.
Wow great timing! I've actually been working on a 3D renderer myself for the past 2 weeks. It's far past this but still great video.
By far my favorite ***** video yet
This reminds me of FEM (Finite Element Method) which uses triangles (most of the time) to approximate surfaces in 3D, like he said. It is used to approximate solutions to differential equations.
Excellent as always!
I was typing a whole pile of stuff on how triangles are coplanar and how that makes rendering the triangles so much nicer. I failed to notice how long this video is. Thankfully it was mentioned before I finished typing :P
I knew everything this dude is talking about (and much more) a long time ago. Plus actual mathematics of 3 rotation, projection, translation and texturing.
Wow, you can be a great teacher. This was awesome.
I'd love to see a computerphile - quaternion video ^_^
P.s.
I have enjoyed every single Computerphile vid! My only complaint is that they don't come often enough. :)
Nice video! I have a question. Obviously our brain can create 3D scenes from memories, and the scenes we see in our dreams. So the question is: Do we know how our brain stores such 3D information? I presume it must be done in some very efficient manner. Does it has some correlation with the technique you described in the video.
Ahhh that makes total sense! Great video thank you :D
Great explainatory video guys :D
very cool episode!
This video is awesome thanks!
Quite a nice topic! More on tessellation and maybe game rendering!
The way the z axis is defined is not wrong, but it is not the most conventional one. This might be confusing. According to the right hand rule, +z would point "out" of the plane (towards the viewer) and -z in the opposite direction (just like with the triangle winding). Still, great video!
This was really cool!
Best description ever thank you so much know I finally get it
I'm studying this right now, video was really useful thanks :)
this explains so much.. thank you!
Interesting stuff! Thanks.
You just made my day
Very good explanation
As someone who works a lot with FEA, this was terrific.
I never knew how do they distinguish inwards and outwards facing polygons. Cool
How do you divide a sphere into triangles??
And that is why triangles are my...
MARVELS OF THE SCIENCE
Very well explained! :)
This video would have been really useful to me 2 weeks ago xD, very good video.
hope this is going to be a playlist soon... :D
Maan, this is some real maths-video I have seen in a few days
The important thing about triangles is that they are uniquely and completely determined by the coordinates of their three vertices. Squares are ambiguous; four coordinates may define a square, or they may define a "squaroid" which won't lie in a plane. 3D software will often render a squaroid by jumping back and firth between it's possible renderings randomly, based on floating point rounding errors and such.
He kinda sounds like Shaun Connery lol
There are actually many systems for representing 3d objects (meshes), it depends on the "rendering engine" (software that reads the data and presents it to the video card).
The most common are..
A list of individual triangles, triangle strips (where each new vertex is assumed to be part of the next triangle in the mesh), meshes (as in the video, where a point list describes how to connect a vertex list), quads & quad strips (similar to triangle and triangle lists, but they use 4 verts), polygons and primitives.. nurbs, (like using a cage of points around a mesh to imply where the surface is). although these all get converted down to triangles by software &/or graphics card at render time.
Also, there are terrain maps and bump maps.. which are like a list of numbers (think grey-scale image, with each pixel in the image being a height) that tell a rendering engine how high a point is from a particular plane or distance from the centre of a pre defined primitive.
There are undoubtedly other ways to represent 3d objects too.
ie, could use angles and distance from a point.
Graphics cards themselves are usually what limits what people do (rendering speed etc).. & often have cool features that allow programmers nifty ways to represent model data.
The opening comments of this excellent video remind me of the Red Dwarf episode Waxworld and Pythagorus.
Yay. Upcoming video about Linear Transformations... Brady should do a Linear Algebra Numberphile video to go with it.
He looks like Doctor Who and sounds like a young Sean Connery. Have him more please
I am sorry to say that, even if the topic is one of the most interesting ever tackled by the Computerphile videos, the explanation is not made very clear by talking of things not very useful for the comprehension, such as the curved part of the rectangle, for example. The viewer could well imagine a triangle curved with one of its vertices raised with respect to the others and therefore miss the advantage that is being explained.
Not really. Moving one of the vertices out of plane still forms a triangle, just one with a different plane when you cut the curves. Doing the same thing with the rectangle does not leave another rectangle but something more like two triangles of different planes melded together.
You got a very good point actually. They really could have done that
it would have worked better if he had used a model with rigid sides and loose joints. that way you would be able to see that the triangle is unable to move out of plane with the other angles and the higher order polygons would.
I guess the problem at that point would have been that the rigid sides would have had to have a triangular shape, therefore making it even more complicated (although proving his point).
***** This is what I wanted to mean in my last comment.
nice grapichs on the coordinates like it very much
great one
Interesting stuff!
In the case of particles, it's actually easier both to render and to control them if they're rendered as projected raycasted rectangular images rather than a set of 2 triangles because they render much nicer and don't get as distorted or have the sorts of orientation glitches you get when you introduce multiple cameras.
Fun fact: the Sega Saturn used strictly tetrahedral based rendering, making it's textures signifigantly less distorted, but also, due to their low-resultution, less smooth and more jaggy. Also, it made developing for the Saturn a nightmare for multiplats since all of the in-game geometry had to be converted to tetragons from the triangular polygonal mesh data of the Playstation, N64, 3DO and PC verisons.
Also, he forgot to mention anti-aliasing, which is a post-processing filter applied to polygonal renders that helps eliminate the jaggies and better approximate curved surfaces. It's standard practice in modern video games and part of why modern games don't look as polygonal as their past counterparts. You can disable this filter in most modern PC games and you can see the difference.
Damn does that cylinder tesselation grind me the wrong way ahah XD So many wasted triangles! Could've made the sides out of a bunch of long rectangular pairs of triangles instead and increased the approximation of the shape with the leftovers.
Great video though, as always.
It's quite elegant, the way the 3D coordinates are converted to 2D coordinates for rendering on the screen by matrix multiplication. It's all math from the 1980's.
i like this guy
Doesn't his coordinate system violate the right-hand rule? I think +z should be out of the paper, not into the paper.
Weird leftie axis system. I'd have put the +z the other way. :/
Origami very much works from this principle of triangles using folds and inverse folds - I would recommend all developers take up origami to help physically visualise vectors.
That's one charismatic programmer! I like his style... He's so suave... Like he's about to take you on a dinner, just when he explains about graphics triangles.. lol
Triangles are to shapes what sine waves are to periodic signals. You only need the former, in different sizes and at different angles/phases, to construct a representation of the latter.
More from dis guy pls.
Whats interesting is that if you consider the possibility of our existence being that of a computer simulation then you would end up trying put together how the three dimensional objects such as spheres in our universe and/or the concept of a circle aren't plotted in terms of small triangles, and so if you truly believed this was the case, you would be conflicted in coming up with a better way in creating computer models without the use of triangles. i.e, in mathematics we have pi a continuous number that illustrates the circumference of a circle, and so we haven't really fully come up with a definitive way to fit our understanding of round surfaces let alone implement it into a computer simulation.
I think I know now why there are so many games with crystals as a central plot element. They're so easy to render with triangles.
00:36 Half way into '3D geometry & chill' and he gives you this look.
Blew my mind!
Learning 3D software, such as Maya and Max, this really opens my eyes to how 3D works lol
So what you mean by the face of a triangle is basically the side with visible texture?
Nice explanation for newcomers or those who want a brief recap
An interesting sequel would be explaining how voxels work and their advantages (and disadvantages)
why did he use so many triangles for every row at 8:10 ?
As the approximation only gets better by the number of triangles in the top (and the equally big number of rows in the side), he could have used only two triangles for each row down, using much less data, and it would have looked exactly the same.
Less frequently, but rectangular meshes are also used. You can still restrict the points to be coplanar. Of course, creating the mesh is more difficult.