UPDATE: First of all, this is the most active comment section I've ever had for a RUclips video. And I can't thank you all enough. Even if your comments are "negative," I truly value feedback and have a desire to improve in any ways I can. That said, a lot of you have pointed out stuff that I wasn't aware of. And I wanted to address that here. 1. As it turns out, your model will get triangulated automatically if you import it into a game engine (such as Unity, Unreal, etc.). As an aspiring game designer, I feel like an idiot for not knowing this. I assumed that these models were triangulated manually by a 3D artist when in reality it's the game engine that has triangulated the model. 2. Game engines aren't the only ones who like their models to be made of triangles. BLENDER DOES AS WELL. What I have demonstrated here: 3:00 is actually what all quads and ngons look like under the hood. Blender (and other 3D programs as well) essentially just trick you into thinking that you're working with quads to make your life easier. What's funny is I've unintentionally demonstrated this at 4:30 where the plane can only deform like that if the software saw it as two triangles. And my dumbass was completely oblivious to this. I'm well aware that this video's reception is rather...mixed. And I apologize to those who didn't have an enjoyable experience from watching this video. But I had learned a lot from you guys and I will try my best to improve in the future. This is probably the most technical subject I'll ever cover on this channel, which is probably why it got the most stuff wrong. Thus, the next couple of videos will cover more general topics. Once again, thank you all for your feedback and stay tuned.
Don't be afraid or discouraged to tackle technical topics in the future the end outcome is you learned a whole lot worst case you repost a vid or pin a comment. I didn't even know game engines/3d software changed the model's topology to begin with.
@@Genebriss Because the comments on this video have provided helpful information to a lot of people who don't know how CG geometry works. In my mind, the positives of this video's existence far outweigh the negatives.
@@Genebriss Because bad propaganda is still propaganda. The video is making numbers despite the fact that it contains information that is wrong. The author himself said it on the comment you just replied to: this is the most active comment section on his channel to this date. Why would he shoot himself in the foot and stop the influx of people coming here to comment? Yes, it's all wrong and an embarrassment of a video where someone who has no clue what they are talking about spouts nonsense... but who's going to say no to a free meal? money is money, and having this golden oportunity to chache out a big chunk of views... who would throw it away? Only someone with integrity, I suppose, which the OP made it clear that they have none of.
Hey ! Game artist student here ! Actually, the specificity of video game topology isn’t in the triangles… because cinema models are all triangles too ! The fact is, most if not all polygon rendering engines, real-time or pre-rendered use only triangles. And your models in blender are no exception, they are triangles too under the hood. That’s the reason your quad looks like two triangles when you move a vertex making it non planar. The reason your models are displayed in quads in blender is, as you said, that’s easier to work with, and, as you guessed, we work mainly with quads too. But the reason the videogame models you get are all triangulated, is because it will get triangulated anyway when rendered, so either the artist or the engine pre-triangulate the model before importing so the engine don’t have to do it at runtime. But we effectively have our own topology requirements to reduce and optimize the polygon count. Having triangles isn’t a big deal if it allows to reduce the polycount and doesn’t create problems when baking or animating (I think one of the reason it is considered as something bad in pre-rendered is because it messes up the lights when using tools such as the subdivision modifier, but I may be mistaking). We don’t have to create a 100% homogeneous topology : if a part of an object needs more topology to deform or to represent is volume, and an other could just be a quad, we won’t bother dividing it. In the same vein, we might add topology just where a model needs to deform. We also have no problems deleting face no one will see. These topology requirements are mainly for the low poly models. We also often create high poly models, by sculpting or with smooth poly modeling to bake details onto the low poly mesh via normal and AO maps.The requirements are different, but you won’t see these models in game as they are used only for the baking
Exactly ever quad is in essence two triangles, because the engines are based on vector maths, for any given surface may that be a quad or a n gon the engine is using vector maths, which is in 3 dimensions, so its at the end of the day calculating things based on triangles
The idea that all render engines require tris is a myth. There are a number of render engines (film and gaming) that render quads -- even at the final stage in the rendering process.
Alright let me tell you a secret that I discovered... It's All triangles. All of it. Every quad, every ngon, every mesh, all of it is triangles. It may look like a quad, but blender registers it as two triangles. The "triangulate quad" button is the default shape of what the mesh actually is. Blender doesn't really tell you the truth about quads.
Yes this is why triangulated mesh is faster. When you have a quad mesh it has to be triangulated to render. Blender does this on each frame of an animation, in milliseconds which isn't a problem when frames can take minutes to render. I think it divides every quad between the closest vertexes for that quad but I could be wrong it might use a more advanced calculation. This is why really good topology is a mix of quads and triangles and has no poles with more than 5 edges. You put triangles where you want to control how that quad dividing happens.
@@Vm0nkeyNonsense. Its GPUs that can only render triangles. Blender doesnt triangulate each frame. Its all tris always, you just get shown quads for humam readability.
@@harrysanders818 Blender does triangulation. GPUs have native implementations for showing quads, but if you have ngons blender has to do triangulation. I'm pretty sure Blender triangulates quads aswell, just because its easier to handle the in code. However, Blender does not perform traingulation EVERY frame. It performs triangulation in the background only when you change the mesh, then uses the triangle data for rendering. The main reasons for triangulation in games is, 1. to reduce polycount, and 2. to precicely control how the model is rendered. As you can imagine there are two ways to split a quad in two triangles. A GPU does this randomly, which can cause unwanted visuals.
The right answer is : GPUs have been optimized to process textured triangles for 25 years. The only exception was the sega saturn, that had a 3D chip that was optimized for quads, but this made it more complicated for coders (and artists, remember in these days, going over 500 faces for a model was a luxury, therefore, using a triangle to fill a hole is 100% ok). In either case : Modeling with quads just makes the artist's work easier, with the correct arguments you used. All quads are then triangulated when exporting the model to your prefered format. If you are a prefectionist, you can actually triangulate some quads beforehand, just to keep control of which way the diagonal goes.
I really appreciate this silly fun vid! Verrrrry interesting! I'm just a big silly myself. I don't know anything about blender, etc. BUT I have to say I learned a thing or 2. Thanks Magic!
SEGA's S.C.U.D. Race arcade board also renders quads. And the idea that tris render faster than quads is not true and is one of a number of details in this video that are incorrect.
@@magiccyborg It was, and it caused some insane issues that you wouldn't even think about. Consider for a moment you are making a transparent triangle using a quad. 2 of the vertices in this quad are going to occupy the same space. When you go to draw the triangle, the Saturn would rasterize the triangle by drawing strips from the top of the quad to the bottom. But because two of the vertices share a position, it's going to be drawing over certain pixels over and over again, creating weird artifacts where the triangle was substantially less transparent near the overlapping vertices.
^ what dmeat0rz said. Modelling in quads makes the work easier with lesser visual clutter. The triangulation direction will depend on your topology’s edge flow. Which is also why modelling in quads is easier to visualise edge flow. Some manual triangulation is done usually for models with ngons and tris because 3d softwares’ auto triangulation sometimes produce unexpected results.
@verycreativeusername5401 I never played it, lol, cause it's shit.
4 месяца назад+36
Hello! Awesome video! As a professional 3D artist for games I'd like to add a few things: 1 - we do not always triangulate our models ourselves in this manner before sending them to the engine as many engines such as Unity and Unreal do that by themselves on model at 0 cost since It's import process (dunno about Godot tho), most of these models since you've extracted them straight from the engine could be either the Engine's work or the artists, we can only guess, but ultimatelly usually all models ingame will look so in the end one way or the other. 2 - As you've mentioned in 4:23, sometimes quad topology gets weird surface bendings depending on how the vertices are pointed, there are 2 ways of subdividing a quad (left to right or right to left) so the programs choose one by themselves virtually for rendering be it the modelling software even if you can't see the edge line, leading to hole-like deformations in the silhouette of the model depending on the angle you look and how you want the surface to look like, So we can sometimes do that triangulations our own way to avoid the software making bad decisions. 3 - Adding triangles here and there (If you know where to place them correctly) can diminish the amount of faces by one less edge LOOP in some reagions of the mesh, may not look like much but when you consider how many faces does you're model take till it completes a loop It might be very handy, and help to get away with that nice detail without making the mesh really heavy por it. 4 - Generally N-gons and misplace triangles can create shading issues and bad deformations in animations, but they tend to not create those if the surface they're in is completelly flattened out and is not meant to ever bend down the middle (Hard Surface go Brrrrrrt). The only other problem would be there's more ways the engine would choose to cut those n-gons, but again: if the above conditions are met, who cares, no one will ever be able to see.
3D artist here. Game models, even the ones you showed, are made using quads, they are rigged using quads, textured using quads, etc. The absolute most important aspect of having good topology is it enables models to deform (twist, bend, inflate, emote) the right way. Under the hood it gets tessellated and converted to triangles so the engine can render them efficiently. The Mario and Master Chief models you showed there are triangulated because they were ripped from their game files, but the artist working on them still work on the untriangulated ones.
3D engine dev for Wii, Xbox360 and Dreamcast here. Master Chief here is triangle based, it's not a triangulated quad mesh. Because Halo (1) doesn't really do extensive per pixel shading, it uses Gouraud shading, which tends to highlight the triangle edges; so it made sense to scramble the topology quite a bit to make annoying lines less likely and lean more towards equilaterals than towards right triangles. Think difference between UV sphere and icosphere, or modelling a dense cylinder by offsetting every second vertex row by half an edge worth, which is not something you'd do today, but was pervasive back then. This approach was also common on Dreamcast and PS2. There were a lot of non-quad direct-triangle models back then. Often also seen quad modelling, but triangulating by hand to make sure the quad split runs in a sensible direction, because early exporters were a little boneheaded. On Gamecube, games leaned towards triangle density so high, that each would be barely a couple pixels worth, because it really didn't care how much geometry you throw at it, so you'd see more trivially triangulated quad-topology meshes there; but many were also modelled in triangles closer to PS2 style. Mario model is from a newer game, not from back in that era; and the Pyramid Head model is a disgrace, something horrible has happened to it, it's definitely not from a game like this. The dense triangle fan on the face is absolutely impermissible on PS2. It can still make sense to triangulate specific models by hand, for example if you have a circle (ngon), if you span one or two large triangles across it and then triangulate the rest of the border, you'll have less total area in discarded group pixels and it you'll spend less fillrate. Normally it doesn't matter but if you were drawing hundreds of them, it can be a noticeable performance difference.
You skipped over the fact that a computer doesn't know what a quad is. A quad is just eye candy to make our monkey brains understand stuff better. CPUs and GPUs only know triangles, and every quad or n-gon you see is actually being processed as a bunch of triangles.
My software renderer would disagree. It handles any convex polygons, and often is more efficient at rendering higher degree polygons because it’s less overhead to render a quad instead of two triangles. CPUs and GPUs don’t only understand triangles, it’s just that most rendering software is programmed to only handle triangles because it’s the most general solution, and graphics APIs are built to only handle triangles. With modern compute shader programs, I’m sure there’s a way to make a GPU render a true quad, though I’m sure it would be much less efficient because the GPUs hardware has been optimized around triangles for decades.
@@sampowell8241 technically blender also handles any polygons. I’m talking about what happens under the hood, on binary level. Hardware only knows zeros and ones, and therefore everything needs to be simplified to the simplest level possible to be processed correctly, and the simplest polygon is a triangle Now, granted, if you’re talking about 2D software yeah, maybe those aren’t triangles. But in 3D space, using polygon based software, everything is triangles because the computer NEEDS a flat surface to calculate where the points are in space and display the shading correctly.
@@deviantvision4995 SamPowell's correct. Not all 3D renderers have to render tris at the end of the process. E.g. Nvidia NV1 and this: ruclips.net/video/1pGRmr3HRyo/видео.html
Non-planar quads are always rendered as two triangles, since there needs to be a ‘crease’ between one set of opposite corners. This is amplified the lower your detail is, ie. The less polygons you have, and the more visible individual edge creases are. In some cases, such as at a joint, one diagonal crease placement looks subjectively better than the other. Therefore it is desirable, especially in a game context where models might have a stricter triangle budget for performance reasons, to manually set triangles so that the diagonals flow as is desirable, instead of it being done automatically which is not guaranteed to use the ideal configuration.
Thank you for making this video! As a noob to the 3D scene, I've been wondering the same thing. Both the video itself and the resulting discussions in the comments have been extremely helpful for clearing up my confusion!
Firstly please don't feel discouraged! Its great to see your trying to learn new things and share what you've learned. I've been working in and around this industry for about 25 years so I figured I'd weigh in and try to clear up some issues. OK so its all about Subdivision Surfaces, Deformation and Shading, not about the number of sides a face has. When you subdivide a triangle mesh all of its faces will be quads, and when you send a quad to a renderer it gets converted to triangles. Triangles are basically the atoms of rendering. They're neither good nor bad. The advantage of using quads in your modelling app is that they can be cleanly and *evenly* divided multiple times without introducing undesirable lumps, triangles and n-gons cannot be as evenly and smoothly subdivided so they cause lumps. Edge loops are important for 2 reasons 1. They are provide the most economic way of representing a shape, This makes the model easier to manipulate for the artist and easier to render for the renderer. 2. They behave well when being deformed. The loops tend to represent creases or wrap around areas of deformation ensuring the deformation is predictable. Game models are not really subdivided so you can make some trade offs. You have a very limited polygon budget so you spend your polygons like so: 1. Ensure that deformable areas have good edge loops 2. Ensure that the characters silhouette is as clear and detailed as possible. Game artists are less concerned about non silhouette details because they can fake those with a normal map, or painted textures. Also because baked normal maps are essential the *difference* between the low and high poly they can fix shading errors caused by uneven topology. Its good to have a clear understanding of the following ruclips.net/video/k_S1INdEmdI/видео.html graphics.pixar.com/opensubdiv/docs/mod_notes.html en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface en.wikipedia.org/wiki/Gouraud_shading en.wikipedia.org/wiki/Normal_mapping learnopengl.com/Advanced-Lighting/Normal-Mapping wiki.polycount.com/wiki/Normal_map
Thank you for this! I'm an animator & game graphics designer student and was always wondering why the triangles were to be avoided when creating topology for a model.
GPU optimisation has been centred around triangles for a long time. On top of them being dirt cheat to render, they also provide more accurate lighting data then quads.
It's actually due to a ton of simple optimizations you can do with triangles like nearly free backface culling if you only define triangles with either clockwise or anticlockwise vertices
Great video! Many of the things you mentioned are very common misconceptions among artists, so dont beat yourself up for sharing them. Since you are interested in the subject, I recommend you watch Jonathan Blow's "How 3D video games do graphics" video to get a better grip on the technical aspects. Expecting more videos from you!
Intentionally turning some areas of your mesh into triangles helps with random flipping of edges. Which as you had briefly mentioned can affect lighting in some way. Turning a quad into a two triangles tells rendering software and engines that this is the only orientation you would like to see on that quad. This also helps for the same reasons in deformation of the mesh. Intentionally folding two triangles in a specific direction. Like if you needed a nicely folding crease in the cheek when someone smiles. Don't worry about getting things wrong. There is a lot of information out there and we are all still learning. Thanks for sharing your video. Also, although all models may end up being processed as triangles, I would say its a nearly 100% common practice to make models in quads. Just flat out easier to work with , update, iterate and hand off to others. Working with or editing someone's pre-triangulated model is in fact a nightmare. ;)
It's worth pointing out that, mathematically, getting a 2D quadrilateral ("quad") from a a set of 4 vertices and edges in 3D isn't well-defined. If the 4 vertices happen to be coplanar, you can use the unique quad that lies on this plane. But if not (which is almost surely the case for generic points), there's no way to tell what the 2D surface would look like, it can be anything you want (including the possibility of curves and whatnot). So you can't really render something that isn't determined to begin with. Dividing every such quad into two triangles (each of which is *always* coplanar) is basically the simplest way to specify what you want the surface to actually be. Also worth noting that if the quad does *not* lie on a plane, you can choose to triangulate it along either of the two diagonals, and each choice will lead to a different surface. So that is a choice that actually has to be made at some point.
As many here have already discovered, a game engine triangulates each model when importing. It is therefore advisable to archive the original in case changes need to be made. Exporting the model from the engine in order to edit it is not a good idea, because with the salad of triangles, changes to the model and the texturing are often difficult or impossible.
I use Blender for everything, even things I shouldn't use blender for (like calculating paint mixing and running python programs to edit gcode files.) and one thing I've learned is it's better to triangulate and correct before exporting anything to stl or other triangle mesh file types. The triangulate faces function has variable you can control, and for some reason does a better job than blender does during raw exports. This is especially important if you've done any bevels, as the function will keep them smooth but the exported version can sometimes cut the quads the wrong direction. Great video, should do an update with everything you've learned sometime.
I liked your video and the effort it took, buddy! There is another thing you did not mention that is also important. If the mech is quads and not tris, the graphics card has to always triangulate itself. (The GPU can by the way only work with tris, anyways, because of the problem that you mentioned that everything needs to be on a vector plane.) It would have to do that for EVERY single frame which takes a lot of (unnecessary) calculating. But it gets even worse: When the mesh is deformed by bones the way the mesh is transformed into tries would alter if it was done for every frame all over again because the dimensions of the quad would change as well and the graphics card by default tries to triangulate the quads into the most possibly even tris. So, in other words, if the mesh is not (yet) triangulated it confuses the graphics card as how to break down the geometry and possible changes the method in the procedure. In a fairly low-poly mesh that could cause well preceivable flickering which the player will most likely notice in some scenarios. So... There is basically a visual component to that as well. I wanted to give that small input to you in case you are interested. ;)
Dude, just wanted to say that despite some things not being accurate, your video gives a great starting point for discussion and the comment section became a great learning tool about this subject that i wasnt findind anywhere. Thank you so much for holding this video despite the sometimes not so constructive criticism.
One of the reasons is also that the texturing program they probably use is also going to triangulate the mesh upon importing as substance painter does, wich ensures that the normals are not going to be changed somehow, usualy i always triangulate my models before importing them into substance cuz substance dosent have to triangulate the model while importing wich can take some time depending on how complicated the model is from what ive experienced
As a few people have stated, the reason why the models are triangles is because tris get generated from quads. When planes get a vertex moved and become "non planer" the shading has a really odd time trying to find the "normal" of a face and you end up with two tris shaded but technically a "quad". This is because blender and every quad commonly seen are Triangles. The reason for modelling in Quads is as you stated Edge flow, sub-D and UV Wrapping. But once it passes through an engine it *normally* gets triangulated. The reason why the mario isn't quad and instead dual tris is because this probably wasn't the model before it went into the engine and probably had been extracted from the game files/engine. Thus it would have already gone through triangulation. There are some very good reasons to use tri topology when doing low poly deformation in joints like knees or elbows to stop pinching behaviors. In any case love the production value on the video, really well produced.
This is true, I remember reading somewhere, a long time ago that developers weren't sure whether models were supposed to be quads or tris, but long story short, tris were better for optimisation as you don't always need quads and is generally better for morphing of models. Personally when I've 3D modelled things, I will triangulate my low poly and remove unnecessary triangles before baking. For example if u have a flat service with lots of tris for topology, this can just be removed as it's not needed to render
Interesting thing, I very recently started learning 3d modeling, and watched many tutorials about perfect topology. But watching video game documentaries, I ofter noticed that weird topology triangles when they showed models from development prices. In that moment I thought why they look like that when everybody is telling about quads. And now I suddenly came across this video. As always, RUclips is reading the minds 😄
I've got a fairly short attention span, so where possible I like to speed up a video as fast as I can process the information (most times 1.75x -- and sometimes 2x) -- Even though you have a fairly slow delivery, this was the first time I decided not to speed up. (Like of course if I'm watching a movie, or something entertaining, I don't speed those up, but anything with information and talking in it). I think it was partly your "animations", I liked the fact your little robot avatar changed expression fairly frequently which made me want to watch it more carefully. Anyways thanks for explaining topology, because I didn't ever really know what it was.
Reminder to @magic cyborg "There are no stupid questions". Please keep this video up despite the negative comments. Heck, you should make a part two showing your latest discoveries.
from my experience it is the game engine which does the triangulation for our models so often it doesn't matter if you use triangles while modeling for video games as they will end up triangles either way. however its common to do some of the work manually as well, as with certain angles the game engine doesn't know if the quad is beinding outwards or inwards which can cause shading issues. this is usally also part of why n-gons are no no as the game engine doesn't know how to properly turn it into triangles. eitherway the video was fine and though you weren't right on everything as said in your pinned comment. but thought experiments like these are generally useful to have as it can help you come to conclusions or improve yourself.👍
Triangles are simpler to raster because ther "fragments" (fragments are translated to pixels later) never overlap, in certain instances, quad fragments may overlap their fragments, so their rendering is not as optimal, despite the fact that rendering quads often offer better results, as their seams align perfectly with the shape, unlike triangulated quads whose middle seam can be noticed if the shape has few triangles, this was specially noticeable in Saturn vs PSX games
Since you mentioned Blender's edge count going up when you triangulate quads. Video games don't use edges if I recall, they're completely discarded. Game engines if I'm not mistaken typically store only the vertices of a model and which vertices have triangles in them. And they're typically drawn/rasterized in clock-wise order, edge information is not needed. Also very interesting, having more seams in a UV map also increases the vertices count because it has to add duplicate data for every vertex that is not connected to another vertex. So having fewer and larger islands is also often better for performance too. Another reason games might also use triangles might also have to do with shading. Calculating shadows and such is simpler for triangles because it only has to interpolate between 3 points, calculating shadows for a quad can look really weird and might cause glitchy artifacts if the polygons need to stretch and bend. You can test this yourself by using vertex colors on the default Blender cube and painting it, then compare the result with a triangulated cube.
Rendering always breaks Quads into Tris. You can see this by bending a quad & looking at it at different angles to find the extra edge. A video game model just has this & all other operations finalized.
triangles are the simplest thing we can render, it makes rasterization easy and also interpolating values between the points on the surface of a triangle ( such as uv-coords ), also they are cool and you can create any polygon using only triangles.
A really good video. A very solid overview of the topic of topology. Keep up the good work. Now, I see you have found your way into the start of understanding triangle strips and triangle fans. As it turns out, all quods are just two triangles in a trench coat that act like a square. In fact, you see this in play at 4:24. You're also correct about triangles' ability to be planer at any point in space. One reason this is important is because it helps to calculate the normal vector. By taking the vector of two edges from a vertex. You can calculate the cross-product of the two and get a vector that is perpendicular to the planer axes. By normalizing this vector's magnitude, you can find its normal vector. In blender terms, turning on the normal display (edit mode, viewport overlays, normals) you can see this. These are used by the shader to calculate lighting and the way the object is facing. A face facing away doesn't need to be rendered. In rendering, this is called back face culling. By this one calculation of getting a normal vector, games can often gain about twice the performance as they would have because they can skip a lot of rendering. With that said, on the 3D modeling side. Working with quods is much easier because of the subdivision surface algorithm. By finding the halfway point of all edges, you can add a new vertex in that position and recalculate a new edge. Because two triangles make up a quod, it can also find the halfway point of that shared edge. Allowing it to now have nine vertices, easily making 4 quods. Because of their widespread usage, most graphics libraries, like OpenGL and DirectX, kinda just assume you are using triangles for everything. As such, blender tessellates all its quods into triangles anyway. However, the concept of quods is very useful for some algorithms that help with modeling, and as such, it's the reason why n-gons and/or triangles are unwonted. As these algorithms don't work for these types of meshes. Sorry about the long comment. I write a lot of graphics code. Plus, it's fun to talk about these topics :P .
Hey, this is actually a good video because it shows how one might think about this without understanding the hardware. The comment field is full of good information as well! Then when you really go into detail the shape of the triangle and in particular, its length to the primitive block size of a rasterization block, it gets another level of complexity. If you have to consider the drawing of 8*8 blocks of pixels for just a pixel or two for several long triangles, it gets taxing for the engine. Cannot actually find information on the block level size anymore, but this used to be true at least :D
Your video is spot on! 4:40 - The reason by math is done to triangles not quads is due to transformations in 3d space. If you had extensive math lessons is school, you might have remember "matrixes" and operations on them. They are very efficient and fast to do ( * / + - ) on them... AND THAT IS WHAT IS HAPPENING BY MATH when you moving in 3d space! "zooming" "panning" "rotating" -> behind the scene is "get me this verticle and multiply by this matrix"! Based on that HARDWARE was designed that way to be the most efficient on triangles (memory/access) and its gonna stay like that. There are other bits like points of collisions in 3d space, or calculating normals, etc.. Where math is very fast to do. so its performance in a nutshell. To make it in plain english.. for you HUMAN :) its easier to do: 123 + 123 then 123 * 123 ;) same for machine.. triangles are faster ;)
by the way... for GPU its actually faster to do MULTIPLY then ADD :), it requires assembler knowledge to understand processor commands but I'm sure you will find some videos / articles that explain that paradigm in details ;)
Usually, when a model is exported, it’s going to be triangulated by whatever program exports it. In blender, you can use the triangulated modifier, or go into edit mode and select all , and then hit Control+ T , to guarantee your model will triangulate the exact same if imported into engines, or other programs. When you’re importing into blender or other programs, you will get the already triangulated model, because it was triangulated when initially exported. The folks modeling these characters likely already did quad modeling. There’s rare cases where truely weird triangles are there on purpose like in guilty gear. The mouths use triangles for stretching
In the end your GPU (even in animation) triangulates the models no matter what. So it's not so much about the vertices, it IS about the faces. But the real number of faces rendered by the GPU is the number after triangulating a model in Blender. That's a good way to measure the actual polycount of your model. A big reason to triangulate your game model may be to control the quad's deformation. Since you have less freedom to add edge loops (less and less true obviously, for around 5 to 10 years now it's almost been a non-problem) you need to be able to control how your quads will deform during animation, and the best way to do that is triangulating and rotating the edge the way you need to. But these are still relevant topics today, especially for indie studios who decide to go for a N64/PS1 aesthetic (Abyss X Zero or The Big Catch for example) or a simpler polygonal style (like Tunic). In such situations it may also sometimes make sense to use triangles for pointy bits. We still try to avoid it, but particularly in low polygon games such as those examples it may be better both visually and for consistence ! Another reason you may find triangulated models is that for commercial games you usually "rip" the model. Meaning some software reads it from the game's RAM and rewrites the data to a 3D file. But when doing that, you're reading the model as it is interpreted by the 3D library and the GPU, meaning it's already triangulated. So no matter what, a ripped model will almost always be triangulated (except for edge cases and when the ripper requadded it).
From a Renderering Perspective, using Quads is probably increasing the anount of math because, if you have 1x1 Field as a Quad you have 4 Parameters that need to be interpolated inbetween for every Pixel, using a Quad reduces 2 tris to one single poly, however if its 2 Tris then the 2 halfs of the 1x1 Field are each using only 3 Referencepoints for Interpolation, depending on the shader etc, this is inceasing the amount of variables that need to be pushed to all Pixels of the Faces. On Top, to figure out if a object should be rendered or is overlapped, theres a ZBuffer written usually, to write to it, you need to have the correct shape on screen, so on a Quad you kinda need to split it up anyway to figure out the edge that goes through it,
A quad is 2 triangles, it is all triangles, just different ways of viewing and manipulating the surfaces in the viewport. Striving for an all-quad model is good practice for a beginner, but it is also important to get to know the benefits of nGons and stuff as well, because they are used quite a lot in movies and animations😊 Subdivide an nGon and see where you can use that result to your advantage💪
Non-coplanar surfaces are mathematically undefined. It is impossible to avoid non-coplanar surfaces at all times in 3D modeling though, especially in organic modeling. So, you (or the software) trangulate your quads. The reason is that it is impossible to create a non-coplanar triangle. That is the answer. I too wondered about tris versus quads until I learned that.
its a same thing that sorta like someone reinvented a wheel; spend some time not a whole lot to document it and writing a blog post with short paragraphs about "how exactly do wheel work" as a title, is like on the browser that got a quite long side scrollbar then scroll down little bit then the end of the page . well hypothetically i could go blender org simply create a quad sphere export the file, transfrom the file format the way i want, code the program to read my file, code to buffer to draw some triangle to become 4 edge face some 3d calculation inside my opengl, code a shader 'property' to render my sphere out, so after all, what games is missing now is someone gotta figure out how to implement something like "Shade Smooth" function similar on blender inside their games and also figure a way to optimize game performance
I'm still learning myself. I find that it is not always possible to use only quads. Now, I'm no expert and I'm sure more experienced 3D artists know of ways to resolve this, but it seems to me that the only reason you want to use all quads is to make the modeling process easier. Once the modeling process is complete and there is nothing else you plan to do with the model, it doesn't matter, because the export, or import to another program with triangulate everything anyway.
As a seasoned 3D modeller, a few triangles and n-gons are necessary here and there to make the task easier. I end up eliminating all of them but it's more for the challenge than for it being strictly necessary. Tris and n-gons on parts that barely deform at all are no big deal. This only applies to organic modelling, esp. something that is going to be animated or posed. For static objects it may not matter at all in most cases.
You pretty much got it. A triangle is a plane. Being a plane doesn't really make it easier, instead it makes it well defined. For example, when we define a winding direction, it makes normal vector computation implicit and we don't have to store them in the model file (note this is not really a concern anymore as textures dwarf the size of the models). Similarly, when your base representation is a plane we have a straight forward dot product equation for computing the light reflection of that surface. For solid geometry we also have equations, but they are far more complex. Even then though I am unaware of the existence of an arbitrary surface equation. Another minor advantage (with modern GPUs) is during clipping you can draw a new edge between the visible parts of a triangle (imagine half your triangle is off screen). The behavior of the plane is the same in terms of rendering. Specifically by clipping the triangle you have not changed the interpolation function for texture lookup. As a final example, picking (the process of determining which triangle intercepts a ray) is well behaved for a ray plane intersection. It really comes down to a plane, of which a triangle is the minimal definition, makes the math well behaved. This could all be done with quads, but it would make certain steps in the rastering pipeline under defined. For example to clip a quad you would construct in some cases an n-gon.
We have many formulas to deal with triangles. Most polygons are calcualted using triangle math which is an extra variable in the calculation if you need to calculate quads
That is, the correct topology is those nice and even grids in the models. Arguably, many such models are created using sculpting. I used to do that too and the mesh looked like a mess. How do they make that even mesh? Does it involve the tedious work of laying the quads on top of the sculpt by hand, or is there some magic button, lol ?
The GPU architecture is what really matters. They are literally like made to do triangle math. Fun fact, Nvidia used to have an architecture that favored quads, but they were overruled by the markets and eventually switched to the triangle focused architecture.
What if the model makers did use proper topology, but they didn't use Blender? Ultimately, models are stored as triangles... so if you loaded a regular model into Blender, it would obviously look like they used triangles for everything. It is sort of like compiling a program written in Rust, decompiling it, and wondering why the person wrote the program in C.
triangles are processed faster by the cpu and also the shaders are calculate din the vertex frame buffer. most of the professional AAA games do all calculations inside the custom interpolators assigned to the custom buffer calculated in the vertex shader which is precompiled and a lot faster.
Basically, all math is done using triangles. All 3d models are converted into tris. And makes sense when you think about it. When trying to calculate something you have two points, and the final point will make it a flat. With more points you introduce folding which means rendering gets broken.
The main reason why it's all triangles is because you are not using the official model Nintendo worked with, you are just seeing the triangulated version for use inside the game. This is done to ensure that you get the same topology output going from your modeling software to your game engine. Also, game engines only understand triangles, like any other modern software, so it's a requires step.
Just use tris to quads. It's right below triangulate faces in the dropdown. It doesn't always work perfectly, but it usually works. Game models are triangulated beforehand partially because some game engines simply don't support quads and partially because if the game had to triangulate them while loading them it would just take way longer to load. Blender just triangulates on the fly for rendering anyways.
Every engine uses triangles to render 3D models. Triangles are the most basic geometric shape you can have which in turn makes them a lot easier to process. No matter where the vertices are it will always be a flat plane. This also makes it easier to determine the normal vector, which is essential to shading and lighting. Blender prefers quads because it's easier to make models with them. Blender always renders using triangles.
My university really drilled it into us that NGons are the devil, one of my lecturer's always referred to them as "Satan Squares" and would fail us automatically if she found even 1 NGon, suffice to say we learned really quickly that we should never have them. Also, the switch to all trigons for video game meshes was also a bit of an adjustment ngl, since we were only allowed maybe a handful of trigons in our scenes and models ever. Then we started optimising for video games in our 3rd year and all that went out the window xD
Awesome video! I think that the game engine itself is the culprit behind turning quads into tris. I remember porting an object into Unity one time without turning it to tris, only to then realize that the engine took care of it for me. Also, you can select all and press alt J to turn tris back to quads!
Polygons are always triangles during render time. A polygon is just displayed without the triangle edge. But its there. You cannot render a polygon witbout rendering its triangles.
Quads make subdivision modeling easier and cleaner (and are more efficient than tris). Only some game engines require 3-sided polygons. SEGA has at least one arcade board that supports quads (and apparently so does the Dreamcast).
A quad is still basically two triangles without a visible diagonal line. Quads are a good representation of the surface orientation to the human eye. The computer does not see quads like humans. The computer on the other hand sees a quad as 4 points (vertices) in the shape of two stacked triangles. The calculations used to determine the distances between any other vertex would be trigonometry. As a human, I would be able to represent the orientation of each vertex in a predetermined scale with an x y and z plain manually; then plot the results out on a spreadsheet. The only methods I would use is trigonometry, and some calculus to check on volume preservation. These calculations in the Billions, would take me a lifetime to calculate manually.
The easy answer: Triangles are all that 3D GPUs can render, because any shape can be reduced to triangles. That's like CPU can only handle bits, as every numeric value can be expressed as a series of bits. So if you feed a GPU quads, they will actually split those quads into two triangles before rendering. By directly feeding triangles, the GPU doesn't have to perform that step which saves a bit of rendering time and thus you can use more vertices per scene. The more complex answer: With modern GPUs, you don't always want to draw triangles. Modern GPUs support hardware tessellation, and you can even write your own shaders to control how the tessellation is done. Tessellation means (quoting Wikipedia): "In computer graphics, tessellation is the dividing of datasets of polygons (sometimes called vertex sets) presenting objects in a scene into suitable structures for rendering. Especially for real-time rendering, data is tessellated into triangles". This is done dynamically, so you can create fewer triangles on weaker GPUs and more on stronger ones, making the best use of the graphics processing power of the system underneath. So in some cases you don't want to statically convert more complex polygons to triangles when you export your 3D models for a game, you want to do it dynamically at runtime. You can still perform tessellation even if your model has already been converted to triangles, but you will get better results the more information the GPU has available, and a triangle is already reduced to the bare minimum of information needed for rendering. The information about which of these triangles originally made up a single polygon (e.g. which two of them made up a single quad) is no longer available when you are left with only triangles. Tessellation on just triangles can only smooth surfaces, it's like smoothing a compressed video to make some compression artifacts disappear (but information that's gone is gone and cannot be recovered). Tessellation on more complex polygons, on the other hand, can actually decide at runtime how much detail to keep or remove (this is like dynamic video compression, where the amount of compression is scaled to the power of your CPU at the time of viewing).
Just so you know when doing stuff in real time performance matters. GPUs only do triangles. A square is two triangles. Squares are two times more intensive. It doesn't do it but it is noticeable. The reason that we see the triangles is because we measure things in triangle count mostly
It's actually not specific to game topology, because developers DO use quad modeling via apps like Blender or Maya or other things. The real reason it seems specific to games is that when a game is deployed to consoles and such, everything is compiled to run faster on consumer hardware, including meshes. As many have pointed out, all models are converted to triangles before rendering. So by the time people figure out how to extract a model from a BUILD of that game, they're already packed in as a simple optimized triangle mesh, rather than any of those common formats like FBX or DAE or OBJ that 3D modelers will import into something like Blender.
Quads are used for meshes that's getting subdivided ob render, having all tris model would screw up subdivision, but when you making game you need to have good shape and deformations without things like subdivision surface, so you need to use triangles to make the best shape, and in engine model are getting triangulated anyways.
GPUs can only render 3 kinds of primitives: - Lines - Triangles - 2D rects (i.e. aligned to the screen), usually always square (same width and height). And anything else is made from those.
i'm pretty sure that game models just don't store information about quads and stuff. when you use quads even in blender, it still renders them as 2 split triangles. the thing is, when you extract a game model it simply doesn't store which triangles formed the quad so all you see is the triangles that your computer is Actually processing
Learning blender few years ago be like : MUST DO QUADS!!!!! After some time with game development : it's okay to have triangles. in fact, you can do ALL TRIANGLES OR NGONS quads is just an easy way to model nicely and use the modifier properly in Blender
they are acceptable if the geometry of mesh is flat but not if the mesh is complex or if you're gonna deform the mesh (like subdivision), export/import the models, and its gonna make stuffs (like loop cuts, uv unwrapping, triangulation) much more harder, etc
Because its bogus. You triangulate your models anyways before tossing them into engine. There will be no ngons. If you control your shading, nGon away, and jus slap on a triangulate modifier to check your results and all good.
@@Pxilez3d honestly, im not sure. i guess it depends on the geometry and what youre trying to do. maybe you can use triangles to import the model inside a game? or maybe when youre not planning to subdivide and stuff as much on the model. bc like, (sorry for not mentioning it earlier but) i was never an actual 3d arts student; i didn't major in it during college or uni. so like, i really dont know much and most of what I've learned about 3d modelling comes from yt, wiki, and documentations. 3d modelling just been my hobby for as long as i can remember
Fun Fact! The Sega Saturn was capable of rendering quads in video games, and did so for many games; likewise Nvidia's first graphics card, the NV1, was also capable of quadratic rendering, and did not support polygonal rendering, but because every game on PC up to that point used polygons, and with no name and very little interest behind them to push ports (only a couple were made) they were forced to drop quadratic rendering and use polygonal rendering like the rest of the industry.
I think blender actually uses triangles but it shades based on quads and ngons. A lot of the file formats you use to send it to a game engine reduce quads to triangles anyway as they'll be converted to triangles to be sent to the GPU anyways. One thing about ngons is that not all 3D software will handle them. If you send an obj file to Zbrush for instance you'll have to fill in holes in your model.
Triangles might be better for optimisation, but working with a model comprised of triangles is an absolute nightmare, Makes things like UV unwraps and texturing a nightmare. So I'ma stick with my quads.
UPDATE: First of all, this is the most active comment section I've ever had for a RUclips video. And I can't thank you all enough. Even if your comments are "negative," I truly value feedback and have a desire to improve in any ways I can. That said, a lot of you have pointed out stuff that I wasn't aware of. And I wanted to address that here.
1. As it turns out, your model will get triangulated automatically if you import it into a game engine (such as Unity, Unreal, etc.). As an aspiring game designer, I feel like an idiot for not knowing this. I assumed that these models were triangulated manually by a 3D artist when in reality it's the game engine that has triangulated the model.
2. Game engines aren't the only ones who like their models to be made of triangles. BLENDER DOES AS WELL. What I have demonstrated here: 3:00 is actually what all quads and ngons look like under the hood. Blender (and other 3D programs as well) essentially just trick you into thinking that you're working with quads to make your life easier. What's funny is I've unintentionally demonstrated this at 4:30 where the plane can only deform like that if the software saw it as two triangles. And my dumbass was completely oblivious to this.
I'm well aware that this video's reception is rather...mixed. And I apologize to those who didn't have an enjoyable experience from watching this video. But I had learned a lot from you guys and I will try my best to improve in the future. This is probably the most technical subject I'll ever cover on this channel, which is probably why it got the most stuff wrong. Thus, the next couple of videos will cover more general topics. Once again, thank you all for your feedback and stay tuned.
Even if the information in this video was slightly misleading, I still appreciated that you went out of your way to try and explain it. 👍
Don't be afraid or discouraged to tackle technical topics in the future the end outcome is you learned a whole lot worst case you repost a vid or pin a comment. I didn't even know game engines/3d software changed the model's topology to begin with.
You are just spreading wrong information, why keep the video?
@@Genebriss Because the comments on this video have provided helpful information to a lot of people who don't know how CG geometry works. In my mind, the positives of this video's existence far outweigh the negatives.
@@Genebriss Because bad propaganda is still propaganda. The video is making numbers despite the fact that it contains information that is wrong. The author himself said it on the comment you just replied to: this is the most active comment section on his channel to this date. Why would he shoot himself in the foot and stop the influx of people coming here to comment? Yes, it's all wrong and an embarrassment of a video where someone who has no clue what they are talking about spouts nonsense... but who's going to say no to a free meal? money is money, and having this golden oportunity to chache out a big chunk of views... who would throw it away? Only someone with integrity, I suppose, which the OP made it clear that they have none of.
Hey ! Game artist student here ! Actually, the specificity of video game topology isn’t in the triangles… because cinema models are all triangles too ! The fact is, most if not all polygon rendering engines, real-time or pre-rendered use only triangles. And your models in blender are no exception, they are triangles too under the hood. That’s the reason your quad looks like two triangles when you move a vertex making it non planar. The reason your models are displayed in quads in blender is, as you said, that’s easier to work with, and, as you guessed, we work mainly with quads too. But the reason the videogame models you get are all triangulated, is because it will get triangulated anyway when rendered, so either the artist or the engine pre-triangulate the model before importing so the engine don’t have to do it at runtime. But we effectively have our own topology requirements to reduce and optimize the polygon count. Having triangles isn’t a big deal if it allows to reduce the polycount and doesn’t create problems when baking or animating (I think one of the reason it is considered as something bad in pre-rendered is because it messes up the lights when using tools such as the subdivision modifier, but I may be mistaking). We don’t have to create a 100% homogeneous topology : if a part of an object needs more topology to deform or to represent is volume, and an other could just be a quad, we won’t bother dividing it. In the same vein, we might add topology just where a model needs to deform. We also have no problems deleting face no one will see. These topology requirements are mainly for the low poly models. We also often create high poly models, by sculpting or with smooth poly modeling to bake details onto the low poly mesh via normal and AO maps.The requirements are different, but you won’t see these models in game as they are used only for the baking
Exactly ever quad is in essence two triangles, because the engines are based on vector maths, for any given surface may that be a quad or a n gon the engine is using vector maths, which is in 3 dimensions, so its at the end of the day calculating things based on triangles
I agree, you can even see it at 4:30 where the quad deformation is demonstrated how blender treats it as 2 triangles.
Thank you
You're the hero we deserved
The idea that all render engines require tris is a myth. There are a number of render engines (film and gaming) that render quads -- even at the final stage in the rendering process.
Alright let me tell you a secret that I discovered...
It's All triangles. All of it. Every quad, every ngon, every mesh, all of it is triangles.
It may look like a quad, but blender registers it as two triangles. The "triangulate quad" button is the default shape of what the mesh actually is.
Blender doesn't really tell you the truth about quads.
😳
Yes this is why triangulated mesh is faster. When you have a quad mesh it has to be triangulated to render. Blender does this on each frame of an animation, in milliseconds which isn't a problem when frames can take minutes to render. I think it divides every quad between the closest vertexes for that quad but I could be wrong it might use a more advanced calculation. This is why really good topology is a mix of quads and triangles and has no poles with more than 5 edges. You put triangles where you want to control how that quad dividing happens.
@@Vm0nkeyNonsense. Its GPUs that can only render triangles. Blender doesnt triangulate each frame. Its all tris always, you just get shown quads for humam readability.
@@harrysanders818 Blender does triangulation. GPUs have native implementations for showing quads, but if you have ngons blender has to do triangulation. I'm pretty sure Blender triangulates quads aswell, just because its easier to handle the in code. However, Blender does not perform traingulation EVERY frame. It performs triangulation in the background only when you change the mesh, then uses the triangle data for rendering.
The main reasons for triangulation in games is, 1. to reduce polycount, and 2. to precicely control how the model is rendered. As you can imagine there are two ways to split a quad in two triangles. A GPU does this randomly, which can cause unwanted visuals.
Yeah, it's just easier on the eye, and speed up the work process. Most game engines will "triangle" it automatically anyway tho.
The right answer is : GPUs have been optimized to process textured triangles for 25 years. The only exception was the sega saturn, that had a 3D chip that was optimized for quads, but this made it more complicated for coders (and artists, remember in these days, going over 500 faces for a model was a luxury, therefore, using a triangle to fill a hole is 100% ok).
In either case : Modeling with quads just makes the artist's work easier, with the correct arguments you used. All quads are then triangulated when exporting the model to your prefered format. If you are a prefectionist, you can actually triangulate some quads beforehand, just to keep control of which way the diagonal goes.
Wow. I didn't know the Sega Saturn was optimized for quads, that's actually kinda crazy.
I really appreciate this silly fun vid! Verrrrry interesting! I'm just a big silly myself. I don't know anything about blender, etc. BUT I
have to say I learned a thing or 2. Thanks Magic!
SEGA's S.C.U.D. Race arcade board also renders quads. And the idea that tris render faster than quads is not true and is one of a number of details in this video that are incorrect.
@@magiccyborg It was, and it caused some insane issues that you wouldn't even think about.
Consider for a moment you are making a transparent triangle using a quad. 2 of the vertices in this quad are going to occupy the same space. When you go to draw the triangle, the Saturn would rasterize the triangle by drawing strips from the top of the quad to the bottom. But because two of the vertices share a position, it's going to be drawing over certain pixels over and over again, creating weird artifacts where the triangle was substantially less transparent near the overlapping vertices.
^ what dmeat0rz said. Modelling in quads makes the work easier with lesser visual clutter. The triangulation direction will depend on your topology’s edge flow. Which is also why modelling in quads is easier to visualise edge flow. Some manual triangulation is done usually for models with ngons and tris because 3d softwares’ auto triangulation sometimes produce unexpected results.
"This shows how much game developers value optimization"
Call of Duty: 👀
Call of Duth is optimized. Just not in storage. 😂
So it’s not optimized
@@LueLuciferOh so that joining a friend requires you to restart the game is what you call optimized? Yeah I don’t think so
@verycreativeusername5401 I never played it, lol, cause it's shit.
Hello! Awesome video! As a professional 3D artist for games I'd like to add a few things:
1 - we do not always triangulate our models ourselves in this manner before sending them to the engine as many engines such as Unity and Unreal do that by themselves on model at 0 cost since It's import process (dunno about Godot tho), most of these models since you've extracted them straight from the engine could be either the Engine's work or the artists, we can only guess, but ultimatelly usually all models ingame will look so in the end one way or the other.
2 - As you've mentioned in 4:23, sometimes quad topology gets weird surface bendings depending on how the vertices are pointed, there are 2 ways of subdividing a quad (left to right or right to left) so the programs choose one by themselves virtually for rendering be it the modelling software even if you can't see the edge line, leading to hole-like deformations in the silhouette of the model depending on the angle you look and how you want the surface to look like, So we can sometimes do that triangulations our own way to avoid the software making bad decisions.
3 - Adding triangles here and there (If you know where to place them correctly) can diminish the amount of faces by one less edge LOOP in some reagions of the mesh, may not look like much but when you consider how many faces does you're model take till it completes a loop It might be very handy, and help to get away with that nice detail without making the mesh really heavy por it.
4 - Generally N-gons and misplace triangles can create shading issues and bad deformations in animations, but they tend to not create those if the surface they're in is completelly flattened out and is not meant to ever bend down the middle (Hard Surface go Brrrrrrt). The only other problem would be there's more ways the engine would choose to cut those n-gons, but again: if the above conditions are met, who cares, no one will ever be able to see.
answear: everything is already a triangle to the computer
Illumanati
3D artist here. Game models, even the ones you showed, are made using quads, they are rigged using quads, textured using quads, etc. The absolute most important aspect of having good topology is it enables models to deform (twist, bend, inflate, emote) the right way. Under the hood it gets tessellated and converted to triangles so the engine can render them efficiently. The Mario and Master Chief models you showed there are triangulated because they were ripped from their game files, but the artist working on them still work on the untriangulated ones.
3D engine dev for Wii, Xbox360 and Dreamcast here.
Master Chief here is triangle based, it's not a triangulated quad mesh.
Because Halo (1) doesn't really do extensive per pixel shading, it uses Gouraud shading, which tends to highlight the triangle edges; so it made sense to scramble the topology quite a bit to make annoying lines less likely and lean more towards equilaterals than towards right triangles. Think difference between UV sphere and icosphere, or modelling a dense cylinder by offsetting every second vertex row by half an edge worth, which is not something you'd do today, but was pervasive back then. This approach was also common on Dreamcast and PS2. There were a lot of non-quad direct-triangle models back then. Often also seen quad modelling, but triangulating by hand to make sure the quad split runs in a sensible direction, because early exporters were a little boneheaded.
On Gamecube, games leaned towards triangle density so high, that each would be barely a couple pixels worth, because it really didn't care how much geometry you throw at it, so you'd see more trivially triangulated quad-topology meshes there; but many were also modelled in triangles closer to PS2 style.
Mario model is from a newer game, not from back in that era; and the Pyramid Head model is a disgrace, something horrible has happened to it, it's definitely not from a game like this. The dense triangle fan on the face is absolutely impermissible on PS2.
It can still make sense to triangulate specific models by hand, for example if you have a circle (ngon), if you span one or two large triangles across it and then triangulate the rest of the border, you'll have less total area in discarded group pixels and it you'll spend less fillrate. Normally it doesn't matter but if you were drawing hundreds of them, it can be a noticeable performance difference.
You skipped over the fact that a computer doesn't know what a quad is. A quad is just eye candy to make our monkey brains understand stuff better. CPUs and GPUs only know triangles, and every quad or n-gon you see is actually being processed as a bunch of triangles.
Good simple explenation. You should be a teacher :)
Exactly! It's only logical because trigonometry is one of the topics that computer graphics is based on
My software renderer would disagree. It handles any convex polygons, and often is more efficient at rendering higher degree polygons because it’s less overhead to render a quad instead of two triangles. CPUs and GPUs don’t only understand triangles, it’s just that most rendering software is programmed to only handle triangles because it’s the most general solution, and graphics APIs are built to only handle triangles. With modern compute shader programs, I’m sure there’s a way to make a GPU render a true quad, though I’m sure it would be much less efficient because the GPUs hardware has been optimized around triangles for decades.
@@sampowell8241 technically blender also handles any polygons. I’m talking about what happens under the hood, on binary level.
Hardware only knows zeros and ones, and therefore everything needs to be simplified to the simplest level possible to be processed correctly, and the simplest polygon is a triangle
Now, granted, if you’re talking about 2D software yeah, maybe those aren’t triangles. But in 3D space, using polygon based software, everything is triangles because the computer NEEDS a flat surface to calculate where the points are in space and display the shading correctly.
@@deviantvision4995 SamPowell's correct. Not all 3D renderers have to render tris at the end of the process. E.g. Nvidia NV1 and this: ruclips.net/video/1pGRmr3HRyo/видео.html
This is something that’s bugged me for years, but as soon as you moved a point on the square and it made a weird shape it all made sense! Brilliant!
Non-planar quads are always rendered as two triangles, since there needs to be a ‘crease’ between one set of opposite corners. This is amplified the lower your detail is, ie. The less polygons you have, and the more visible individual edge creases are.
In some cases, such as at a joint, one diagonal crease placement looks subjectively better than the other.
Therefore it is desirable, especially in a game context where models might have a stricter triangle budget for performance reasons, to manually set triangles so that the diagonals flow as is desirable, instead of it being done automatically which is not guaranteed to use the ideal configuration.
Thank you for making this video! As a noob to the 3D scene, I've been wondering the same thing. Both the video itself and the resulting discussions in the comments have been extremely helpful for clearing up my confusion!
Firstly please don't feel discouraged! Its great to see your trying to learn new things and share what you've learned. I've been working in and around this industry for about 25 years so I figured I'd weigh in and try to clear up some issues.
OK so its all about Subdivision Surfaces, Deformation and Shading, not about the number of sides a face has. When you subdivide a triangle mesh all of its faces will be quads, and when you send a quad to a renderer it gets converted to triangles. Triangles are basically the atoms of rendering. They're neither good nor bad.
The advantage of using quads in your modelling app is that they can be cleanly and *evenly* divided multiple times without introducing undesirable lumps, triangles and n-gons cannot be as evenly and smoothly subdivided so they cause lumps.
Edge loops are important for 2 reasons
1. They are provide the most economic way of representing a shape, This makes the model easier to manipulate for the artist and easier to render for the renderer.
2. They behave well when being deformed. The loops tend to represent creases or wrap around areas of deformation ensuring the deformation is predictable.
Game models are not really subdivided so you can make some trade offs. You have a very limited polygon budget so you spend your polygons like so:
1. Ensure that deformable areas have good edge loops
2. Ensure that the characters silhouette is as clear and detailed as possible.
Game artists are less concerned about non silhouette details because they can fake those with a normal map, or painted textures. Also because baked normal maps are essential the *difference* between the low and high poly they can fix shading errors caused by uneven topology.
Its good to have a clear understanding of the following
ruclips.net/video/k_S1INdEmdI/видео.html
graphics.pixar.com/opensubdiv/docs/mod_notes.html
en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface
en.wikipedia.org/wiki/Gouraud_shading
en.wikipedia.org/wiki/Normal_mapping
learnopengl.com/Advanced-Lighting/Normal-Mapping
wiki.polycount.com/wiki/Normal_map
I went into a deep dive in your sources. Absolutely wonderful write up! I'd love to see a video about you talking about the topic!
Thank you for this! I'm an animator & game graphics designer student and was always wondering why the triangles were to be avoided when creating topology for a model.
Jus restarted learning blender and I’m so overwhelmed with knowledge I’m not even ready for yet lol
good luck
it's fun and there's always more to learn
some operations you'll only use a couple of times but that are very useful in certain situations
GPU optimisation has been centred around triangles for a long time.
On top of them being dirt cheat to render, they also provide more accurate lighting data then quads.
And it’s the most fundamental shape. Every other shape can be made out of the almighty triangle
I guess it's because with 3 vertices you can calculate exactly the rotation of the face, one edge for each axis, while with four edges you couldn't
It's actually due to a ton of simple optimizations you can do with triangles like nearly free backface culling if you only define triangles with either clockwise or anticlockwise vertices
Press Alt+J in Edit Mode for go back to quads
its probably better to use triangulate modifier though
Great video!
Many of the things you mentioned are very common misconceptions among artists, so dont beat yourself up for sharing them.
Since you are interested in the subject, I recommend you watch Jonathan Blow's "How 3D video games do graphics" video to get a better grip on the technical aspects.
Expecting more videos from you!
Intentionally turning some areas of your mesh into triangles helps with random flipping of edges. Which as you had briefly mentioned can affect lighting in some way. Turning a quad into a two triangles tells rendering software and engines that this is the only orientation you would like to see on that quad. This also helps for the same reasons in deformation of the mesh. Intentionally folding two triangles in a specific direction. Like if you needed a nicely folding crease in the cheek when someone smiles. Don't worry about getting things wrong. There is a lot of information out there and we are all still learning. Thanks for sharing your video.
Also, although all models may end up being processed as triangles, I would say its a nearly 100% common practice to make models in quads. Just flat out easier to work with , update, iterate and hand off to others. Working with or editing someone's pre-triangulated model is in fact a nightmare. ;)
It's worth pointing out that, mathematically, getting a 2D quadrilateral ("quad") from a a set of 4 vertices and edges in 3D isn't well-defined. If the 4 vertices happen to be coplanar, you can use the unique quad that lies on this plane. But if not (which is almost surely the case for generic points), there's no way to tell what the 2D surface would look like, it can be anything you want (including the possibility of curves and whatnot). So you can't really render something that isn't determined to begin with.
Dividing every such quad into two triangles (each of which is *always* coplanar) is basically the simplest way to specify what you want the surface to actually be.
Also worth noting that if the quad does *not* lie on a plane, you can choose to triangulate it along either of the two diagonals, and each choice will lead to a different surface. So that is a choice that actually has to be made at some point.
As many here have already discovered, a game engine triangulates each model when importing. It is therefore advisable to archive the original in case changes need to be made. Exporting the model from the engine in order to edit it is not a good idea, because with the salad of triangles, changes to the model and the texturing are often difficult or impossible.
I use Blender for everything, even things I shouldn't use blender for (like calculating paint mixing and running python programs to edit gcode files.) and one thing I've learned is it's better to triangulate and correct before exporting anything to stl or other triangle mesh file types. The triangulate faces function has variable you can control, and for some reason does a better job than blender does during raw exports. This is especially important if you've done any bevels, as the function will keep them smooth but the exported version can sometimes cut the quads the wrong direction. Great video, should do an update with everything you've learned sometime.
I liked your video and the effort it took, buddy!
There is another thing you did not mention that is also important.
If the mech is quads and not tris, the graphics card has to always triangulate itself.
(The GPU can by the way only work with tris, anyways, because of the problem that
you mentioned that everything needs to be on a vector plane.)
It would have to do that for EVERY single frame which takes a lot of (unnecessary)
calculating.
But it gets even worse:
When the mesh is deformed by bones the way the mesh is transformed into tries
would alter if it was done for every frame all over again because the dimensions of the
quad would change as well and the graphics card by default tries to triangulate the quads
into the most possibly even tris.
So, in other words, if the mesh is not (yet) triangulated it confuses the graphics card as
how to break down the geometry and possible changes the method in the procedure.
In a fairly low-poly mesh that could cause well preceivable flickering which the player
will most likely notice in some scenarios.
So...
There is basically a visual component to that as well.
I wanted to give that small input to you in case you are interested. ;)
Dude, just wanted to say that despite some things not being accurate, your video gives a great starting point for discussion and the comment section became a great learning tool about this subject that i wasnt findind anywhere. Thank you so much for holding this video despite the sometimes not so constructive criticism.
This is super informative! I love your documentary style and how you present your thought process in such a nice and entertaining way ❤
One of the reasons is also that the texturing program they probably use is also going to triangulate the mesh upon importing as substance painter does, wich ensures that the normals are not going to be changed somehow, usualy i always triangulate my models before importing them into substance cuz substance dosent have to triangulate the model while importing wich can take some time depending on how complicated the model is from what ive experienced
As some guy that I completely forgot who they are once said:
"GPU speak triangle"
As a few people have stated, the reason why the models are triangles is because tris get generated from quads. When planes get a vertex moved and become "non planer" the shading has a really odd time trying to find the "normal" of a face and you end up with two tris shaded but technically a "quad". This is because blender and every quad commonly seen are Triangles. The reason for modelling in Quads is as you stated Edge flow, sub-D and UV Wrapping. But once it passes through an engine it *normally* gets triangulated. The reason why the mario isn't quad and instead dual tris is because this probably wasn't the model before it went into the engine and probably had been extracted from the game files/engine. Thus it would have already gone through triangulation. There are some very good reasons to use tri topology when doing low poly deformation in joints like knees or elbows to stop pinching behaviors. In any case love the production value on the video, really well produced.
This is true, I remember reading somewhere, a long time ago that developers weren't sure whether models were supposed to be quads or tris, but long story short, tris were better for optimisation as you don't always need quads and is generally better for morphing of models. Personally when I've 3D modelled things, I will triangulate my low poly and remove unnecessary triangles before baking. For example if u have a flat service with lots of tris for topology, this can just be removed as it's not needed to render
Interesting thing, I very recently started learning 3d modeling, and watched many tutorials about perfect topology. But watching video game documentaries, I ofter noticed that weird topology triangles when they showed models from development prices. In that moment I thought why they look like that when everybody is telling about quads. And now I suddenly came across this video. As always, RUclips is reading the minds 😄
This video may be nerdy, but it’s not silly at all !
I understood everything though I am no image man, but a sound guy.
Thank you !!
I've got a fairly short attention span, so where possible I like to speed up a video as fast as I can process the information (most times 1.75x -- and sometimes 2x) -- Even though you have a fairly slow delivery, this was the first time I decided not to speed up. (Like of course if I'm watching a movie, or something entertaining, I don't speed those up, but anything with information and talking in it). I think it was partly your "animations", I liked the fact your little robot avatar changed expression fairly frequently which made me want to watch it more carefully. Anyways thanks for explaining topology, because I didn't ever really know what it was.
Thank you. I really appreciate that. :)
Reminder to @magic cyborg "There are no stupid questions". Please keep this video up despite the negative comments. Heck, you should make a part two showing your latest discoveries.
Dude i just discovered you on my main page and i can see how much you put in your videos. Keep going!
Thank you, sir, I was really confused why game uses triangles at first place. I can't thank you enough.
It all uses triangles
from my experience it is the game engine which does the triangulation for our models so often it doesn't matter if you use triangles while modeling for video games as they will end up triangles either way. however its common to do some of the work manually as well, as with certain angles the game engine doesn't know if the quad is beinding outwards or inwards which can cause shading issues. this is usally also part of why n-gons are no no as the game engine doesn't know how to properly turn it into triangles.
eitherway the video was fine and though you weren't right on everything as said in your pinned comment. but thought experiments like these are generally useful to have as it can help you come to conclusions or improve yourself.👍
Triangles are simpler to raster because ther "fragments" (fragments are translated to pixels later) never overlap, in certain instances, quad fragments may overlap their fragments, so their rendering is not as optimal, despite the fact that rendering quads often offer better results, as their seams align perfectly with the shape, unlike triangulated quads whose middle seam can be noticed if the shape has few triangles, this was specially noticeable in Saturn vs PSX games
Since you mentioned Blender's edge count going up when you triangulate quads.
Video games don't use edges if I recall, they're completely discarded.
Game engines if I'm not mistaken typically store only the vertices of a model and which vertices have triangles in them.
And they're typically drawn/rasterized in clock-wise order, edge information is not needed.
Also very interesting, having more seams in a UV map also increases the vertices count because it has to add duplicate data for every vertex that is not connected to another vertex.
So having fewer and larger islands is also often better for performance too.
Another reason games might also use triangles might also have to do with shading.
Calculating shadows and such is simpler for triangles because it only has to interpolate between 3 points, calculating shadows for a quad can look really weird and might cause glitchy artifacts if the polygons need to stretch and bend.
You can test this yourself by using vertex colors on the default Blender cube and painting it, then compare the result with a triangulated cube.
Rendering always breaks Quads into Tris. You can see this by bending a quad & looking at it at different angles to find the extra edge.
A video game model just has this & all other operations finalized.
This
triangles are the simplest thing we can render, it makes rasterization easy and also interpolating values between the points on the surface of a triangle ( such as uv-coords ), also they are cool and you can create any polygon using only triangles.
A really good video. A very solid overview of the topic of topology. Keep up the good work.
Now, I see you have found your way into the start of understanding triangle strips and triangle fans. As it turns out, all quods are just two triangles in a trench coat that act like a square. In fact, you see this in play at 4:24. You're also correct about triangles' ability to be planer at any point in space. One reason this is important is because it helps to calculate the normal vector. By taking the vector of two edges from a vertex. You can calculate the cross-product of the two and get a vector that is perpendicular to the planer axes. By normalizing this vector's magnitude, you can find its normal vector. In blender terms, turning on the normal display (edit mode, viewport overlays, normals) you can see this. These are used by the shader to calculate lighting and the way the object is facing. A face facing away doesn't need to be rendered. In rendering, this is called back face culling. By this one calculation of getting a normal vector, games can often gain about twice the performance as they would have because they can skip a lot of rendering.
With that said, on the 3D modeling side. Working with quods is much easier because of the subdivision surface algorithm. By finding the halfway point of all edges, you can add a new vertex in that position and recalculate a new edge. Because two triangles make up a quod, it can also find the halfway point of that shared edge. Allowing it to now have nine vertices, easily making 4 quods. Because of their widespread usage, most graphics libraries, like OpenGL and DirectX, kinda just assume you are using triangles for everything. As such, blender tessellates all its quods into triangles anyway. However, the concept of quods is very useful for some algorithms that help with modeling, and as such, it's the reason why n-gons and/or triangles are unwonted. As these algorithms don't work for these types of meshes.
Sorry about the long comment. I write a lot of graphics code. Plus, it's fun to talk about these topics :P .
Hey, this is actually a good video because it shows how one might think about this without understanding the hardware. The comment field is full of good information as well! Then when you really go into detail the shape of the triangle and in particular, its length to the primitive block size of a rasterization block, it gets another level of complexity. If you have to consider the drawing of 8*8 blocks of pixels for just a pixel or two for several long triangles, it gets taxing for the engine. Cannot actually find information on the block level size anymore, but this used to be true at least :D
Thanks for sharing, even I knew that but it wasn't that clear.
I just realized you have 732 subscribers. You deserve way more dude
I loved this video and i love this channel now, keep going!!
So, basically for the reason I thought. Thanks for the information.
Your video is spot on! 4:40 - The reason by math is done to triangles not quads is due to transformations in 3d space. If you had extensive math lessons is school, you might have remember "matrixes" and operations on them. They are very efficient and fast to do ( * / + - ) on them... AND THAT IS WHAT IS HAPPENING BY MATH when you moving in 3d space! "zooming" "panning" "rotating" -> behind the scene is "get me this verticle and multiply by this matrix"! Based on that HARDWARE was designed that way to be the most efficient on triangles (memory/access) and its gonna stay like that. There are other bits like points of collisions in 3d space, or calculating normals, etc.. Where math is very fast to do. so its performance in a nutshell.
To make it in plain english.. for you HUMAN :) its easier to do: 123 + 123 then 123 * 123 ;) same for machine.. triangles are faster ;)
by the way... for GPU its actually faster to do MULTIPLY then ADD :), it requires assembler knowledge to understand processor commands but I'm sure you will find some videos / articles that explain that paradigm in details ;)
Usually, when a model is exported, it’s going to be triangulated by whatever program exports it.
In blender, you can use the triangulated modifier, or go into edit mode and select all , and then hit Control+ T , to guarantee your model will triangulate the exact same if imported into engines, or other programs.
When you’re importing into blender or other programs, you will get the already triangulated model, because it was triangulated when initially exported.
The folks modeling these characters likely already did quad modeling.
There’s rare cases where truely weird triangles are there on purpose like in guilty gear. The mouths use triangles for stretching
In the end your GPU (even in animation) triangulates the models no matter what. So it's not so much about the vertices, it IS about the faces. But the real number of faces rendered by the GPU is the number after triangulating a model in Blender. That's a good way to measure the actual polycount of your model. A big reason to triangulate your game model may be to control the quad's deformation. Since you have less freedom to add edge loops (less and less true obviously, for around 5 to 10 years now it's almost been a non-problem) you need to be able to control how your quads will deform during animation, and the best way to do that is triangulating and rotating the edge the way you need to.
But these are still relevant topics today, especially for indie studios who decide to go for a N64/PS1 aesthetic (Abyss X Zero or The Big Catch for example) or a simpler polygonal style (like Tunic). In such situations it may also sometimes make sense to use triangles for pointy bits. We still try to avoid it, but particularly in low polygon games such as those examples it may be better both visually and for consistence !
Another reason you may find triangulated models is that for commercial games you usually "rip" the model. Meaning some software reads it from the game's RAM and rewrites the data to a 3D file. But when doing that, you're reading the model as it is interpreted by the 3D library and the GPU, meaning it's already triangulated. So no matter what, a ripped model will almost always be triangulated (except for edge cases and when the ripper requadded it).
well done cyborg, loved this vid.
Sega Saturn only did Quads back in the day. Everything else does triangles
From a Renderering Perspective, using Quads is probably increasing the anount of math because, if you have 1x1 Field as a Quad you have 4 Parameters that need to be interpolated inbetween for every Pixel, using a Quad reduces 2 tris to one single poly, however if its 2 Tris then the 2 halfs of the 1x1 Field are each using only 3 Referencepoints for Interpolation, depending on the shader etc, this is inceasing the amount of variables that need to be pushed to all Pixels of the Faces.
On Top, to figure out if a object should be rendered or is overlapped, theres a ZBuffer written usually, to write to it, you need to have the correct shape on screen, so on a Quad you kinda need to split it up anyway to figure out the edge that goes through it,
A quad is 2 triangles, it is all triangles, just different ways of viewing and manipulating the surfaces in the viewport. Striving for an all-quad model is good practice for a beginner, but it is also important to get to know the benefits of nGons and stuff as well, because they are used quite a lot in movies and animations😊 Subdivide an nGon and see where you can use that result to your advantage💪
Spoiler alert, your nice quads are actually 2 x triangles.
Non-coplanar surfaces are mathematically undefined. It is impossible to avoid non-coplanar surfaces at all times in 3D modeling though, especially in organic modeling. So, you (or the software) trangulate your quads. The reason is that it is impossible to create a non-coplanar triangle. That is the answer. I too wondered about tris versus quads until I learned that.
i was going to say quad based topology leads to better rigging and mesh deformation but if mario can bing bang wahoo with tris its good enough for me
its a same thing that sorta like someone reinvented a wheel; spend some time not a whole lot to document it and writing a blog post with short paragraphs about "how exactly do wheel work" as a title, is like on the browser that got a quite long side scrollbar then scroll down little bit then the end of the page
. well hypothetically i could go blender org simply create a quad sphere export the file, transfrom the file format the way i want, code the program to read my file, code to buffer to draw some triangle to become 4 edge face some 3d calculation inside my opengl, code a shader 'property' to render my sphere out, so after all, what games is missing now is someone gotta figure out how to implement something like "Shade Smooth" function similar on blender inside their games and also figure a way to optimize game performance
I'm still learning myself. I find that it is not always possible to use only quads. Now, I'm no expert and I'm sure more experienced 3D artists know of ways to resolve this, but it seems to me that the only reason you want to use all quads is to make the modeling process easier. Once the modeling process is complete and there is nothing else you plan to do with the model, it doesn't matter, because the export, or import to another program with triangulate everything anyway.
As a seasoned 3D modeller, a few triangles and n-gons are necessary here and there to make the task easier. I end up eliminating all of them but it's more for the challenge than for it being strictly necessary. Tris and n-gons on parts that barely deform at all are no big deal.
This only applies to organic modelling, esp. something that is going to be animated or posed. For static objects it may not matter at all in most cases.
Real answer : Game Engines convert models into triangles because GPU renders it that way.
You pretty much got it. A triangle is a plane. Being a plane doesn't really make it easier, instead it makes it well defined. For example, when we define a winding direction, it makes normal vector computation implicit and we don't have to store them in the model file (note this is not really a concern anymore as textures dwarf the size of the models).
Similarly, when your base representation is a plane we have a straight forward dot product equation for computing the light reflection of that surface. For solid geometry we also have equations, but they are far more complex. Even then though I am unaware of the existence of an arbitrary surface equation.
Another minor advantage (with modern GPUs) is during clipping you can draw a new edge between the visible parts of a triangle (imagine half your triangle is off screen). The behavior of the plane is the same in terms of rendering. Specifically by clipping the triangle you have not changed the interpolation function for texture lookup.
As a final example, picking (the process of determining which triangle intercepts a ray) is well behaved for a ray plane intersection.
It really comes down to a plane, of which a triangle is the minimal definition, makes the math well behaved. This could all be done with quads, but it would make certain steps in the rastering pipeline under defined. For example to clip a quad you would construct in some cases an n-gon.
We have many formulas to deal with triangles. Most polygons are calcualted using triangle math which is an extra variable in the calculation if you need to calculate quads
ive wondered about this! nice vid earned a sub
That is, the correct topology is those nice and even grids in the models. Arguably, many such models are created using sculpting. I used to do that too and the mesh looked like a mess. How do they make that even mesh? Does it involve the tedious work of laying the quads on top of the sculpt by hand, or is there some magic button, lol ?
The GPU architecture is what really matters. They are literally like made to do triangle math. Fun fact, Nvidia used to have an architecture that favored quads, but they were overruled by the markets and eventually switched to the triangle focused architecture.
What if the model makers did use proper topology, but they didn't use Blender? Ultimately, models are stored as triangles... so if you loaded a regular model into Blender, it would obviously look like they used triangles for everything. It is sort of like compiling a program written in Rust, decompiling it, and wondering why the person wrote the program in C.
triangles are processed faster by the cpu and also the shaders are calculate din the vertex frame buffer. most of the professional AAA games do all calculations inside the custom interpolators assigned to the custom buffer calculated in the vertex shader which is precompiled and a lot faster.
Basically, all math is done using triangles. All 3d models are converted into tris. And makes sense when you think about it. When trying to calculate something you have two points, and the final point will make it a flat. With more points you introduce folding which means rendering gets broken.
The main reason why it's all triangles is because you are not using the official model Nintendo worked with, you are just seeing the triangulated version for use inside the game.
This is done to ensure that you get the same topology output going from your modeling software to your game engine. Also, game engines only understand triangles, like any other modern software, so it's a requires step.
Models are triangulated for the engine, but quads are used for animation and proper shading on rounded shapes.
Best explanation of topology i ever seen
RUclips recommended this video to me because i love 3d modeling
Short answer, triangles are easier to index which is a step necessary for rasterization of 3d models.
Video game models are triangulated because the game engine automaticaly convert all faces into triangles
So, is it ok I use some triangles in the model myself? (Not triangulating the model, but for modelling purpose. Like around the knee joints and so on)
@@rajabwali3373perfectly ok 👍
The thumbnail is misleading. Both, Games and cinema renderings are using triangles.
Just use tris to quads. It's right below triangulate faces in the dropdown. It doesn't always work perfectly, but it usually works.
Game models are triangulated beforehand partially because some game engines simply don't support quads and partially because if the game had to triangulate them while loading them it would just take way longer to load. Blender just triangulates on the fly for rendering anyways.
Every engine uses triangles to render 3D models. Triangles are the most basic geometric shape you can have which in turn makes them a lot easier to process. No matter where the vertices are it will always be a flat plane. This also makes it easier to determine the normal vector, which is essential to shading and lighting. Blender prefers quads because it's easier to make models with them. Blender always renders using triangles.
My university really drilled it into us that NGons are the devil, one of my lecturer's always referred to them as "Satan Squares" and would fail us automatically if she found even 1 NGon, suffice to say we learned really quickly that we should never have them. Also, the switch to all trigons for video game meshes was also a bit of an adjustment ngl, since we were only allowed maybe a handful of trigons in our scenes and models ever.
Then we started optimising for video games in our 3rd year and all that went out the window xD
Awesome video! I think that the game engine itself is the culprit behind turning quads into tris. I remember porting an object into Unity one time without turning it to tris, only to then realize that the engine took care of it for me. Also, you can select all and press alt J to turn tris back to quads!
Polygons are always triangles during render time. A polygon is just displayed without the triangle edge. But its there. You cannot render a polygon witbout rendering its triangles.
Quads make subdivision modeling easier and cleaner (and are more efficient than tris).
Only some game engines require 3-sided polygons. SEGA has at least one arcade board that supports quads (and apparently so does the Dreamcast).
A quad is still basically two triangles without a visible diagonal line.
Quads are a good representation of the surface orientation to the human eye. The computer does not see quads like humans.
The computer on the other hand sees a quad as 4 points (vertices) in the shape of two stacked triangles.
The calculations used to determine the distances between any other vertex would be trigonometry.
As a human, I would be able to represent the orientation of each vertex in a predetermined scale with an x y and z plain manually; then plot the results out on a spreadsheet.
The only methods I would use is trigonometry, and some calculus to check on volume preservation.
These calculations in the Billions, would take me a lifetime to calculate manually.
The easy answer: Triangles are all that 3D GPUs can render, because any shape can be reduced to triangles. That's like CPU can only handle bits, as every numeric value can be expressed as a series of bits. So if you feed a GPU quads, they will actually split those quads into two triangles before rendering. By directly feeding triangles, the GPU doesn't have to perform that step which saves a bit of rendering time and thus you can use more vertices per scene.
The more complex answer: With modern GPUs, you don't always want to draw triangles. Modern GPUs support hardware tessellation, and you can even write your own shaders to control how the tessellation is done. Tessellation means (quoting Wikipedia): "In computer graphics, tessellation is the dividing of datasets of polygons (sometimes called vertex sets) presenting objects in a scene into suitable structures for rendering. Especially for real-time rendering, data is tessellated into triangles". This is done dynamically, so you can create fewer triangles on weaker GPUs and more on stronger ones, making the best use of the graphics processing power of the system underneath. So in some cases you don't want to statically convert more complex polygons to triangles when you export your 3D models for a game, you want to do it dynamically at runtime. You can still perform tessellation even if your model has already been converted to triangles, but you will get better results the more information the GPU has available, and a triangle is already reduced to the bare minimum of information needed for rendering. The information about which of these triangles originally made up a single polygon (e.g. which two of them made up a single quad) is no longer available when you are left with only triangles. Tessellation on just triangles can only smooth surfaces, it's like smoothing a compressed video to make some compression artifacts disappear (but information that's gone is gone and cannot be recovered). Tessellation on more complex polygons, on the other hand, can actually decide at runtime how much detail to keep or remove (this is like dynamic video compression, where the amount of compression is scaled to the power of your CPU at the time of viewing).
1:04 - most of all - rigging/skinning is easier!
Tomb Raider - is the mother of triangle
so.. triagnels is for math
quads for artists
So... everyone's beaten me to the punch but
A "quad" and an "ngon" or polygon
Just so you know when doing stuff in real time performance matters. GPUs only do triangles. A square is two triangles. Squares are two times more intensive. It doesn't do it but it is noticeable.
The reason that we see the triangles is because we measure things in triangle count mostly
It's actually not specific to game topology, because developers DO use quad modeling via apps like Blender or Maya or other things. The real reason it seems specific to games is that when a game is deployed to consoles and such, everything is compiled to run faster on consumer hardware, including meshes. As many have pointed out, all models are converted to triangles before rendering. So by the time people figure out how to extract a model from a BUILD of that game, they're already packed in as a simple optimized triangle mesh, rather than any of those common formats like FBX or DAE or OBJ that 3D modelers will import into something like Blender.
Quads are used for meshes that's getting subdivided ob render, having all tris model would screw up subdivision, but when you making game you need to have good shape and deformations without things like subdivision surface, so you need to use triangles to make the best shape, and in engine model are getting triangulated anyways.
I didn't know this either, make more videos like this, so I can learn from your mistakes 😂
GPUs can only render 3 kinds of primitives:
- Lines
- Triangles
- 2D rects (i.e. aligned to the screen), usually always square (same width and height).
And anything else is made from those.
All polygons can be broken down to triangles.
quads internally are triangles so it is a natural conversion, probably the models were made with quads but automatically changed
i'm pretty sure that game models just don't store information about quads and stuff. when you use quads even in blender, it still renders them as 2 split triangles. the thing is, when you extract a game model it simply doesn't store which triangles formed the quad so all you see is the triangles that your computer is Actually processing
Learning blender few years ago be like : MUST DO QUADS!!!!!
After some time with game development : it's okay to have triangles. in fact, you can do ALL TRIANGLES OR NGONS
quads is just an easy way to model nicely and use the modifier properly in Blender
Very good!!
Thanks for sharing but. Why triangles are okey but n-gons are big no?
they are acceptable if the geometry of mesh is flat but not if the mesh is complex or if you're gonna deform the mesh (like subdivision), export/import the models, and its gonna make stuffs (like loop cuts, uv unwrapping, triangulation) much more harder, etc
Because its bogus. You triangulate your models anyways before tossing them into engine. There will be no ngons. If you control your shading, nGon away, and jus slap on a triangulate modifier to check your results and all good.
@@menmie thanks! But in what cases can I use triangles?
@@Pxilez3d honestly, im not sure. i guess it depends on the geometry and what youre trying to do. maybe you can use triangles to import the model inside a game? or maybe when youre not planning to subdivide and stuff as much on the model. bc like, (sorry for not mentioning it earlier but) i was never an actual 3d arts student; i didn't major in it during college or uni. so like, i really dont know much and most of what I've learned about 3d modelling comes from yt, wiki, and documentations. 3d modelling just been my hobby for as long as i can remember
Bad topology, lighting turns horendouse, When looking from certain sides, it would look heavily fucked up
Fun Fact! The Sega Saturn was capable of rendering quads in video games, and did so for many games; likewise Nvidia's first graphics card, the NV1, was also capable of quadratic rendering, and did not support polygonal rendering, but because every game on PC up to that point used polygons, and with no name and very little interest behind them to push ports (only a couple were made) they were forced to drop quadratic rendering and use polygonal rendering like the rest of the industry.
I think blender actually uses triangles but it shades based on quads and ngons. A lot of the file formats you use to send it to a game engine reduce quads to triangles anyway as they'll be converted to triangles to be sent to the GPU anyways. One thing about ngons is that not all 3D software will handle them. If you send an obj file to Zbrush for instance you'll have to fill in holes in your model.
Gpu does the same thing when blender gives it quads. But it has to make the triangles on the fly which takes time
Those look like quads converted into triangles
Blenders quads are actually triangles under the hood. GPU can only render triangles.
Triangles might be better for optimisation, but working with a model comprised of triangles is an absolute nightmare, Makes things like UV unwraps and texturing a nightmare. So I'ma stick with my quads.