I can give a little extra context to avoiding thin triangles, but it's a bit technical. GPUs don't calculate single pixels at a time, they mutithread 4 pixels at once in 2x2 buckets. This means drawing a single pixel costs as much as drawing 2x2 pixels, because you have to do 4 GPU threads every-time even if 3 aren't used. But conversely every 2x2 bucket that fits inside a single triangle gets filled super efficiently. So it's not a matter of a single thin triangle will break something, it's a matter of trying to get as many triangles taking advantage of that multi-threading as possible, and thin triangles (while sometimes unavoidable) are too skinny to get that GPU boost when being drawn (they're more edge less center). Old 3D games didn't worry about it as much as just getting as few vertices as possible was more important, but anything PS2/3+ generation starts drawing enough triangles that avoiding those thin triangle can make a noticeable difference in performance. It's also why good LODs are important as every triangle becomes too small to be multi-threaded if small enough on-screen. So having good LODs not only keeps you from wasting polygons on small distant stuff, it also makes the triangles larger and chunkier as they get farther away to avoid micro-triangles (triangles smaller than a 2x2 block) and keep taking advantage of that multi-threading.
@@EMC3D Wouldn't beveling create small triangles too? Should I actively avoid adding bevels to sharp edges on my game models, unless absolutely necessary? Cuz bevels make light bounce off much better and looks pretty nice.
@@rationalrama Small triangles are only a real problem in aggregate, a few aren’t a big deal, and are basically guaranteed to show up due to camera movement anyways. The exact point where small tris become an issue depends on the rendering pipeline for the game, because the quad inefficiency only affects rasterization and pixel shading in that draw call, later full screen passes aren’t affected. Forward rendering with MSAA gets hit hardest (Order 1886 is forward with MSAA and really complex pixel shaders, which is probably why the artists were so careful), deferred shading takes less of a hit, and most visibility buffer set ups almost completely avoid the issue. If you are using UE5 Nanite you don’t have to worry at all, it uses software rasterization and skips the whole issue. Check your game engine documentation, and run some tests to see what the cost is. Beveling some edges probably won’t be an issue as long as you’re not over doing it.
@@isned2000 Absolutely, I probably should've been more clear. This is in aggregate, there is no perfect triangulation, that's just how geometry works. Even if you make the most optimal triangle, it'll still become inefficient if viewed from an oblique angle or far away. The goal is not to be perfect, but to not use small or thin triangles when you don't have to. The best you can do is keep in mind how big things will be typically be onscreen and don't use more subdivisions than you have to, try to maximize triangle size whenever possible, and have good LODs if things get far away.
Regarding thin triangles - it is true. They affecting perfomance. This is because Video Card rasterizing triangles separately with 2x2 brackets. Also everybody need to understand that VideoCards not actually rendering triangles but pixels. And triangle is a perfect shape however pixel representation of the triangle looks more like a stair. And because you rendering 2x2 pixels every fracture of a second - you cant fit edges of the triangles perfectly into this bracket. Meaning that video card will not render anything useful on the edges of triangles. And when you have thin triangle, there are a lot of places where triangle does not fit into the bracket. I also mentioned that it rendering polygons separately. It means that two adjacent thin triangles will have two areas where video card rendering nothing. Meaning that in the area where two triangles are connected - video card will render pixels twice. This is called "quad overdraw". And if your scene is consisted of only small or thin triangles - it means that you will be spending your rendering time mostly on rendering nothing twice or more. Which is why the issue with triangles in not their amount but their size and shape. Also at the distance triangles can occupy the same pixels if they are smaller than 2x2 pixels. Meaning that you will not olnly render the air between triangles twice but also the same pixel over and over again because there are multiple triangles in this pixel. Because computer is not smart enough to understand that rendring something once is enough it will render all the triangles at the same pixel over and over again until there will be no more left. It can undestand what behid or in front though. For most of the time. However with nanite for example it will not always be able to do it and will render something through. As well as because they using software rasterization - quad overdraw claimed to be not relevant for nanite. But it is a different story. Of cource I am simplifying all this as much as I can to make it easy to understand. But if you want more details on that - I suggest to read "Render Hell" by Simon Schreibt. A great digital book written for aritsts. Also you can search for "Quad Overdraw" for more info. As you mentioned, thin triangles aren't typically a major concern, but it's still something to keep in mind. However, during my work on Halo: Infinite, we encountered an issue related to this. In the hangar on the first level, where there are a lot of drop pods, the FPS drops significantly. According to our tech art team, this was largely due to the quad overdraw in that area.
Looking fwd to the Trim Sheet lecture! Being a student who's trying to get into the industry your insights helps a lot! 😄😄. Appreciate all the work you put into your videos Mr. McSherry
13:40 they're probably using vertex painting to bring out the grime texture in the glass material, not a separate material. This way you get smooth blending towards those edges. And since they have windows split in the middle, center vertex can be used to continue the gradient. Something like 0.6 opacity on the outer verts > 0.2 on inner verts > smooth falloff to 0.1 in the middle. Compared to something like a texture mask, it allows using the same material instance regardless of window shape/size. That said, Ready At Dawn always impressed me with how efficiently they use available hardware. Order 1886 is the visual masterpiece, but even their God of War on PSP looks so good considering the system's GPU.
The window geometry was most likely used to facilitate vertex color masking for the dirt on the glass shader, making it easy to have glass windows of any size. Then It is only necessary to adjust the texture tiling per material instance.
Did you hear about the Call of Duty Caldera map being released to the public? It's untextured but all the geo's there if you wanted to look at the wireframes in detail. Love these vids by the way, very useful!
Ohh I did! Good call, I need to throw it into Blender and see if I can navigate around, last time I tried I had a lot of camera clipping/couldn't see a lot of it, so may need to debug a bit.
This is great! These are some very hard concepts to find info on and you are teaching them well. Better than other courses I have been on which will skip over topology.
Honestly, as an environment concept artist, the role sometimes almost stretches to a rougher corner cut version of environment art. Some of these methods I think carry over super easily. Often I got told by the environment team I was working with why I didn’t just move into doing environment art. Then again I like that my topology and UVs can look shit up close but sell those “beauty shots”. Super informative breakdowns! Thank you!
Ahh that's awesome, yeah I always liked sending blockouts to concept to paint over, and then re-iterate over, was a really smooth workflow when I experienced it.
thank you so much for making these videos, im hoping to become an enviroment modeler one day and this really helps me, do you perhaps have a suggestion on where i could learn more tricks like thoes wide triangles? thank.
Hi. Is there any way to export meshes from the game so that I can analyze them in terms of topology? I would love to do this with Kingdom Come Delieverence :D I'm currently creating a medieval enviro and I wonder how they solved some things.
great video! I have a question, when im selling game models should i sell the meshes triangulated? If i do, its harder to edit the objects for whoever buys them but if i dont, perhaps some game engines will just refuse to work with it or triangulate it themselves badly. with the second however I know i can mitigate bad triangulation if all n gons and quads are flat faces. What ive been doing is using triangulated meshes in the fbx and obj exports, but for the blender file i only use a procedural triangulate modifier
I'm not too versed on selling content on the marketplace, but if I were to do it I would want the untriangulated meshes in Blender, and then the FBX/OBJ with final triangulation in. It should triangulate fine on export, I've never had to customize how a mesh triangulates before, so I let the obj/fbx exporter do the job.
Hmm, not really many dislikes on the creator dashboard, but my friend told me with a chrome addon they saw that this video has 450 dislikes, so I assume it's a bug of some sort, because I can't see that on my stats currently.
@@EMC3D The addon (if it's the one I'm thinking of) is only extrapolating from the like/dislike ratio of people who have the addon and the amount of actual likes. It's more accurate for big videos and even that is just for a cursory glance.
Thank you for your very educational videos! Also its probably a noob question, but why in this specific case at 12:35 welding wall to an arch? Seems like a waste of polys when you could just have a low poly arch cut out on a wall and hidden behind this high poly arch trim? Would that be a waste of texture space?
Good spot, and yeah for sure you'd see that style of stuff depending on the artist. It could be because their engine requires certain transitions to be welded for vertex lighting/baking, or honestly the artist just preferred to make it airtight out of preference.
Both are good, for flat surfaces, yeah sure use the actor, but you'll also use decals that are 'shaped' to a corner or non-straight-on surface, that's where the plane method gives you more control.
@@EMC3D Would using a plane decal with some decent subdivisions be used, so that it can be bent or deformed a little bit? Or will it stretch the texture?
@@juliuseinstein6093 Absolutely, a common trick is to curve decals to match edges to fake unique destruction :D. Check this out - www.artstation.com/artwork/l3wwa
Hello, this is great content! Very insightful and helpful. Where do you find these examples showcasing the wireframe/ topology? If it is on artstation then what keywords should i search for to find this? Thanks in advance. Keep up the great work!
I think I just know about where things are because I've seen them a long time ago and always wanted to speak about it, however, anything newer I would tend to look on ArtStation! :)
Unless you're targeting mobile, we have gone past the days where we need to worry about polycount on modern hardware. Draw calls are vastly more important, and yet every studio keeps using multiple textures on a single asset (possibly dozens of textures) which always blows my mind. Do you know why they do this?
Not true, there's still many studios including co-dev and outsource where triangle count needs to be managed to hit the intended frame rate and brief. It's flexible sure, but you still want to author with good practises in mind. The texture stuff really depends on the studio, but texture blending is still the main way to sell a look in games, so you're going to have a lot of RGB masks, vertex channels, world space textures, decals and all that jazz to break up the structural elements of the project to hit quality standards.
I can give a little extra context to avoiding thin triangles, but it's a bit technical. GPUs don't calculate single pixels at a time, they mutithread 4 pixels at once in 2x2 buckets. This means drawing a single pixel costs as much as drawing 2x2 pixels, because you have to do 4 GPU threads every-time even if 3 aren't used. But conversely every 2x2 bucket that fits inside a single triangle gets filled super efficiently. So it's not a matter of a single thin triangle will break something, it's a matter of trying to get as many triangles taking advantage of that multi-threading as possible, and thin triangles (while sometimes unavoidable) are too skinny to get that GPU boost when being drawn (they're more edge less center). Old 3D games didn't worry about it as much as just getting as few vertices as possible was more important, but anything PS2/3+ generation starts drawing enough triangles that avoiding those thin triangle can make a noticeable difference in performance.
It's also why good LODs are important as every triangle becomes too small to be multi-threaded if small enough on-screen. So having good LODs not only keeps you from wasting polygons on small distant stuff, it also makes the triangles larger and chunkier as they get farther away to avoid micro-triangles (triangles smaller than a 2x2 block) and keep taking advantage of that multi-threading.
Thanks very much chap! Pinning this, very good info.
@@EMC3D Wouldn't beveling create small triangles too? Should I actively avoid adding bevels to sharp edges on my game models, unless absolutely necessary? Cuz bevels make light bounce off much better and looks pretty nice.
@@rationalrama Bevel / cut those edges up, no problem :).
@@rationalrama Small triangles are only a real problem in aggregate, a few aren’t a big deal, and are basically guaranteed to show up due to camera movement anyways. The exact point where small tris become an issue depends on the rendering pipeline for the game, because the quad inefficiency only affects rasterization and pixel shading in that draw call, later full screen passes aren’t affected.
Forward rendering with MSAA gets hit hardest (Order 1886 is forward with MSAA and really complex pixel shaders, which is probably why the artists were so careful), deferred shading takes less of a hit, and most visibility buffer set ups almost completely avoid the issue. If you are using UE5 Nanite you don’t have to worry at all, it uses software rasterization and skips the whole issue.
Check your game engine documentation, and run some tests to see what the cost is. Beveling some edges probably won’t be an issue as long as you’re not over doing it.
@@isned2000 Absolutely, I probably should've been more clear. This is in aggregate, there is no perfect triangulation, that's just how geometry works. Even if you make the most optimal triangle, it'll still become inefficient if viewed from an oblique angle or far away. The goal is not to be perfect, but to not use small or thin triangles when you don't have to. The best you can do is keep in mind how big things will be typically be onscreen and don't use more subdivisions than you have to, try to maximize triangle size whenever possible, and have good LODs if things get far away.
Regarding thin triangles - it is true. They affecting perfomance. This is because Video Card rasterizing triangles separately with 2x2 brackets. Also everybody need to understand that VideoCards not actually rendering triangles but pixels. And triangle is a perfect shape however pixel representation of the triangle looks more like a stair. And because you rendering 2x2 pixels every fracture of a second - you cant fit edges of the triangles perfectly into this bracket. Meaning that video card will not render anything useful on the edges of triangles.
And when you have thin triangle, there are a lot of places where triangle does not fit into the bracket.
I also mentioned that it rendering polygons separately. It means that two adjacent thin triangles will have two areas where video card rendering nothing. Meaning that in the area where two triangles are connected - video card will render pixels twice. This is called "quad overdraw". And if your scene is consisted of only small or thin triangles - it means that you will be spending your rendering time mostly on rendering nothing twice or more.
Which is why the issue with triangles in not their amount but their size and shape.
Also at the distance triangles can occupy the same pixels if they are smaller than 2x2 pixels. Meaning that you will not olnly render the air between triangles twice but also the same pixel over and over again because there are multiple triangles in this pixel. Because computer is not smart enough to understand that rendring something once is enough it will render all the triangles at the same pixel over and over again until there will be no more left. It can undestand what behid or in front though. For most of the time. However with nanite for example it will not always be able to do it and will render something through. As well as because they using software rasterization - quad overdraw claimed to be not relevant for nanite. But it is a different story.
Of cource I am simplifying all this as much as I can to make it easy to understand.
But if you want more details on that - I suggest to read "Render Hell" by Simon Schreibt. A great digital book written for aritsts.
Also you can search for "Quad Overdraw" for more info.
As you mentioned, thin triangles aren't typically a major concern, but it's still something to keep in mind. However, during my work on Halo: Infinite, we encountered an issue related to this. In the hangar on the first level, where there are a lot of drop pods, the FPS drops significantly. According to our tech art team, this was largely due to the quad overdraw in that area.
Btw he's an interesting video where quad overdraw was explained.
th-cam.com/video/M00DGjAP-mU/w-d-xo.htmlsi=SWwbNO3JtFcSwxpd
Looking fwd to the Trim Sheet lecture! Being a student who's trying to get into the industry your insights helps a lot! 😄😄. Appreciate all the work you put into your videos Mr. McSherry
No problem chap! Glad it helps.
13:40 they're probably using vertex painting to bring out the grime texture in the glass material, not a separate material. This way you get smooth blending towards those edges. And since they have windows split in the middle, center vertex can be used to continue the gradient. Something like 0.6 opacity on the outer verts > 0.2 on inner verts > smooth falloff to 0.1 in the middle. Compared to something like a texture mask, it allows using the same material instance regardless of window shape/size.
That said, Ready At Dawn always impressed me with how efficiently they use available hardware. Order 1886 is the visual masterpiece, but even their God of War on PSP looks so good considering the system's GPU.
More longform modern game topology talks please!
Woo!
The window geometry was most likely used to facilitate vertex color masking for the dirt on the glass shader, making it easy to have glass windows of any size. Then It is only necessary to adjust the texture tiling per material instance.
Did you hear about the Call of Duty Caldera map being released to the public? It's untextured but all the geo's there if you wanted to look at the wireframes in detail.
Love these vids by the way, very useful!
Ohh I did! Good call, I need to throw it into Blender and see if I can navigate around, last time I tried I had a lot of camera clipping/couldn't see a lot of it, so may need to debug a bit.
How can i access that map?
@@EMC3D Just mess with the clip start/end settings under View in the N panel
This is great! These are some very hard concepts to find info on and you are teaching them well. Better than other courses I have been on which will skip over topology.
Thank you chap that's cool to hear!
Thank you for your videos! Been following you for a few weeks and have learned so much already! Keep up the good work!
Glad it helps chap!
Honestly, as an environment concept artist, the role sometimes almost stretches to a rougher corner cut version of environment art. Some of these methods I think carry over super easily. Often I got told by the environment team I was working with why I didn’t just move into doing environment art. Then again I like that my topology and UVs can look shit up close but sell those “beauty shots”. Super informative breakdowns! Thank you!
Ahh that's awesome, yeah I always liked sending blockouts to concept to paint over, and then re-iterate over, was a really smooth workflow when I experienced it.
Learned a ton from these videos so far, thank you.
Cheers chap.
RIP Ready at Dawn. Killed by Oculus today
I heard =\ glad they had a good run overall, but damn, still sucks, and all too common in this industry sadly...
If you're using nanite now you have much higher poly counts, allows for a ton more vert paint detail ( as well as geo)
Really like those videos! Would love to know more about vertex painting + big surface variations.
Noted!
I am lucky to find this channel.
Great video sir
Very informative, thanks for sharing !
Glad you enjoyed it!
thank you : )
You are welcome!
thank you so much for making these videos, im hoping to become an enviroment modeler one day and this really helps me, do you perhaps have a suggestion on where i could learn more tricks like thoes wide triangles? thank.
Honestly just keep working on projects and getting feedback for now would be the best way to improve :D.
okay, thank you very much.
Hi. Is there any way to export meshes from the game so that I can analyze them in terms of topology? I would love to do this with Kingdom Come Delieverence :D I'm currently creating a medieval enviro and I wonder how they solved some things.
Not that I know of sadly, I would see if any exist online via the artist's portfolio.
Thanks for the video this was helpful
Cheers chap!
Half of the modeling is thinking
great video! I have a question, when im selling game models should i sell the meshes triangulated? If i do, its harder to edit the objects for whoever buys them but if i dont, perhaps some game engines will just refuse to work with it or triangulate it themselves badly. with the second however I know i can mitigate bad triangulation if all n gons and quads are flat faces. What ive been doing is using triangulated meshes in the fbx and obj exports, but for the blender file i only use a procedural triangulate modifier
I'm not too versed on selling content on the marketplace, but if I were to do it I would want the untriangulated meshes in Blender, and then the FBX/OBJ with final triangulation in.
It should triangulate fine on export, I've never had to customize how a mesh triangulates before, so I let the obj/fbx exporter do the job.
Why in the world is this being disliked?
Hmm, not really many dislikes on the creator dashboard, but my friend told me with a chrome addon they saw that this video has 450 dislikes, so I assume it's a bug of some sort, because I can't see that on my stats currently.
@@EMC3D same here, its at 516 dislikes 🤔
@@EMC3D The addon (if it's the one I'm thinking of) is only extrapolating from the like/dislike ratio of people who have the addon and the amount of actual likes. It's more accurate for big videos and even that is just for a cursory glance.
these triangles on walls are used for midpoly models or they bake walls for better shading?
No need to bake walls in this case, just relying on tilable textures and bevels.
Thank you for your very educational videos! Also its probably a noob question, but why in this specific case at 12:35 welding wall to an arch? Seems like a waste of polys when you could just have a low poly arch cut out on a wall and hidden behind this high poly arch trim? Would that be a waste of texture space?
Good spot, and yeah for sure you'd see that style of stuff depending on the artist.
It could be because their engine requires certain transitions to be welded for vertex lighting/baking, or honestly the artist just preferred to make it airtight out of preference.
Are these floating planes still part of the wall or are the actually planes who are seperated from the wall mesh?
Separate meshes yeah.
About decals, would you still use geometry for them today, or would you use texture projection using an actor?
Which of them is cheaper?
Both are good, for flat surfaces, yeah sure use the actor, but you'll also use decals that are 'shaped' to a corner or non-straight-on surface, that's where the plane method gives you more control.
@@EMC3D Would using a plane decal with some decent subdivisions be used, so that it can be bent or deformed a little bit? Or will it stretch the texture?
@@juliuseinstein6093 Absolutely, a common trick is to curve decals to match edges to fake unique destruction :D.
Check this out - www.artstation.com/artwork/l3wwa
Trinagle don't cause issues, but the engine has to spend longer computer the maths for the model. You don't really want any triangles.
Hello, this is great content! Very insightful and helpful. Where do you find these examples showcasing the wireframe/ topology? If it is on artstation then what keywords should i search for to find this? Thanks in advance.
Keep up the great work!
bump
I think I just know about where things are because I've seen them a long time ago and always wanted to speak about it, however, anything newer I would tend to look on ArtStation! :)
Unless you're targeting mobile, we have gone past the days where we need to worry about polycount on modern hardware. Draw calls are vastly more important, and yet every studio keeps using multiple textures on a single asset (possibly dozens of textures) which always blows my mind. Do you know why they do this?
Afaik multiple textures in itself is not the problem, but having multiple materials/texturesets/shaders on a single asset?
Not true, there's still many studios including co-dev and outsource where triangle count needs to be managed to hit the intended frame rate and brief. It's flexible sure, but you still want to author with good practises in mind.
The texture stuff really depends on the studio, but texture blending is still the main way to sell a look in games, so you're going to have a lot of RGB masks, vertex channels, world space textures, decals and all that jazz to break up the structural elements of the project to hit quality standards.
I hate float planes b.c. z-fighting
No worries just push it forward a tiny amount and you're good to go, doesn't need to be exactly level.
nice! keep it coming yo! Really helpful stuff
Cheers chap!